Chapter 1 - Fundamentals of testing Flashcards
What are the Test Objectives?
E(a)TER Very Very Peanut Butter Vanilla :
- 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 had 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
What is a typical debugging process ? (In case of dynamic testing trigerring a failure)
- Reproduction of failure
- Diagnosis (finding the root cause)
- Fixing the cause
What does testing can do ? (In dynamic & static testing)
- Testing triggers failures that are caused by defects in the software (dynamic testing)
- can directly find defects in the test object (static testing)
Difference between Testing and Quality Assurance (QA ) ?
Testing is a form of QC (Quality control)
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 QC, while others include formal methods, simulation and prototyping
QA is a process-oriented, preventive approach that focuses on the implementation and improvement of processes. (If a good process is followed correctly, it will generate a good product)
Test results are used by both QC and QA. In QC they are used to fix defects, while in QA they provide feedback on how well the development and tests processes are performing.
Why is testing necessary ?
Testing, helps achieving the argeed upon goals within the scope, time, quality and budget constraints.
What is testing’s contribution to success? (Why testing necesary)
Testing provides a cost-effective means of detecting defects. These defects can then be removed (by debugging - a non-testing activity), so testing indirectly contributes to higher quality test objects.
Testing provides a means of directly evaluating the quality of a test object at various stages of SDLC (Software Development Lifecycle)
Testing provides users with indirect representation on the development project. Testers ensure that their understanding of users’ needs are considered throughout the development lifecycle.
Testing may be required to meet contractual or legal requirements, or to comply with regulatory standards.
What is an error ?
Human beings make errors (mistakes), which produce defects (faults, bugs) which in turn may result in failures.
Humans make errors for various reasons: time pressure, complexity of work products, processes, infrastructure or interactions, or simply because they are tired or lack adequate training.
What is a defect ?
Human beings make errors (mistakes), which produce defects (faults, bugs) which in turn may result in failures.
Defects can be found in documentation, such as requirements specification or a test script, in source code, or in a supporting artifact sur as build file.
Some defects will always result in failure if executed, while others will only result in a failure in specific circumstances, and their frequency reduced by addressing the root cause, such as by removing it.
What is a failure ?
Human beings make errors (mistakes), which produce defects (faults, bugs) which in turn may result in failures.
Errors and defects are not the only cause of failures. Failures can also be caused by environmental conditions, such as when radiation or electromagnetic field cause defects in firmwave.
What is a root cause ?
A root cause is a fundamental reason for the occurence of a problem (e.g., a situation that leads to an error)
Root causes are identified through root cause analysis, which is typically performed when a failure occurs or a defect is identified.
It is believed that further similar failures or defects can be prevented or their frequency reduced by addressing the root cause, such as by removing it.
The 7 Testing principles
- Testing shows the presence, not the absence of defects
- Exhausitve testing is impossible
- Early testing saves time and money
- Defects cluster together (Pareto principle)
- Tests wear out
- Testing is context dependant
- Absence-of-defects fallacy
What is software testing ?
Set of activities to :
- discover defects
- evaluate the quality of software artifacts
These artifacts, when being tested, are known as objects.
Checking if system meets specified requirements, validation.
Testing may be dynamic or static.
It is not only a technical activity, it needs to be properly planned, managed, estimated, monitored and controlled.
What is dynamic testing ?
Dynamic testing involves the execution of software.
It uses different types of techniques and test approaches to derive test cases.
What is static testing ?
Static testing does not involve the execution of software. It includes reviews and static analysis.
When static testing identifies a defect, debugging is concerned with removing it. There is no need for reproduction or diagnosis, since static testing directly finds defects, and cannot cause failures.
The 7 Test Processes activities ?
It usually consists of the main groups of activities :
1. Test planning
2. Test monitoring and control
3. Test analysis
4. Test design
5. Test implementation
6. Test execution
7. Test completion