Software Testing Flashcards

(39 cards)

1
Q

What is the primary purpose of program testing?

A

To show that a program does what it is intended to do and to discover program defects

Testing involves executing a program using artificial data and checking for errors or anomalies.

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

What are the goals of program testing?

A
  • Demonstrate software meets requirements
  • Discover incorrect or undesirable software behavior
  • Root out undesirable system behavior

Defect testing focuses on issues like system crashes and incorrect computations.

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

What is the difference between validation testing and defect testing?

A
  • Validation testing: Expect system to perform correctly with given test cases
  • Defect testing: Designed to expose defects

Validation testing reflects expected use, while defect testing can be obscure.

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

What does verification refer to in software testing?

A

Are we building the product right?

Verification ensures the software conforms to its specification.

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

What does validation refer to in software testing?

A

Are we building the right product?

Validation checks if the software meets user requirements.

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

What are the two types of testing involved in the verification and validation process?

A
  • Software inspections (static verification)
  • Software testing (dynamic verification)

Inspections analyze static representations, while testing observes product behavior.

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

What are the advantages of inspections in software testing?

A
  • Errors can be hidden during testing
  • Incomplete systems can be inspected without extra costs
  • Inspections can assess broader quality attributes

Inspections do not require system execution and can be applied to any representation.

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

What is the focus of development testing?

A

Testing activities carried out by the team developing the system

Includes unit testing, component testing, and system testing.

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

What is unit testing?

A

Testing individual components in isolation

Focuses on the functionality of objects or methods.

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

What is the purpose of component testing?

A

To test several individual units integrated to create composite components

Focuses on testing component interfaces.

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

What is the goal of system testing?

A

Testing interactions between components in an integrated system

Ensures components are compatible and transfer data correctly.

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

What is equivalence partitioning in testing?

A

Identifying groups of inputs that should be processed in the same way

Test cases should be chosen from each equivalence partition.

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

What are the three classes of interface errors?

A
  • Interface misuse
  • Interface misunderstanding
  • Timing errors

These errors arise from incorrect parameter usage, assumptions about behavior, and speed differences.

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

What is the purpose of automated testing?

A

To run tests and check results without manual intervention

Utilizes a test automation framework like JUnit.

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

What are the three parts of an automated test?

A
  • Setup part
  • Call part
  • Assertion part

The assertion part compares the result of the call with the expected result.

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

What is the significance of testing guidelines?

A

They help choose test cases based on previous experiences with common errors

Guidelines can include partition testing and guideline-based testing.

17
Q

What is the goal of defect testing?

A

To discover faults or defects in the software

A successful test exposes a defect by making the system perform incorrectly.

18
Q

What is the role of test cases in software testing?

A

Specifications of inputs and expected outputs from the system

Test data are the inputs devised to test a system.

19
Q

What is the purpose of system testing?

A

To check that components are compatible, interact correctly, and transfer the right data at the right time

System testing tests the emergent behavior of a system.

20
Q

During system testing, what may be integrated with newly developed components?

A
  • Reusable components
  • Off-the-shelf systems

The complete system is then tested collectively.

21
Q

True or false: System testing is an individual process.

A

FALSE

System testing is a collective process, often involving a separate testing team.

22
Q

What can be used as a basis for system testing?

A

Use-cases developed to identify system interactions

Each use case usually involves several system components.

23
Q

What do testing policies define?

A

Required system test coverage

Examples include testing all system functions accessed through menus.

24
Q

What is test-driven development (TDD)?

A

An approach where testing and code development are interleaved

Tests are written before code, and passing tests drives development.

25
What is the first step in the **TDD process**?
Identify the increment of functionality required ## Footnote This should be small and implementable in a few lines of code.
26
List the **benefits of test-driven development**.
* Code coverage * Regression testing * Simplified debugging * System documentation ## Footnote Each code segment has at least one associated test.
27
What is the purpose of **regression testing**?
To check that changes have not broken previously working code ## Footnote It is expensive in manual testing but simple with automated testing.
28
What is the primary goal of **release testing**?
To convince the supplier that the system is good enough for use ## Footnote It shows that the system delivers specified functionality, performance, and dependability.
29
True or false: **Release testing** is conducted by the development team.
FALSE ## Footnote A separate team not involved in development should conduct release testing.
30
What does **requirements-based testing** involve?
Examining each requirement and developing tests for it ## Footnote It ensures that all requirements are satisfied.
31
What is **scenario testing**?
An approach where typical scenarios of use are devised to develop test cases ## Footnote It includes testing features like authentication and record retrieval.
32
What is the role of **user testing**?
To provide input and advice on system testing ## Footnote It is essential even after comprehensive system and release testing.
33
List the types of **user testing**.
* Alpha testing * Beta testing * Acceptance testing ## Footnote Each type serves a different purpose in the testing process.
34
What is the first step in the **acceptance testing process**?
Define acceptance criteria ## Footnote This is followed by planning and deriving acceptance tests.
35
In **agile methods**, who is responsible for acceptance testing?
The user/customer ## Footnote They are part of the development team and define tests.
36
What should you try to do when testing software?
Try to ‘break’ the software ## Footnote Use experience and guidelines to choose effective test cases.
37
What does **test-first development** entail?
Writing tests before the code to be tested ## Footnote This approach helps ensure code quality.
38
What is the purpose of **scenario testing**?
To derive test cases from typical usage scenarios ## Footnote It helps in understanding how the system will be used in real situations.
39
What is the goal of **acceptance testing**?
To decide if the software is good enough to be deployed ## Footnote It assesses the software's readiness for operational use.