Chapter 1: Fundamentals of testing , - Coggle Diagram
Chapter 1: Fundamentals of testing
1.2 WHAT IS TESTING?
Testing activities should start as early as possible in the software or system development life cycle and should be focused on defined objectives.
Gaining confidence in and providing information about the level of quality
Testing can show that defects are present, but cannot prove that there are no defects.
1.1 Why is testing necessary?
1.1.3 Causes of software defects
People also design and build the software and they can make mistakes during the design and build.
It is quite often the case that defects detected at a very late stage
In some cases, where the defect is too serious, the system may have to be de-installed completely.
1.1.4 Role of testing in software development, maintenance and operations
Give reasons why testing is necessary by giving examples.
1.1.2 Software systems context
Testing Principle - Testing is context dependent Testing is done differently in different contexts
When we discuss risks, we need to consider how likely it is that the problem would occur and the impact if it happens
1.1.5 Testing and quality
The more rigorous our testing, the more defects we'll find
Organizations should consider testing as part of a larger quality assurance strategy
We need to check everything and anything we produce because things can always go wrong
Describe, with examples, the way in which a defect in software can cause harm to a person, to the environment or to a company.
1.1.6 How much testing is enough?
Testing Principle - Exhaustive testing is impossible Testing everything (all combinations of inputs and preconditions) is not feasible except for trivial cases
In testing we need to decide how we will focus our testing, based on the risks.
1.3 TESTING PRINCIPLES
Testing shows presence of defects
Exhaustive testing is impossible
Testing is context dependent
1.4 FUNDAMENTAL TEST PROCESS
1.4.3 Test analysis and design
Design the tests
Evaluate testability of the requirements and system
Identify test conditions based on analysis of test items, their specifications, and what we know about their behavior and structure
Design the test environment set-up and identify any required infrastructure and tools
Review the test basis
1.4.4 Test implementation and execution
Create test suites from the test cases for efficient test execution
Implement and verify the environment
Develop and prioritize our test cases
Compare actual results
Where there are differences between actual and expected results, report discrepancies as incidents
Log the outcome of test execution and record the identities and versions of the software under test, test tools and testware
Repeat test activities as a result of action taken for each discrepancy
Execute the test suites and individual test cases
1.4.2 Test planning and control
Implement the test policy and/or the test strategy
Determine the required test resources
Determine the test approach
Schedule test analysis and design tasks, test implementation, execution and evaluation
Determine the scope and risks and identify the objectives of testing
Determine the exit criteria
Provide information on testing
Initiate corrective actions
Monitor and document progress, test coverage and exit criteria
Measure and analyze the results of reviews and testing
1.4.5 Evaluating exit criteria and reporting
Evaluating exit criteria has the following major tasks
Assess if more tests are needed or if the exit criteria specified should be changed
Write a test summary report for stakeholders: It is not enough that the testers know the outcome of the test
Check test logs against the exit criteria specified in test planning
we can divide the activities within the fundamental test process into the following basic steps:
Implementation and execution
Evaluating exit criteria and reporting
Analysis and design
Test closure activities
Planning and control
1.4.6 Test closure activities
Test closure activities include the following major tasks
Finalize and archive testware, such as scripts
Hand over testware to the maintenance organization
Check which planned deliverables we actually delivered and ensure all incident reports have been resolved through defect repair or deferral
Evaluate how the testing went and analyze lessons learned for future releases and projects.
1.5 THE PSYCHOLOGY OF TESTING
1.5.1 Independent testing
Tests by the person who wrote the item under test
Tests by another person within the same team, such as another programmer
Tests by a person from a different organizational group, such as an independent test team
Tests designed by a person from a different-organization or company
1.5.2 Why do we sometimes not get on with the rest of the team?
we need to be careful when we are reviewing and when we are testing:
Remind everyone of the common goal of better quality systems
Explain that by knowing about this now we can work round it or fix it so the delivered system is better for the customer
Communicate findings on the product in a neutral, fact-focused way without criticizing the person who created it