Software Testing and Quality Assurance Notes
Subject Overview
Software Testing and Quality Assurance covers testing principles and test management, software metrics and quality assurance concepts, comparative evaluation of testing tools and object-oriented testing, and quality management standards including CMM. A 5-credit core theory paper.
Subject at a glance
4
Units
35
Topics
5
Credits
4
Infographics
Unit-wise Syllabus
4 units — open any unit for detailed topic-wise notes, diagrams and important exam questions
- Errors/faults/defects/failures
- unit/integration/system/regression/alpha/beta/acceptance testing
- functional/performance/recovery testing
- white-box and black-box testing
- testing life cycle
- test planning
- black-box design strategies (random testing, equivalence class partitioning, boundary value analysis)
- white-box test adequacy criteria
- defect tracking and analysis
- 1Error
A human mistake
- 2Fault (defect)
The mistake in code
- 3Failure
The system behaves wrongly when the fault runs
Study guide
This unit covers errors, faults, defects and failures, the types and levels of testing, white-box and black-box testing, the testing life cycle, test planning, black-box strategies (random testing, equivalence partitioning, boundary value analysis), white-box adequacy criteria and defect tracking. Practise boundary value analysis for a simple input field.
- Scope and classification of software metrics
- measurement basics
- product quality metrics (MTTF, defect density, customer satisfaction, function point)
- quality concepts (quality control, quality assurance, cost of quality)
- SQA activities
- software reviews/inspections/audits
- quality attributes
- Ishikawa's Seven Basic Tools
Cause-and-effect diagram
Fishbone: root causes
Check sheet
Tally of defects
Control chart
Process stability
Histogram
Distribution of data
Pareto chart
Vital few causes
Scatter diagram
Relationship between variables
Stratification
Split data by source
Study guide
You study software metrics and their classification, product quality metrics (MTTF, defect density, customer satisfaction, function points), quality concepts (control, assurance, cost of quality), SQA activities, reviews, inspections, audits, quality attributes and Ishikawa's seven basic tools. Draw a fishbone diagram for a software defect.
- Comparative evaluation of testing tools
- dynamic analysis tools
- test data generators
- debuggers
- test drivers
- technical metrics for software (analysis, design, testing, source code)
- object-oriented testing strategies
- test case design
- interface testing
- Equivalence partitioning
- Test one value from each input class
- Boundary value analysis
- Test at and around the edges
- Statement coverage
- Every line runs at least once
- Branch coverage
- Every decision true and false
- Regression testing
- Re-test after changes
Study guide
You study testing tools (dynamic analysis tools, test data generators, debuggers, test drivers), technical metrics for software and object-oriented testing strategies, test case design and interface testing. Try a testing tool such as Selenium or JUnit.
- Quality standards (ISO 9000/9001, CMM, Six Sigma)
- CMM development and key process areas — requirements management
- software project tracking
- configuration management
- process definition
- product engineering
- peer reviews
- quantitative process management
- defect prevention
- 5. Optimising
Continuous process improvement
- 4. Managed
Measured quantitatively
- 3. Defined
Standard organisation-wide process
- 2. Repeatable
Basic project management
- 1. Initial
Ad hoc and chaotic
Study guide
You study quality management: ISO 9000 and 9001, CMM, Six Sigma, and the key process areas of CMM such as requirements management, project tracking, configuration management, peer reviews, quantitative management and defect prevention. Learn the five CMM maturity levels.
Why Software Testing and Quality Assurance Matters
Testing and quality assurance are essential in every software company and a main entry point for fresh graduates, with roles such as QA engineer and test automation engineer.
How to Prepare for Software Testing and Quality Assurance
- Practise writing test cases using equivalence partitioning and boundary value analysis.
- Learn the testing levels and the CMM levels.
- Try a test automation tool on a small project.
Software Testing and Quality Assurance: Frequently Asked Questions
What is the difference between verification and validation?
Verification checks that the product is built correctly against its specification, while validation checks that it is the right product for the user's needs.
What is boundary value analysis?
It is a black-box technique that tests inputs at the edges of valid ranges, where errors are most likely.
