Implementation and Quality Assurance Flashcards

1
Q

What is software quality

A

The degree to which a system, component or process meets:
- Specified requirements
- Customer or user needs expectations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is software quality assurance? (SQA)

A

A planned and systematic patter of all actions to provide adequate confidence that an item or product conforms to the established technical requirements.
- set of activities to evaluate the process by which the product is being developped or manufactured.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Verifications vs Validation:

A

Verification: Are we building the product right?
Validation: Are we building the right product?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Static vs dynamic V&V

A
  • Static: analyzing the code
  • Dynamic: Executing the code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Advantages of static of dynamic

A

dynamic requires executable code, static does not.
Inspections discover inneficiencies and style issues.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are inspections not a replacement for?

A

Inspections are not a replacement for tests
- People cannot catch eveything
- We still need tests to ensure the code function correctly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Roles in QA

A

Author: responsible for correcting problems that are identified during the review.
Reviewer: analyzes and detect problems in the artifacts
An engineer with expertise in the context that the artifact operates within

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

QT code review process:

A

1) patch uploaded
2) sanity check by early warning system.
3) code examination by reviewers
4) Integration testing by CI system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is testing?

A

A formal process carried out by a specialized testing team in which a software unit, several integrated software units. or an entire software system are examined by running the programs on a computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the “ugly truth about testing”

A
  • Large input and state spaces (impossible to test everything)
  • Lack of continuity: Small differences in operating conditions can dramatically impact software behavior.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are blackbox and whitebox tests:

A

Blackbox:
-tests that are written without considering how the code is written
-Treats the system like an opaque box that accepts inputs and checks outputs.

Whitebox testing:
-Tests that are written with an understanding of the structure of the code
-tests the inner workings of the system itself.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the testing stages

A

Development testing
release testing
user testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is development testing:

A

-tests that are typically written by system designers and programmers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is release testing

A
  • separate QA team produces tests to check the system before it is released.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is user testing:

A

tests run by the user to make sure they are satisfied witht he testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the key phases of unit testing:

A

-Setup part: Prepares the system for executing the test case
-Call part: Call the method under test
-Assertion part: Check that the system state is in its expected form
-Teardown part: Reset the system to its pre-setup state

17
Q

What is equivalence partitioning

A

Inputs and outputs can be thought of as members of sets with common characteristics
Rule of thumb
Select test cases on the edge of the partitions
Select a test case near the middle as well

18
Q

What is an equivalence class:

A

You should divide the possible inputs into groups which you believe will be treated similarly by all algorithms.
Such groups are called equivalence classes.

Prevents brute force testing on ALL cases

19
Q

Types of component interfaces

A

Parameter:
Passing parameters through method calls
Shared memory:
Accessing a shared program element
Procedural:
Interfaces in the typical (OO) sense
Message passing:
A message is sent to request some service (e.g., client-server applications)

20
Q

Types of interface errors

A

Misuse:
Caller makes an error in the use of an interface
Misunderstanding:
Caller makes an invalid assumption about the use of an interface
Timing:
Some interfaces are time-sensitive
Even if a caller uses an interface correctly, it may be too early/late

21
Q

What is system testing

A

Target: the combination of components that make up a subsystem or the entire system
Focuses on testing the interactions between components

22
Q

What is release testing:

A

Similar to system testing, release testing is performed on the entire system and is based on use cases