testing enables us to
why is a software testing methodology needed
To meet legal, contractual, industry specific needs etc.
positive testing
- verifies correct operation, does it work, if error -> test fails
negative testing
- ensures application handles invalid or unexpected user behaviour
- try to break the code
- finding defects
Project delivers to a set specification - must be correct - must meet the specification
Referred to as :
Validation (correct specification)
Verification (does it meet spec)
Degree a system meets:
- specified requirements
- user/customer needs and expectations
can be objectively and subjectively measured
How testing enhances quality short and long term
ST
- testing finds defects, fixes defects, confirms fixes, software has fewer defects
LT
- finds defects, defect analysis identifies causes, process improvement prevents reoccurence, future systems have fewer defects
categored by impact and probability and organised by risk
Test coverage
Rate of defect discovery
Number of known defects
Percentage of test cases passed
Remember
Testing does not change quality of system (detects defects which are repaired)
Tests should measure functional and non-functional characteristics
Provides a learning opportunity for future projects
Needs to be team wide incorporating different departments
Test basis to test case process
Text basis
- Requirements specification
- source for creation of test cases
Test condition:
- an item or event of a component or system that could be verified by one or more test cases (e.g. a function, feature, quality attribute, or structural element)
- test that is is possible to
Test Case:
- a set of input values, execution preconditions, expected results and execution post-conditions, developed for a particular test condition
example:
input - “The beatles, a day in the life”
expecte output: A list of websites relating to the beatles
Characteristics of a good requirement
write good requirement cardss
write cards
fundamental test process
Test planning and control
Test analysis and design
Test implementation and execution
4: Evaluating Exit Criteria & Reporting
Checking logs against exit criteria specified in Test Planning
(e.g. Are there any critical/high risk defects remaining?
Have all high risk areas been completely tested?)
* Assessing if more tests are required (How successful were our tests?)
* Assessing if exit criteria need changing
* Writing a test summary for stakeholders
Test closure
Checking planned deliverables have been delivered
* Closing incident reports (failed tests have an answer/action)
* Raising change records for remaining open incidents
* Documenting the acceptance of the system (acceptance testing)
* Finalising and archiving test-ware and test environment
* Analysing lessons learned (post-mortem follow up meetings)
* Using information gathered to improve test maturity
(retrospective)
Seven principles of software testing
Exhaustive testing is impossible