QUALITY ASSURANCE By G.C.Reddy www.gcreddy.net The QA Philosophy The inherent philosophy of Quality Assurance for software systems development is to ensure the system meets or exceeds the agreed upon requirements of the end-users; thus creating a high-quality, fully- functional and user-friendly application. Quality Assurance is more than just Testing Quality Assurance is involved in the entire project development life cycle Quality Assurance is a commitment by all project participants to the Total Quality of the Project Quality Assurance Focus Early in Life Cycle Machine-based testing performed No machine-based testing performed 30 25 Project The objective % Defects Removed Data 20 Target is to 15 “buy” time and 10 reduce costs 5 by finding 0 problems Function System Quality Requirements High Level Design Low Level Design Code Unit Test Development Test Integraton Assurance Regression earlier Test Test by focusing Development Life Cycle here Relative Cost Of Defect Repair - $1 $100 $1000+ The QA Process Cycle Phase I: Requirements Gathering, Documentation and Agreement Phase II: Establishing Project Standards Phase III: Test Planning Phase IV: Test Case Development Phase V: QA Testing Phase VI: User Acceptance Testing Phase VII: System Validation Phase I: Requirements and Project Scope The system requirements are collected and analyzed based on input and direction from each of the project groups The requirements documents are drafted, reviewed, finalized and agreed upon by all project participants The scope of the project is established and agreed upon Phase II: Establishing Project Standards The QA team will assist in establishing and setting the standards for the project The standards will be established for: Development Methodology System Design Quality Assurance Methodology Methodology Compliance Phase III: Test Planning The Quality Assurance Team will: Write the Test Plans which detail the QA involvement for the entire project life cycle Develop test conditions based on the business needs and business scenarios Implement a defect-tracking mechanism Phase III (con’t): QA Methodology The QA team will establish Quality Assurance methods, practices and standards The overall QA methodology will assist in creating a controlled product release and greatly reduce the risk of errors being introduced into the product Phase IV: Developing Test Cases Write test cases that entirely test the scenarios covered in the test conditions Review the test conditions and subsequent test cases with the project users Write test cases that will cover all phases of the QA life cycle Phase V: QA Testing QA Life Cycle consists of 5 types of testing regimens: 1. Unit Testing 2. Functional Testing 3. System Integration Testing 4. Regression Testing 5. User Acceptance Testing 1. Unit Testing The testing, by development, of the application modules to verify each unit (module) itself meets the accepted user requirements and design and development standards 2. Functional Testing The testing of all the application’s modules individually to ensure the modules, as released from development to QA, work together as designed and meet the accepted user requirements and system standards 3. System Integration Testing Testing of all of the application modules in the same environment, database instance, network and inter-related applications, as it would function in production. This includes security, volume and stress testing 4. Regression Testing This is the testing of each of the application’s system builds to confirm that all aspects of a system remain functionally correct after program modifications. Using automated regression testing tools is the preferred method. Testing Automation Automated Testing Tools Mercury Interactive (WinRunner) Rational (Robot) Segue (Silk) Phase VI: User Acceptance Testing (UAT) The testing of the entire application by the end-users ensuring the application functions as set forth in the system requirements documents and that the system meets the business needs Phase VII: Validation All systems should go through a validation process which maintains the project documentation library. Validation Documentation All software systems that are developed or used for FDA submissions are subject to review by the FDA. All phases of the Project Life Cycle are required to maintain FDA validation documents. MGD Services is experienced in FDA Validation and 21 CFR Part 11. Staffing The Staffing Requirements for the QA Functions: QA Manager Business Analyst Quality Assurance Analyst Technical Writer Instructional Designer/System Trainer QA Manager Established and implements the QA Methodology for project Total Quality Acts as the project lead liaison between all project areas to ensure all areas are completely and correctly engaged Oversees the entire QA Life Cycle and QA staff Business Analyst Writes the User Requirements and Functional Specs and assists in writing the system documentation Acts as a liaison between the QA Team and the other project team members Assists in the QA test conditions development Quality Assurance Analyst Develops test conditions Writes test cases Performs Functional, Regression, and System Integration Testing Assists in development of user guides and training manuals Assists or performs the System Training Technical Writer Assists in writing the user and system documentation Maintains validation documentation Writes on-line help Writes the User Guide and Training Manuals Instructional Designer/ Systems Trainer Assists in writing the user guides and training manuals Trains users on production system Subject Matter Expert on Adult Learning Theories and learning assessment In Closing... QA’s involvement must be from the beginning to the end of the project life cycle. Properly managed, the QA process will bring the system to production with cost and time savings.