Testing fundamentals Flashcards
What is software testing?
Method to check if software product matches expected requirements and to ensure that software is defect free
What is the goal of software testing?
Identify errors, gaps or missing requirements
Why is software testing important?
Ensures reliability, security, and high performance of software. Results in time saving, cost effectiveness and customer satisfaction
What does poorly tested software lead to?
Monetary and human loss (injuries, death)
What are the three categories of testing?
Functional, non-functional, and maintenance
What are the different types of functional testing?
Unit, integration, smoke, user acceptance (UAT), localization, globalization, interoperability
What are the different types of non-functional testing?
Performance, endurance, load, volume, scalability, usability
What are the different types of maintenance testing?
Regression, maintenance
What are the important testing strategies in software engineering?
Unit, integration, and system testing
What is program testing?
Method of executing an actual software program with the goal of testing program behavior and finding errors
What are the 7 principles of software testing?
- Testing shows presence of defects
- Exhaustive testing isn’t possible
- Early testing
- Defect clustering
- Pesticide paradox
- Testing is context dependent
- Absence of errors fallacy
What is defect clustering?
A small number of modules contain most of the defects detected - 80% of the problems are found in 20% of the modules (Pareto Principle)
What is the pesticide paradox?
If the same set of repetitive tests are conducted, the method will become useless for discovering new defects (insects developing resistance to pesticide over time)
What is the meaning of testing shows a presence of defects?
Testing reduces probability of undiscovered bugs remaining in the software, but finding no bugs doesn’t mean correctness
What is the meaning of absence of error - fallacy?
Finding and fixing defects doesn’t help if system build is unusable and doesn’t fulfill the user’s needs and requirements
What is the meaning of early testing?
Testing should start ASAP in the SDLC so that any defects in the requirements or design phases are captured
What is the downside of not doing early testing?
Money loss
What is the meaning of testing is dependent?
The way you test an e-commerce site will be different from the way you test a mobile app. Need to use different techniques, testing types, etc depending on app type
The V Model is also known as what?
Validation and Verification Model
What is the Software Development Life Cycle (SDLC)?
Sequence of activities carried out by developers to design and develop high-quality software
What is Software Testing Life Cycle (STLC)?
Series of activities carried out by testers to test software