Chapter 1 Flashcards

1
Q

What is Software Testing?

A

Software Testing is a way to assess the quality of a software and to reduce the chances of failure during operation.

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

How many activities are in Software Testing and what are they?

A

Software Testing constitutes of 6 activities:
1. Planning
2. Analysing
3. Designing
4. Implementing tests
5. Reporting test progress and results
6. Evaluating the quality of test object

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

What are the typical objectives of testing?

A
  1. Evaluate work products such as requirements, user stories, design and code.
  2. Verify all requirements have been fulfilled.
  3. Validate whether the test object is complete AND works as expected by user.
  4. Build confidence in the quality of the test object.
  5. Prevent defects.
  6. Find the failures and defects.
  7. Provide information to stakeholders to allow them to make informed decisions (can be of the quality of the test object).
  8. Reduce the risk of unacceptable software quality.
  9. Ensure the test object complies with regulatory standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the difference between Testing vs Debugging?

A
  • Testing identifies errors and defects in the software.
  • Debugging is the DEVELOPMENT ACTIVITY that finds, analyses, and fix those defects found in testing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why is testing NECESSARY?

A
  1. People make mistakes and the bugs could be anywhere. From requirements & design specification to code and documentation.
  2. And bugs lead to defective code. Once defective code is executed, failures occur. If the failures are seen/experienced by the stakeholders, dissatisfaction with the system quality may occur.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the impact of software failures? (Hint: 3 risks)

A
  1. Business risks
    - Damaged reputation for quality
    - High or unpredictable maintenance cost
    - Unexpected delays in release of product
    - Lack of confidence in system
    - Lawsuits
  2. Environmental risk
    - Pollution & waste
  3. Risks to people societies & states:
    - Lost jobs, lives, rights, missions, wars
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the difference between Error vs Defect vs Failure? (Hint: Domino effect)

A
  1. Error: People make mistakes and these leads to errors.
  2. Defect: The errors results in a defect in the software.
  3. Failure: A failure is the effect of a defect when executing a program.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the difference between Validation and Verification?
(Hint: Did we implement the system right? and Did we implement the right system?)

A

Validation: Confirmation by examination that the requirements have been fulfilled. Did we implement the right system?

Verification: Confirmation by examination that the specified requirements have been fulfilled. Did we implement the system right?

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

Can we test exhaustively? State why it is impossible or possible.

A

No, it is impossible to perform complete testing or exhaustive testing.

Because:
1. Input that needs to be tested for a domain may be too large.
2. The design issues may be too complex to completely test
3. It may not be possible to create all possible execution environments of the system.

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

What are the 7 Testing principles?

A
  1. Testing shows the presence of defects, not their absence.
  2. Exhaustive testing is impossible.
  3. Early testing saves time and money.
  4. Defects cluster together.
  5. Beware of the pesticide paradox.
  6. Testing is context dependent.
  7. Absence of errors fallacy.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explain the principle: Testing shows presence of defects, not their absence

A
  1. Testing can show that the defects are present, but cannot prove that there are no defects.

(Even though testing reduces the probability of undiscovered defects in the software, even if there is no defects found, testing is not a proof of correctness)

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

Explain the principle: Exhaustive testing is impossible

A

Testing everything (including the combinations of input and preconditions) is not feasible.

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

Explain the principle: Early testing saves time and money (Shift-left)

A

To find defects as early as possible, both static and dynamic test activities should be started as early as possible in the SDLC. It helps reduce or eliminate costly changes.

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

Explain the principle: Defects cluster together

A

A small number of modules usually contains most of the defects discovered during pre-release testing, and usually is responsible for most of the operational failures.

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

Explain the principle: Beware of the pesticide paradox

A

If the same tests are repeated over and over again, eventually the tests will no longer find any new defects in the software.

& To detect new defects, existing tests may need changing, so new tests may need to be written.

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

Explain the principle: Testing is context dependent

A

Testing is done differently in different contexts. No one fix-all method for testing software.

17
Q

Explain the principle: Absence-of-errors- is a fallacy

(Fallacy: Mistaken-belief)

A

Some people believe that testers can run all possible tests and find all possible defects, but principles 2 and 1, tells us that it is impossible.

& that even though fixing all defects it does not ensure that the software fulfil the user’s needs and expectations.

18
Q

What does a test process consist of? (Hint: 7 activities)

A
  1. Test planning
  2. Test monitoring and control
  3. Test analysis
  4. Test design
  5. Test implementation
  6. Test execution
  7. Test completion
19
Q

What do you know about “Test planning”?

A

Test planning involves the activities that define the objectives of testing & the approach for meeting the test objectives

(Specifying suitable test techniques, tasks, and formulation a test schedule for deadline)

20
Q

What do you know about “Test Monitoring and Control”?

A

Testing monitoring involves the comparison of actual progress against the test plan. Using any test monitoring metrics defined in the test plan.

& Test control involves taking actions necessary to meet the objectives set in the test plan.

21
Q

What do you know about “Test Analysis”? (What to test?)

A

Test analysis determines “what to test” in terms of measurable coverage criteria.

The test basis is analysed to identify testable features and define test conditions.

Major activities:
1. Analysing the test basis
2. Identify features to be tested
3. Defining and prioritising test conditions for each feature
4. Evaluate the test basis and test items to identify defects of various types.

22
Q

What do you know about “Test Design”? (How to test?)

A

During test design, the test conditions are elaborated into high-level test cases, and other testware.

Major activities:
1. Designing and prioritising test cases
2. Designing the test environment and identifying any required infrastructure and tools.
3. Identifying necessary test data to support test conditions and test cases.

23
Q

What do you know about “Test Implementation”? (Do we have everything in place to run the tests?)

A

During test implementation, the testware necessary for test execution is created/completed.
& sequencing the test cases into test procedures.

24
Q

What do you know about “Test Execution”?

A

During test execution, tests are conducted and according to the test execution schedule.

  1. Recording the IDs and versions of the test item(s)
25
Q

What do you know about “Test Completion”?

A

Collect data from completed test activities to consolidate experience, testware, and any other relevant information.

26
Q

Why should you ensure traceability between the test basis and test work products?

A
  1. Analysing the impact of changes
  2. Making testing auditable
  3. Meeting IT governance criteria
  4. Provides information to assess product quality and project progress against business goals.
27
Q

What is the relationship between psychology and testing?

A
  1. Identifying defects may be perceived as criticism of the product and of the author.
  2. Confirmation bias, something human psychology has, makes it difficult to accept information that disagrees with currently held beliefs.
  3. To reduce these perceptions, information about defects and failures should be communicated in a constructive way.