Module 1 Flashcards
Whats the definition of testing?
- The process of executing a program with the internt of finding errors
- The process of exercising a system by manual or automatic means to verify that it satisfies specified requirements or to identify differences between actual and expected results
Whats Software testing
Dynamic verification of the behaviour of a program on a finite set of test cases, comparing the behaviour against the expected
7 principles of testing
- Shows the presence of defects but cannot prove that there are no defects
- Testing everything is not possible, except in trivial cases
- Testing should occur as early as possible in the SDLC
- Defect clustering: Most operational failures exist in a small number of modules. This is true during pre release
- Pesticide paradox: if the same test are repeated, eventually these tests will not find new bugs. To overcome this, tests need to be reviewed regurlarly
- Testing is done differently in different contexts. Safety-critical software is tested differently than e-commerce
- Absence-of-error fallacy: if the system is unusable and not satisfactory for the user, finding defects and fixing them does not help
Testing vs debugging
Testing: Locates and identifies bugs
Debugging: Fixes these identified bugs
Fault error and failure
Fault, failures defect: Severe condition, even dangerous
Anomaly, incident,variance: unintended behaviour rather than complete failure
Problem, error and bug: Generic terms
Why do we test?
-Find faults
-Get the confidence of a system
-Measure the quality of a system
-The customer required testing the system
- Assure and prepare for minimising failures
-Economical
What’s quality assurance?
Systematic activities implemented in a system so that quality requirements for a product or service will be fulfilled
What’s Software Quality Assurance?
Refers to the process of ensuring the quality of a software product. Subset of QA and is focused specifically on software development
When to start testing?
As early as possible, becoming more cheap in the SDLC
When to stop testing?
Can be hard, neverending process. Because no-one can claim a software is 100% tested. Instead, testing deadlines, completion of test case execution and completion of functional code coverage will be considered to end testing
Management decision
Software development models (SDLC)
Software development life cycle (describes the activities and tasks in a software development process) that’s applied to a project will have significant impact on the testing of that software.
Test activities is highly related to software development activities
The way testing is organised must fit the development life cycle or it will fail to deliver its benifits
Verification and validation
Verification: Determining whether the products of a given development phase satisfies the requirements set during the previous development phase
Validation: Evaluating the software after the development to ensure it complies with intended usage
Cases exist where IV&V. “I” stands for independent indicating a third, disinterested, party does the V&V
Waterfall
-Development is split up into a number of independent steps
-starts with the study about the various development tasks and finishes with the implementation into the live environment
-Testing happens at the end, defects are detected close to implementation of the product
- Difficulties arise when we need to iterate a certain part
- Testing adds lead time because it’s implemented at the end of the development phase
The V-Model
Introduced to solve problems with waterfall model
Provides guidance that testing needs to begin earlier in the development life cycle
Illustrates how V&V can be implemented into each phase of the life cycle
Testing should be done parallel to the development activities
Testers need to work alongside the developers and business analysts to produce test deliverables
One good practice: Have the testers involved as early as the review of the test basis documentation
W-model
Most recent
Covers activities that’s skipped with the v-model and deals with problems not caught by v-model
The tests start when project starts and test programs should be developed parallel with the code
If any phase is ignored, quality is compromised