2. 2. Testing Throughout the Software Development Lifecycle Flashcards

1
Q

Explain the impact of the chosen software development lifecycle on testing

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

Recall good testing practices that apply to all software development lifecycles?

A
  1. All development activities are subject to quality control.
  2. Avoiding redundancy.
  3. Test analysis activity and preparing the test cases.
  4. Reviewing work product early to support shift-left strategy.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Recall the examples of test-first approaches to development?

A
  1. Test Driven Development
    Technical approach
  2. Acceptance Test Driven Development
    Business approach
  3. Behaviour Driven Development
    Requirement approach
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Summarise how DevOps might have an impact on testing?

A
  1. Fast feedback on the code quality.
  2. CI promotes a left shift approach in testing by encouraging devs to submit high quality code.
  3. Promotes automated processes like CI/CD
  4. Increases the view on non functional quality characteristics. (performance issues)
  5. Automation reduces the need for repetitive manual testing.
  6. Risk in regression is minimised due to scale and range of automated regression tests.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the risks and challenges that DevOps can face?

A
  1. Delivery pipelines must be defined and established.
  2. CI/CD tools must be introduced and maintained.
  3. Test automation requires resources and be difficult to maintain and establish.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explain the shift-left approach?

A
  1. Reviewing the specification from the perspective of testing. Incompleteness and inconsistencies.
  2. Writing test cases before the code is written. Have the code run in a test harness during code implementation.
  3. Using CI/CD comes with fast feedback and automated components tests.
  4. Completing static analysis of source code prior to dynamic testing.
  5. Performing non functional testing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain how retrospectives can be used as a mechanism for process improvement?

A
  1. Increased test effectiveness
  2. Increased quality of testware
  3. Team bonding and learning
  4. Improved quality of the test basis
  5. Better cooperation between development and testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Distinguish the different test levels?

A
  1. Component testing (unit testing)
    Testing component in isolation.
  2. Component integration testing (unit integration testing)
    Testing the interfaces and interaction between components.
  3. System testing
    Testing the overall behaviour and capabilities of the entire system or product.
  4. System integration testing
    Testing the interface of the system under test and other system and external systems.
  5. Acceptance testing
    Focuses on validation - system must fulfils the user’s business needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Distinguish the different test types?

A
  1. Functional testing
    Evaluates the functions that a component or system should perform (“What the test object should do”)
  2. Non-functional testing
    Checking the non-functional software quality characteristics. (“How well the system behaves”)

a. Performance efficiency
b. Compatibility
c. Usability
d. Reliability
e. Security
f. Maintainability
g. Portability

  1. Black box testing
    Checking the system behaviours against its specifications.
  2. White box testing
    Testing of a software solution’s internal coding and infrastructure.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Distinguish confirmation testing from regression testing?

A

Confirmation testing
Confirms that the original defect has been successfully fixed.

Regression testing
To verify that a code change in the software has not impacted the existing functionality.

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

Summarise maintenance testing and its triggers?

A
  1. The scope of maintenance testing depends on

a. The degree of risk of the change
b. The size of the existing system
c. The size of the change

  1. The triggers for maintenance and maintenance testing

a. Modifications e.g hot fixes,
b. Upgrades or migration
c. Retirement

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