You are on page 1of 14

Quality Assurance in Software Project Management

Presented by: Muhammad Imran Malik Muhammad Ouns Qureshi Nasir Ansari

Why you need to know QA


- Part of Software Engineering - Apart from PM, the one developers have most interaction is the QA. - Together they can either be a good Team or Rivals. It depends on who much they understand each others activities.

Quality
Quality is simply User satisfaction i.e. User satisfaction = Conformance to client requirement + Good Quality + Delivery within budget and time. Quality Factors: - Functionality - Reliability - Usability - Efficiency - Maintainability - Portability

QC/QA
Quality Control (QC): Series of inspections, reviews, tests used throughout the software process to ensure each work product meets the Requirement Quality Assurance (QA): Set of auditing and reporting functions that assess the effectiveness and completeness of quality control activities Verification: Set of activities that ensure that software correctly implements a specific function. Are we building the product right Validation: Set of activities that ensure that software has been built as per client requirement. Are we building the right product

Testing Techniques
There are two types of techniques: White box: Targets internal logic and interface of every software component. Also known as Glass box testing Black Box: Exercise the input and output of the program without targeting internal logic. Also known as behavioral testing A third type is also considered: Gray Box: Exercise the input and output of the program with some knowledge of internal logic

Testing Strategy
Many strategies can be used but the Most chosen ones are: Unit Testing: Focuses verification effort on the smallest unit of software design, component or module Integration Testing: Focuses on testing some combined components or modules OR Testing the entire system as a whole

Integration Testing
Smoke testing: High level functionality test to check that software build is ready for detailed testing Validation testing: Checks the conformity of software with requirements i.e. Functional testing, UI testing Regression testing: Ensures that changes/bug fixes/new modules have not propagated unintended side effects. It is done on impact areas only. System Testing: Verifies that all system elements have been properly integrated and performed allocated function.

System Testing
Recovery testing: System test that forces software to fail in variety of ways and verifies that recovery is properly performed Security Testing: Verifies that system is protected from improper penetration Stress Testing: Executes a system with resources in abnormal quantity, frequency or volume. Purpose is to find system limitations Performance Testing: Checks run-time performance of software in integrated system.

QA Life Cycle
Requirement Analysis Design Coding/Development Testing Test Planning/Strategy Test Case design Test Execution

-Review Requirements -Test Strategy -Test Plan

-Review Design Documents -Smoke Checklist -Detailed Test Case -RTM-p -UAT Checklist

-Test Case Execution Log -Bug Report

Email -Build Version -SVN ID -Deployment Server Release Notes Deployment Guidelines (If required)

Bug Life Cycle


New Feature Deployment

UAT

Coding/Development

Testing

Bugs

No

Staging

Production

Yes
Bug Fixes Deployment

Email -Build Version -SVN ID -Deployment Server Deployment Guidelines (If required)

Testing
-Smoke Checklist -Detailed Test Cases -UAT Checklist

Smoke Testing

Validation Testing

Regression testing

System Testing

Bug Life Cycle

Bugs Associated Information


Summary Description Module Detected in Build Version Fixed in Build Version Priority Severity Detected Date Reporter Assigned to etc

Q/A

You might also like