70 likes | 284 Views
SEG4910 – Projet génie logiciel en fin d ’ études / Software Engineering Capstone Project. Review of Quality Assurance Timothy C. Lethbridge Derived from notes by Liam Peyton. Quality Assurance and Productivity go Together. Increase customer confidence
E N D
SEG4910 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Review of Quality Assurance Timothy C. Lethbridge Derived from notes by Liam Peyton
Quality Assurance and Productivity go Together • Increase customer confidence • Improve work processes and efficiency • Save time that would be used fixing defects • Enable company to better compete • Increase management and investor confidence
40-1000 Cost of corrections Req. Design Code Dev. System Field test test Operation 30-70 15-40 10 1 3-6
Testing • White Box Verification • Test-Driven Development, Code and design Inspections, coverage, formal program verification, invariants • Black Box Testing • Requirements scenarios, equivalence classes and boundaries • Unit Testing (Junit, HttpUnit, custom code) • Architecture-driven • Test driver and test data for each component • System Testing (of released executables) • End to end, simulated customer environment • Usability Testing • Acceptance Testing • “Real” users doing “real” scenarios (test environment)
Inspection • Significant changes should have their designs inspected before implementation • Every commit should be inspected by multiple people • Periodic walk-throughs of entire system
Example Sources of Defects • Misinterpretation of customer/user needs /communication • Unanticipated scenarios never accounted for • Changing operating system or regulations, feature interactions • Incomplete or erroneous specifications • Intentional deviation from specifications • Violation of programming or design standards • Error in data representation • Inconsistent component interface • Error in design logic • Incomplete or erroneous testing • Inaccurate or incomplete documentation • Error in programming language translation of design • Weakness in user interface
Tracking and continual improvement • Have a goal to reduce the number of high priority defects • Track over time • Remove defects before adding features • Data mine for common causes • Improve processes to reduce common causes • Show graphs of accomplishments