Software Testing and Quality Assurance Notes
Software Testing and Quality Assurance Notes
Software Testing and Quality Assurance Notes
There are seven principles in software testing:
1. Testing shows presence of defects
2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence of errors fallacy
SOME TERMINOLOGIES
VERIFICATION AND VALIDATION
Verification is the process of checking that a software achieves its
goal without any bugs. It is the process to ensure whether the
product that is developed is right or not. It verifies whether the
developed product fulfills the requirements that we have.
Verification is static testing.
Verification means Are we building the product right?
Validation is the process of checking whether the software product is
up to the mark or in other words product has high level
requirements. It is the process of checking the validation of product
i.e. it checks what we are developing is the right product. it is
validation of actual and expected product. Validation is the dynamic
testing.
Validation means Are we building the right product?
VERIFICATION VALIDATION
It includes checking documents, It includes testing and validating
design, codes and programs. the actual product.
VERIFICATION VALIDATION
Verification is the static testing. Validation is the dynamic testing.
It does not include the execution It includes the execution of the
of the code. code.
Methods used in validation are
Methods used in verification are
Black Box Testing, White Box
reviews, walkthroughs,
Testing and non-functional
inspections and desk-checking.
testing.
It checks whether the software
It checks whether the software meets the requirements and
conforms to specifications or not. expectations of a customer or
not.
It can only find the bugs that
It can find the bugs in the early
could not be found by the
stage of the development.
verification process.
The goal of verification is
The goal of validation is an actual
application and software
product.
architecture and specification.
Validation is executed on
Quality assurance team does
software code with the help of
verification.
testing team.
It comes before validation. It comes after verification.
Hence, testing includes both verification and validation. Thus
Testing = Verification + Validation
Some software practitioners also feel that quality and reliability is the
same thing. If we are testing a program till it is stable, reliable and
dependable, we are assuring a high quality product. Unfortunately,
that is not necessarily true. Reliability is just one part of quality. To
produce a good quality product, a software tester must verify and
validate throughout the software development process.
TESTING, QUALITY ASSURANCE AND QUALITY CONTROL
The purpose of the testing team and Quality Assurance (QA) team.
As we have seen in the previous section (1.2.1), the purpose of
testing is to find faults and find them in the early phases of software
development. We remove faults and ensure the correctness of
removal and also minimize the effect of change on other parts of the
software.
SOFTWARE QUALITY
Auditing of projects
This Chapter will break down The Cost of Quality into its key
concepts, which include:
where
and
Cost of Failure of Control = Internal Failure Cost + External Failure
Cost