Software Testing Flashcards
Why do we test software?
Validation Testing
Defect Testing
Validation Testing?
Demonstrate that software meets requirements
Test the main success scenario of each use case
Test the main use-case extensions
Defect Testing?
Find defects by finding inputs where the software behaviour is incorrect
Test use-case extensions that define error handling
Test how the system operates
Test the boundaries
What does testing identify?
Deficiencies in requirements, design and implementation
Why is Validation needed?
Software needs to be demonstrated to be suitable
When is Validation performed?
Throughout the entire development process, not an end-of-cycle activity
Why is Verification Testing needed?
Have the software for completeness, does it deliver on all its functional and non-functional requirements
inputs causing?
anomalous behaviour
outputs which reveal?
the presence of defects
Methods of verifying and validating software?
Inspection and Reviews
Testing
Inspection and Reviews?
Software process artifacts are being statically analyzed for the purpose of being verified and validated
Types of Testing?
Development Testing
Release Testing
User Testing
What is Development Testing?
Conducted by software developers as part of the development process
What is Release Testing?
Conducted by independent testing teams that verifies and validates that the integrate software is correct
What is User Testing?
Conducted by users or pseudo-users to validate that software is suitable
What is Software Inspection?
In-depth, errors do not cover
Does not need running code, not complete code
Economical because it does not require any additional test harness
Very effective, 60%-90% of errors
Debugging Code?
Development activity aimed at solving bugs/issues discovered through software testing
Integral part of software development
Debugging is a critical validation and inspection activity
Limitations of Software Inspection?
A manual process which prevents regression verification
Hard to inspect complex runtime conditions
Expensive process
Complex Runtime Conditions?
Unexpected interactions between components
Timing problems
Performance issues
Factors that influence the breadth and depth of validation and testing activities include?
Software Purpose
User Expectations
Market Environment
Unit Testing?
Development testing that verifies the functionality of objects and their methods
Types of Development Testing?
Unit Testing
Component (Interface) Testing
System Testing
In agile processes, testing is seen as the?
Driving force of the development process through Test Driven Development