Chapter 2 - Testing Throughout the SDLC Flashcards

1
Q

What is a SDLC model ?

A

A software development lifecycle (SDLC) model is an abstract, high-level representation of the software development process.
It defines how different development phases and types of activities performed within this process relate to eachother, both logically and chronogically.

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

The choice of the SDLC impacts on the :

A
  1. Scope and timing of tests activities
  2. Level of detail of test documentation
  3. Choice of test techniques and test approach
  4. Extent of automation
  5. Role and responsibilities of a tester
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Good practices and SDLC :

A
  1. For every software development activity, there is a corresponding test activity, so that all development activities are subject to quality control
  2. Different test levels have specific and different test objectives, which allows for testing to be appropriately comprehensive while avoiding redundancy
  3. Test analysis and design for a given test level begins during the corresponding development phase of SDLC, so that testing can adhere to the principle of early testing
  4. Testers are involved in reviewing work products as soon as drafts of this documentation are available, so that earlier testing and defect detection can support the shift-left strategy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How is characterized the Test-Driven Development (TDD) approach ?

A
  1. Direct the coding through test cases
  2. Tests are written first, then the code is written to satisfy the tests, and then the tests and code are refactored
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How is characterized the Acceptance Test-Driven Development (ATDD) approach ?

A
  1. Derives tests from acceptance criteria as part of the system design process
  2. Tests are written before the part of the app is developed to satisfy the tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How is characterized the Behavior-Driven Development (BDD) approach ?

A
  1. 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
  2. Test cases are then automatically translated into executable tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Some benefits of DevOps from the testing perspective :

A
  1. Fast feedback on the code quality, and wheter changes adversely affects existing code
  2. CI promotes a shift-left approach in testing by encouraging devs to submit high quality code accompanied by component tests and static analysis
  3. Promotes automated processes like CI (continuous integration ) / CD(continuous delivery) that facilitate establishing stable test environments
  4. Increases the view on non-functional quality characteristics (e.g., performance, reliability)
  5. Automation through a delivery pipeline reduces the need for repetitive manual testing
  6. The risk in regression is minimized due to the scale and range of automated regression tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Some risks of using DevOps from the testing perspective :

A
  1. The DevOps delivery pipeline must be defined and established
  2. CI (continuous integration ) / CD(continuous delivery) tools must be introduced and maintained
  3. Test automation requires additional resources and may be difficult to establish and maintain

Manual testing will still be needed.

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

What is Shift-Left approach ?

A

The principle of early testing is sometimes referred to as shift-left because it is an approach where testing is performed earlier in the SDLC.

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

Good practices to achieve a “shift-left” ?

A
  1. Reviewing the specification from the perspective of testing. These review activities on specs often find potential defects, such as ambiguities, incompleteness, and incinsistencies
  2. Writing test cases before the code is written and have a code run in a test harness during code implementation
  3. Using CI and aven better CD as it comes with fast feedback and automated component tests to accompany source code when it is submitted to the code repository
  4. Completing static analysis of source code prior to dynamic testing, or as part of automated process
  5. Performing non-functionnal testing starting at the component test level, where possible.

A shift-left approach might result in extra training, effort and/or costs earlier in the process but is expected to save afforts and/or costs later in the process.

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

What are Retrospectives and what is their purpose ?

A

Also known as “post-project meetings”, they are often held at the end of a project or an iteration, at a release milestone, or can be held when needed. In these meetings the participant discuss :
1. What was successful, and should be retained ?
2. What was not successful and could be improved ?
3. How to incorporate the improvements and retain the successes in the future ?

The results should be recorded and are normally part of the test completion report.
Retrospectives are critical for the successful implementation of continuous improvement and it is important that any recommended improvements are followed up.

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

What are typical benefits for testing after a Retrospective?

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

What are test levels ?

A

Test levels are groups of test activities that are organized and managed together.
Each test level is an instance of the test process, performed in relation to software at a given stage of development, from idividual components to complete systems or, where applicable, systems of systems.

They are related to other activities witin the SDLC.
Test levels may overlap in time.

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

What are the 5 test levels ? (adressed in the syllabus)

A
  1. Component testing
  2. Component integration testing
  3. System testing
  4. System integration testing
  5. Acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Some of the non-exhaustive list of attributes for test levels ?

A
  • Test object
  • Test objectives
  • Test basis
  • Defects and failures
  • Approach and responsibilities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are test types ?

A

Test types are groups of test activities related to specific quality characteristics and most of those test activities can be performed at every test level.

17
Q

What are the 4 test types ? (adressed in the syllabus)

A
  1. Functional testing
  2. Non-functional testing
  3. Black-box testing
  4. White-box testing
18
Q

What is Confirmation testing ?

A

Confirmation testing confirms that an original defect has been successfully fixed. Depending on the risk, one can test the fixed version of the software in several ways, including :
- executing all tests that previously have failed due to the defect
- adding new tests to cover any changes that were needed to fix the defect

19
Q

What is Regression testing ?

A

Regression testing confirms that no adverse consequences have been caused by a change, including a fix that has already been confirmation tested.
Regression testing is a strong candidate for automation.

20
Q

What is Maintenance testing ?

A

Maintenance testing has different categories : corrective, adaptive or improve performance or maintainability.
It can involve planned releases/deployments and unplanned releases/deplyoments (hot fixes)

21
Q

The scope of maintenance testing typically depends on :

A
  • the degree of risk in the change
  • the size of the existing system
  • the size of change
22
Q

The triggers for maintenance and maintenance testing ?

A
  • Modifications, such as planned enhancements, corrective changes or hot fixes
  • Upgrades or migrations of the operational environment
  • Retirement (end of life of an application)