Expectations
• This course is not purely a lecture course– Classroom participation is a large portion– Everyone is expected to participate– Please feel free to challenge anything in this class• There are no iron clad rules for achieving quality• We will all learn from each other• Everyone will have a better idea how to accomplish
different tasks as we work through this course.
Overview• Introduction to QA
– Software quality– Quality factors
• Traditional QA– Test strategy– Test cases– Test execution– QA Metrics
• Agile– Agile principals– QA Quadrants– Automation– Iteration activities
Grading
• Class participation – 10%• Project – 40% – Test Strategy – 5% – Test Case – 15%– Test Execution – 15%– Automation – 5%
• Mid-term – 25%• Final 25%
Texts
• Software Quality Assurance: From Theory to Implementation – Daniel Galin
• Agile Testing: A Practical Guide for Testers and Agile Teams – Lisa Crispin and Janet Gregory
Quality Assurance
• What makes software different from other discipline?– Product complexity– Software is invisible– Opportunity to detect defects
QA Environment Characteristics
• Contractual constraints• Subject to customer-supplier relationship• Required Teamwork• Cooperation with other teams• Interface with other teams• Personnel changes• Maintenance and upgrades
Components of Software Quality
• Code quality– Does it meet customers needs– The ‘ilities– Defects
• Process and Procedures• Documentation– Requirements– Designs– User manuals/help
• Data
Causes of Defects
• Requirements• Communication with client• Deviations from requirements• Design errors• Coding errors• Maintenance changes
Software Quality
• IEEE definition– Degree to which a system, component or process
meets specified requirements.– Degree to which a system, component, or process
meets customer or user needs or expectations.• Expanded definition– Conformance with explicitly stated requirements– Meets quality standards in contract– Good Software Engineering Practices are followed.
Software Quality Assurance
• IEEE Definition– Planned and systematic pattern of all actions
necessary to provide adequate confidence that an item or product conforms to established technical requirements
– Set of activities designed to evaluate the process by which the products are developed or manufactured.
Software Quality Assurance
• Expanded definition– A systematic, planned set of actions necessary to
provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary constraints.
Quality Control/Assurance
• Quality Control - Set of activities designed to evaluate the quality of a developed product– Main objective is to prevent any product that does
not meet standards from reaching customers• Quality Assurance – Set of activities designed
to prevent causes of errors, detect and correct errors early.– Main objective is to minimize the cost of
guaranteeing quality
Requirements Document
• One of the most important documents for achieving software quality
• Covers all attributes of software and its use
Quality Factors
• Issues related to various attributes of software, its use and maintainability
• Can be classified into groups
Quality Factor Groups
• Product Operation factors• Product revision factors• Product transition factors