Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Testing at Othoz
- A brief introduction to Software Quality Assurance
- ## What is Testing?
- - Testing measures the quality e.g., based on the number of located failures
- - Testing increases the quality indirectly, as defects are detected which can be corrected prior to delivery
- - Testing increases the process quality indirectly, as defects are documented which can then be analysed and help prevent similar errors from taking place in the future
- - Testing increases the confidence in the quality of the system when few or no failures and defects are found
- > Testing is economically useful, as long as the costs of finding and fixing a defect in testing are lower than the costs that are associated with the occurrence of a defect when used.
- Testing effort in practice: 25% to 50% of development effort.
- ## Terminology
- For an extensive glossary of all test terminology visit: http://glossary.istqb.org
- - **Error**: Human action that produces an incorrect result
- - **Defect** (aka bug): A flaw in a component or system (mostly the result of an error)
- - **Failure**: The effect of a defect when executing a program
- ---
- - **Debugging**: Finds, analyzes and removes the causes of these failures
- ---
- - **Validation**: Did we implement the right system?
- - **Verification**: Did we implement the system right?
- ## Seven Principles of Testing
- Main principles that emerged from >50 years of Software Testing
- 1. Testing shows presence of failures (but cannot prove that there are no defects)
- 2. Exhaustive testing is impossible
- 3. Early testing
- 4. Defect clustering
- 5. Pesticide paradox (Repetitions have no effects)
- 6. Testing is context dependent
- 7. Absence-of-errors fallacy
- ## Software Quality Metrics
- Following [ISO 25010](https://iso25000.com/index.php/en/iso-25000-standards/iso-25010):
- ![Image result for iso 25010](http://www.johner-institut.de/blog/wp-content/uploads/2011/12/121111_1340_TschssISO911.png)
- ## Fundamental Test Process
- The test processes is closely linked with software development **but** is a separate, independent process. Testing **cannot** be considerd as a single activity (e.g. test execution), it includes many individual tasks.
- The test process represents these individual testing activities in a coherent process.
- ### Planning and Controll
- - Planning
- - Plan test resources (for us mainly person hours)
- - How instensive should we test what?
- - Which test techniques should be used?
- - Exit criteria (when did we test enough?)
- - Prioritizing tests (Risk = Likelihood * Impact)
- - Tool support? (flake8, pytest, codacy, bitbucket reviews, ...)
- - Schedule tasks for test analysis and test specification.
- - Schedule test implementation, test execution and test evaluation
- - Controll
- - Measuring and analysing results
- - Monitor and record test processs (test coverage, exit critera)
- - Adapt time and resource planing
- ### Analysis and Design
- ### Implementation and Execution
- ### Report and Evaluation
- ### Test Closure
- ## Testing Throughout the Software Life Cycle
- ### The V-Model
- ![V-Model](http://www.softwaretestingstudio.com/wp-content/uploads/2017/04/V-Model-for-Software-Development-Life-Cycle.jpg)
- new product versions
- maintenance testing
- regression testing
- impact analysis
- ## Test Design Techniques
- ### Static Techniques
- ### Structure-based Techniques
- ### Experience-based Techniques
- ### Choosing Test Techniques
- ## Test Management
- ### Test Organization
- ### Planning and Estimation
- ### Test Progress Monitoring and Control
- ### Risk and Testing
- ### Incident Management
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement