SQA Mtt2
SQA Mtt2
Chapter 3
SQA System Architecture
2. Project life cycle activities assessment – Includes reviews, expert opinions, and
software testing for error detection.
6. Organizing for SQA (Human components) – Involves managers, testers, SQA unit,
and professionals responsible for implementing SQA methods.
2. Pre-Project Components
Purpose:
Ensures that project commitments are well-defined in terms of resources, schedule, and
budget.
Main Activities:
1. Contract Review:
o Quality Plan: Specifies quality goals, testing criteria, and verification method
Purpose:
Ensures that errors are detected early during development and maintenance.
1. Reviews:
2. Expert Opinions:
3. Software Testing:
Purpose:
Key Methods:
Purpose:
Key Activities:
Purpose:
Ensures adherence to ISO 9001, CMMI (Capability Maturity Model Integration), and IEEE
standards.
Purpose:
Key Participants:
CC = E - N + 2P
Different models are used in software development to ensure high quality and efficiency:
Begins with requirement gathering and ends with system operation and maintenance.
Waterfall model
Suitable for large and complex projects with high chances of failure.
1.4 The Object-Oriented Model
Advantages:
Impact of failure: Critical systems (e.g., medical software) need extensive QA.
Familiarity with the project: Teams familiar with the system can detect defects easily.
Quality assurance ensures that the software meets requirements through three key processes:
3.1 Verification
3.2 Validation
3.3 Qualification
A defect removal model helps measure how efficiently defects are detected and fixed.
Studies (e.g., IBM research) show most defects occur early in development.
Software Testing is the first quality assurance tool applied before software deployment.
24% of project budgets and 27% of project time are allocated to testing.
Classic Definition: "Testing is the process of executing a program with the intention of finding
errors."
Objectives
1. Direct Objectives:
2. Indirect Objectives:
1. Requirement Analysis
2. Test Planning
5. Test Execution
6. Test Closure
Approaches to Testing
2. Incremental Testing
o Two approaches:
Top-down testing: Tests the main module first, then lower-level modules.
Bottom-up testing: Tests lower-level modules first, then integrates with higher modules.
Use of Stubs and Drivers
Types of Testing
1. Functional Testing
2. Non-Functional Testing
6. Levels of Testing
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
8. Regression Testing
Answer:
An imaginary project suitable for prototyping is a "Smart Restaurant Ordering System."
Description: The system allows customers to place food orders through a mobile app with an
AI-based chatbot for recommendations.
Why Prototyping?
Example Finding bugs in a login system. Analyzing test reports for process
improvement.
(c) What are Test Cases? Explain any two test cases that might be used for a food ordering app.
Answer:
A test case is a set of conditions and inputs designed to check whether a software application meets
the expected results.
o Test Steps:
1. Open the app.
3. Click "Login."
o Test Steps:
(d) Why is Beta Testing performed when Alpha Testing has already been done to test the software?
Answer:
Even after Alpha Testing, Beta Testing is performed because:
User Feedback: Helps in collecting valuable feedback from actual users to improve usability
and performance.
Uncovered Bugs: Identifies issues that might not have been caught in Alpha Testing.
Q3. Take an example and explain the working of Stub and Driver.
Answer:
Stubs and Drivers are used in Incremental Integration Testing to simulate missing components.
1. Login System
If the Fund Transfer Module is incomplete, a Stub is created to simulate its expected
response.
The Login System and Account Balance Module interact with this Stub.
If the Login System is not ready but the Fund Transfer Module needs testing, a Driver is
created.
The Driver simulates user input and calls the Fund Transfer Module for testing.
Key Differences:
Example A fake function simulating payment A temporary script that mimics user
processing. login.
Answer:
Automated testing ensures fast and efficient software testing. The main types include:
1. Unit Testing
3. Functional Testing
4. Regression Testing
5. Performance Testing
o Example: Using JMeter to check how many users a website can handle.
6. Security Testing
o Identifies vulnerabilities.