Chapter 2: Testing Throughout the Software Development Lifecycle Flashcards

1
Q

Impact of the Software Development Lifecycle on Testing

A

The choice of the SDLC impacts on the:
* Scope and timing of test activities (e.g., test levels and test types)
* Level of detail of test documentation
* Choice of test techniques and test approach
* Extent of test automation
* Role and responsibilities of a tester

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

in the initial phases testers typically participate in requirement
reviews, test analysis, and test design

A

sequential development models

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

assumes that change may occur throughout the project

A

Agile software development

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

it is assumed that each iteration delivers a
working prototype or product increment.

A

iterative and incremental development models

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

Good Testing Practices

A
  • For every software development activity, there is a corresponding test activity
  • Different test levels have specific and different test objectives
  • Test analysis and design for a given test level begins during the corresponding development phase of the SDLC, so that testing can adhere to the principle of early testing
  • Testers are involved in reviewing work products as soon as drafts of this documentation are available
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Directs the coding through test cases
Tests are written first, then the code is written to satisfy the tests

A

Test-Driven Development (TDD):

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

Derives tests from acceptance criteria as part of the system design process

Tests are written before the part of the application is developed to satisfy the tests

A

Acceptance Test-Driven Development (ATDD)

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

Expresses the desired behavior of an application with test cases written in a simple form of natural language, which is easy to understand by stakeholders – usually using the Given/When/Then format.

A

Behavior-Driven Development (BDD):

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

The principle of early testing

A

Shift-Left Approach

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

Good practices for Shift-Left Approach

A
  • Reviewing the specification from the perspective of testing -ambiguities, incompleteness, and inconsistencies
  • Writing test cases before the code is written and have the code run in a test harness during code implementation
  • Using CI and even better CD as it comes with fast feedback and automated component tests
  • Completing static analysis of source code prior to dynamic testing, or as part of an automated process
  • Performing non-functional testing starting at the component test level, where possible.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

also known as “post-project meetings” and project retrospectives)

A

Retrospectives

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

benefits of Retro for testing

A
  • Increased test effectiveness / efficiency (e.g., by implementing suggestions for process improvement)
  • Increased quality of testware (e.g., by jointly reviewing the test processes)
  • Team bonding and learning (e.g., as a result of the opportunity to raise issues and propose improvement points)
  • Improved quality of the test basis (e.g., as deficiencies in the extent and quality of the requirements could be addressed and solved)
  • Better cooperation between development and testing (e.g., as collaboration is reviewed and optimized regularly)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Test Levels

A

Component testing
Component integration testing
System testing
System integration testing
Acceptance testing

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

(also known as unit testing) focuses on testing components in isolation. It often requires specific support, such as test harnesses or unit test frameworks.

A

Component testing is normally performed by developers in their development environments.

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

(also known as unit integration testing) focuses on testing the
interfaces and interactions between components.

A

Component integration testing is heavily dependent on the integration strategy approaches like bottom-up, top-down or big-bang.

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

focuses on the overall behavior and capabilities of an entire system or product

A

System testing may be performed by an independent test team, and is related to specifications for the system.

17
Q

focuses on testing the interfaces of the system under test and other
systems and external services .

A

System integration testing requires suitable test environments
preferably similar to the operational environment.

18
Q

focuses on validation and on demonstrating readiness for deployment, which means that the system fulfills the user’s business needs

A

Acceptance testing should be performed by the intended users.

The main forms of acceptance testing are: user acceptance
testing (UAT), operational acceptance testing, contractual and regulatory acceptance testing, alpha testing and beta testing.

19
Q

Test levels are distinguished by the following non-exhaustive list of attributes

A
  • Test object
  • Test objectives
  • Test basis
  • Defects and failures
  • Approach and responsibilities
20
Q

evaluates the functions that a component or system should perform

A

Functional testing
The functions are “what” the test object should do.

The main objective of functional testing is checking the functional
completeness, functional correctness and functional appropriateness.

21
Q

evaluates attributes other than functional characteristics of a component or system.

A

Non-functional testing is the testing of “how well the system behaves”.

The main objective of nonfunctional testing is checking the non-functional software quality characteristics.

22
Q

classification of the non-functional software quality characteristics:

A
  • Performance efficiency
  • Compatibility
  • Usability
  • Reliability
  • Security
  • Maintainability
  • Portability
23
Q

is specification-based and derives tests from documentation external
to the test object.

A

Black-box testing
The main objective of black-box testing is checking the system’s behavior against its specifications.

24
Q

is structure-based and derives tests from the system’s
implementation or internal structure (e.g., code, architecture, work flows, and data flows).

A

White-box testing
The main objective of white-box testing is to cover the underlying structure by the tests to the acceptable level.

25
Q

confirms that an original defect has been successfully fixed.

A

Confirmation testing

26
Q

Depending on the risk, one can test the fixed version of the software in several ways, including

A
  • executing all test cases that previously have failed due to the defect
  • adding new tests to cover any changes that were needed to fix the defect
27
Q

confirms that no adverse consequences have been caused by a change, including a fix that has already been confirmation tested.

A

Regression testing

28
Q

can involve planned releases/deployments and unplanned releases/deployments (hot fixes

A

maintenance

29
Q

scope of maintenance testing

A
  • The degree of risk of the change
  • The size of the existing system
  • The size of the change
30
Q

The triggers for maintenance and maintenance testing can be classified as follows:

A
  • Modifications, such as planned enhancements (i.e., release-based), corrective changes or hot fixes.
  • Upgrades or migrations of the operational environment
  • Retirement, such as when an application reaches the end of its life.