Chapter 1 Flashcards

What is Testing?

1
Q

What is Software Testing?

A

A set of activities to discover defects and evaluate the quality of software artifacts. These artifacts, when being tested, are known as test objects.

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

What is the difference between Dynamic and Static?

A

Dynamic testing involves the execution of software, while static testing does not. Static testing includes reviews and static analysis. Dynamic testing uses different types of test techniques and test approaches to derive test cases.

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

What are the 9 Testing Objectives?

A

The typical test objectives are:
* Evaluating work products such as requirements, user stories, designs, and code
* Triggering failures and finding defects
* Ensuring required coverage of a test object
* Reducing the level of risk of inadequate software quality
* Verifying whether specified requirements have been fulfilled
* Verifying that a test object complies with contractual, legal, and regulatory requirements
* Providing information to stakeholders to allow them to make informed decisions
* Building confidence in the quality of the test object
* Validating whether the test object is complete and works as expected by the stakeholders

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

What is the debugging process?

A
  • Reproduction of a failure
  • Diagnosis (finding the root cause)
  • Fixing the cause
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Quality Assurance?

A

QA is a process-oriented, preventive approach that focuses on the implementation and improvement of processes. It works on the basis that if a good process is followed correctly, then it will generate a good product. QA applies to both the development and testing processes, and is the responsibility of everyone on a project.

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

What is Quality Control?

A

QC is a product-oriented, corrective approach that focuses on those activities supporting the achievement of appropriate levels of quality. Testing is a major form of quality control, while others include formal methods (model checking and proof of correctness), simulation and prototyping.

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

Test monitoring and control

A

Test monitoring involves the ongoing checking of all test activities and the comparison of actual progress against the plan. Test control involves taking the actions necessary to meet the objectives of testing

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

Test Planning

A

consists of defining the test objectives and then selecting an approach that best achieves the objectives within the constraints imposed by the overall context.

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

Test Analysis

A

includes analyzing the test basis to identify testable features and to define and prioritize associated test conditions, together with the related risks and risk levels. The test basis and the test objects are also evaluated to identify defects they may contain and to assess their testability. Test analysis is often supported by the use of test techniques. Test analysis answers the question “what to test?” in terms of measurable coverage criteria

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

Test Design

A

includes elaborating the test conditions into test cases and other testware (e.g., test charters). This activity often involves the identification of coverage items, which serve as a guide to specify test case inputs. Test techniques can be used to support this activity. also includes defining the test data requirements, designing the test environment and identifying any other required infrastructure and tools. Test design answers the question “how to test?”.

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

Test Implementation

A

Includes creating or acquiring the testware necessary for test execution (e.g., test data). Test cases can be organized into test procedures and are often assembled into test suites. Manual and automated test scripts are created. Test procedures are prioritized and arranged within a test execution schedule for efficient test execution. The test environment is built and verified to be set up correctly.

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

Test Execution

A

Includes running the tests in accordance with the test execution schedule (test runs). Test execution may be manual or automated. Test execution can take many forms, including continuous testing or pair testing sessions. Actual test results are compared with the expected results. The test results are logged. Anomalies are analyzed to identify their likely causes. This analysis allows us to report the anomalies based on the failures observed.

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

Test Completion

A

Activities usually occur at project milestones (e.g., release, end of iteration, test level completion) for any unresolved defects, change requests or product backlog items created. Any testware that may be useful in the future is identified and archived or handed over to the appropriate teams. The test environment is shut down to an agreed state. The test activities are analyzed to identify lessons learned and improvements for future iterations, releases, or projects. A test completion report is created and communicated to the stakeholders.

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

Test planning work products include:

A

test plan, test schedule, risk register, and entry and exit criteria. Risk register is a list of risks together with risk likelihood, risk . Test schedule, risk register and entry and exit criteria are often a part of the test plan.

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

Test analysis work products include:

A

(prioritized) test conditions (e.g., acceptance criteria), and defect reports regarding defects in the test basis (if not fixed directly).

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

Test design work products include:

A

(prioritized) test cases, test charters, coverage items, test data requirements and test environment requirements.

14
Q

Test monitoring and control work products include:

A

test progress reports, documentation of control directives and risk information

15
Q

Test implementation work products include:

A

test procedures, automated test scripts, test suites, test data, test execution schedule, and test environment elements. Examples of test environment elements include: stubs, drivers, simulators, and service virtualizations.

16
Q

Test execution work products include:

A

test logs and defect reports

17
Q

Test completion work products include:

A

test completion report (see section 5.3.2), action items for improvement of subsequent projects or iterations, documented lessons learned, and change requests (e.g., as product backlog items).

18
Q

What are generic skills required for testing?

A
  • Testing knowledge (to increase effectiveness of testing, e.g., by using test techniques)
  • Thoroughness, carefulness, curiosity, attention to details, being methodical (to identify defects,
    especially the ones that are difficult to find)
  • Good communication skills, active listening, being a team player (to interact effectively with all stakeholders, to convey information to others, to be understood, and to report and discuss defects)
  • Analytical thinking, critical thinking, creativity (to increase effectiveness of testing)
  • Technical knowledge (to increase efficiency of testing, e.g., by using appropriate test tools)
  • Domain knowledge (to be able to understand and to communicate with end users/business representatives)
18
Q

What is the Test Management Role?

A

Takes overall responsibility for the test process, test team and leadership of the test activities. The test management role is mainly focused on the activities of test planning, test monitoring and control and test completion. The way in which the test management role is carried out varies depending on the context

18
Q

What is the Testing Role?

A

Takes overall responsibility for the engineering (technical) aspect of testing. The testing role is mainly focused on the activities of test analysis, test design, test implementation and test execution.

19
Q

What is Test-Driven Development (TDD)?

A
  • Directs the coding through test cases (instead of extensive software design)
  • Tests are written first, then the code is written to satisfy the tests, and then the tests and code are refactored
20
Q

What is Acceptance Test-Driven Development (ATDD)?

A
  • 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
21
Q

What is Behavior-Driven Development (BDD)?

A
  • 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.
  • Test cases are then automatically translated into executable tests
21
Q

What is DevOps?

A

An organizational approach aiming to create synergy by getting development (including testing) and operations to work together to achieve a set of common goals. DevOps requires a cultural shift within an organization to bridge the gaps between development (including testing) and operations while treating their functions with equal value. DevOps promotes team autonomy, fast feedback, integrated toolchains, and technical practices like continuous integration (CI) and continuous delivery (CD). This enables the teams to build, test and release high-quality code faster through a DevOps delivery pipeline

22
Q

What is the 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. Shift-left normally suggests that testing should be done earlier (e.g., not waiting for code to be implemented or for components to be integrated), but it does not mean that testing later in the SDLC should be neglected.

23
Q

What are some good practices of Shift-Left Testing?

A
  • Reviewing the specification from the perspective of testing. These review activities on specifications often find potential defects, such as 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 to accompany source code when it is submitted to the code 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. This is a form of shift-left as these non-functional test types tend to be performed later in the SDLC when a complete system and a representative test environment are available
24
Q

What is a Retrospective?

A

(also known as “post-project meetings” and project retrospectives) are often held at the end of a project or an iteration, at a release milestone, or can be held when needed. The timing and organization of the retrospectives depend on the particular SDLC model being followed.
Discusses:
* What was successful, and should be retained?
* What was not successful and could be improved?
* How to incorporate the improvements and retain the successes in the future?

25
Q

What are the benefits of Retrospectives 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)