V&V Flashcards
What is a mistake?
a human action that produces an incorrect step (defect)
What is a defect?
an incorrect step, process, or data definition
What is a failure?
an incorrect result; the manifestation of a defect
What is the v-model
Stage of Development Type of Testing
Requirements
Difference between verification and validation?
Verification - are we building the product right
Validation - are we building the right product
What is a build?
Current snapshot of the code; a release candidate
What is a release?
An executable version of the software that has been deployed
What is in a test plan?
- What needs to be tested
- What types of testing needs to be done
- The needed personnel and resources
- Testing activity breakdown and scheduling
- Risk analysis
Different types of testing
Unit testing - testing the smallest (as defined by the team) code module in isolation
Integration testing - combining units of code to test how they integrate with one another
System testing - testing a full snapshot of the system with all necessary integrations
Acceptance testing - testing from the point of view of the clients and users
Regression testing - testing after changes have been made to a working system
Stress testing - putting the working system through stress to determine limits, weak points, potential problems, etc. during extreme operating conditions
SOLID design principles
Single responsibility - a class should have one and only one reason to change
Open/closed - a class should be open for extension and closed for modification
Liskov substitution - derived classes should be substitutable for their parent class
Interface segregation - make fine-grained interfaces that are client specific
Dependency inversion - rely on abstractions, not concretions
What is control flow testing?
Graphically represent the unit with a control flow graph (CFG) then choose a path selection criteria to test
What are the path selection criteria for control flow testing?
All-path - selects all possible paths through the unit
Statement coverage - executing individual program statements and observing the outcome (weakest)
Branch coverage - executing edges within the CFG
Predicate coverage - special form of branch where each predicate is given its own decision node (strongest)
Cyclomatic complexity
CC = E - N + 2P
E = number of edges N = number of nodes P = number of subroutines
Tools needed for web testing
Selenium
SpecFlow