Testing throughout the Software Development Life Cycle Flashcards

1
Q

What are some impacts the SDLC has on testing?

A

Scope and timing of test activities (levels and 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

What is an example of a sequential development model?

A

Waterfall

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

What is an example of an iterative development model?

A

Spiral

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

What is an example of an incremental development model?

A

Unified Process

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

What are some detailed software development methods and agile practices?

A

Acceptance test-driven development (ATDD)
Behavior-driven development (BDD)
Domain-driven development (DDD)
Extreme programming (XP)
Feature-driven development (FDD)
Kanban
Lean IT
Test-driven development (TDD)

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

What do testers typically participate in the initial phase of the sequential development model?

A

Requirement reviews
Test analysis
Test design
Code is not usually available until later phases so dynamic testing cannot be performed early in the SDLC

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

Because it is assumed that each iteration of an iterative or incremental development will provide a working prototype or product, what do testers participate/provide?

A

Both static and dynamic testing at all test levels with frequent delivery of increments requiring fast feedback and extensive regression testing

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

Why is lightweight work product documentation and extensive test automation preferred in Agile development?

A

It is assumed that changes may occur throughout the project. Extensive automation is preferred for easier regression testing. Manual testing tends to be done using experience-based test techniques that do not require extensive prior test analysis and design.

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

What are some SLDC good testing practices that are independent of the SDLC model used? And why?

A

For every software development activity, there is a corresponding test activity so that all development are subject to quality control.
Different test levels with specific and different test objectives allowing for testing to be comprehensive while avoiding redundancy.
Test analysis and design for a given test level begins during the corresponding development phase of the SDLC to allow for adherence to principal of early testing.
Testers are involved in reviewing work products as soon as drafts of documentation are available to support easier testing and defect detection (for a shift-left strategy)

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

How does test-driven development implement a test early/test-first approach?

A

TDD directs the coding through test cases instead of extensive software design.
Tests are written first, then the code is written to satisfy the tests, then the tests and code are refactored.

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

How does acceptance test-driven development implement a test early/test-first approach?

A

Tests are derived 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.

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

How does behavior-driven development implement a test early/test-first approach?

A

The desired behavior of an app is expressed through test cases written in simple form of natural language (Given, when, then) to allow for easy understanding by the stakeholders.
Test cases are then automatically translated into executable tests.

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

What are some benefits of DevOps from a testing perspective?

A

Fast feedback on the code quality and whether changes adversely affect existing code.
CI promotes a shift left approach by encouraging developers to submit high quality code accompanied by component tests and static analysis.
Promotes automated processes like CI/CD that facilitate establishing stable test environments.
Increases the view on non functional quality characteristics (performance, reliability).
Automation through a delivery pipeline reduces the need for repetitive manual testing.
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
14
Q

What are some risks of DevOps?

A

The DevOps delivery pipeline must be defined and established.
CI/CD tools must be introduced and maintained.
Test automation requires additional resources and may be difficult to establish and maintain.

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

What is DevOps?

A

An organizational approach aiming to create synergy by having development (including testing) and operations to work together to achieve a set of common goals.

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

What does DevOps do for teams?

A

Promotes team autonomy, fast feedback, integrated toolchains, and technical practices like CI/CD allowing teams to build test and release high quality code faster through a DevOps pipeline.

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

Why is early testing sometimes referred to as ‘shift-left’?

A

Because it is an approach where testing is performed earlier in the SDLC (before code is implemented or components to be integrated) but also without neglecting testing later in the SDLC.

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

What are some good practices to achieve a shift left approach?

A

Reviewing the specifications from a testing perspective, allowing to find potential defects (ambiguities), incompleteness, and inconsistencies.
Writing test cases before the code is written and have the code run in a test harness during implementation.
Using CI/CD as it provides fast feedback and automated component testing when code is submitted to the repository.
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
19
Q

What benefits do retrospectives have on testing?

A

Increased test effectiveness/efficiency (by implementing suggestions for process improvement).
Increase quality of testware (by reviewing the test processes).
Team bonding and learning (as a result of the opportunity to raise issues and propose improvement points).
Improved quality of the test basis (as deficiencies in the extent and quality of the requirements could be addressed and solved).
Better cooperation between development and testing (as collaboration is reviewed and optimized regularly).

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

What are the five test levels?

A

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

21
Q

What is component testing?

A

AKA unit testing, testing the components in isolation.

22
Q

What does component testing often require?

A

Specific support (test harnesses or unit test frameworks).

23
Q

Who normally performs component testing?

A

Developers in their development environment.

24
Q

What is component integration testing?

A

AKA unit integration testing, testing the interfaces and interactions between components.

25
Q

What does component integration testing depend upon?

A

Integration strategy approaches (bottom-up, top-down, big-bang).

26
Q

What is system testing?

A

Focuses on the overall behavior and capabilities of an entire system or product (including functional testing of end-to-end tasks and non functional testing of quality characteristics).

27
Q

Where is system testing completed?

A

Preferably on a complete system in a representative test environment. Can also be completed on simulated systems.

28
Q

Who performs system testing?

A

May be performed by an independent team and is related to specifications for the system.

29
Q

What is acceptance testing?

A

Focuses on validation and demonstrating readiness for deployment - the system fulfills the users needs.

30
Q

Who should perform acceptance testing?

A

Ideally should be performed by the intended users.

31
Q

What are the main forms of acceptance testing?

A

User acceptance testing
Operational acceptance testing
Contractual and regulatory acceptance testing
Alpha testing
Beta testing

32
Q

What are four test types?

A

Functional testing
Non-functional testing
Black-box testing
White-box testing

33
Q

What is functional testing for?

A

To evaluate the functions that a component or system should perform.

34
Q

What is the main objective of functional testing?

A

Checking the functional completeness, functional correctness, and functional appropriateness

35
Q

What is non-functional testing?

A

To evaluate attributes OTHER THAN functional characteristics of a component or system (how well the system behaves)

36
Q

What is the main objective of non-functional testing?

A

Checking the non-functional software quality characteristics.

37
Q

Why is it appropriate that non-functional testing sometimes be done early in the SDLC?

A

Late discovery of a non-functional defect can pose a threat to the success of a project

38
Q

What is black-box testing?

A

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

39
Q

What is the main objective of black box testing?

A

Checking the systems behavior against is specifications

40
Q

What is white-box testing?

A

Structure based and derives tests from the systems implementation or internal structure (code, architecture, work flows, and data flows)

41
Q

What is the main objective of white box testing?

A

To cover the underlying structure by the tests to the acceptable level

42
Q

What is confirmation testing for?

A

To confirm that an original defect has been successfully fixed

43
Q

What are some ways confirmation testing can be completed?

A

By executing all test cases that previously failed due do the defect.
By adding new tests to cover any changes that were needed to fix the defect.
Simply exercising the steps that should reproduce the failure caused by the defect and checking that the failure does not occur

44
Q

What is regression testing for?

A

To confirm that no adverse consequences have been caused by a change including a fix that already been confirmation tested

45
Q

What is the difference between confirmation testing and regression testing?

A

Confirmation testing is focused on a specific bug/defect, regression testing is focused on verifying that nothing is broken after a fix or change.

46
Q

What is maintenance testing?

A

Testing a system that is already operational (after planned releases and unplanned releases)

47
Q

What does the scope of maintenance testing typically depend on?

A

The degree of risk of the change
The size of the existing system
The size of the change

48
Q

What are the triggers

A