1/21
Understanding QA, QC, and Testing in Software Development
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Quality Assurance (QA)
Refers to the systematic activities implemented within the quality system to provide confidence that a product or service will meet quality requirements
Quality Assurance (QA)
Prevent defects by focusing on the processes used to make a product.
Quality Assurance (QA)
Ensures a high level of quality for software applications.
Quality Control (QC)
Involves inspecting and testing products to identify defects after the product is developed.
Quality Control (QC)
Detect defects by examining the final product.
Quality Control (QC)
Ensures that the product meets the required standards and specifications.
Testing
Is the process of executing a system to identify bugs, defects, or errors.
Testing
Evaluate the quality of the product by finding issues.
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Common Types of Testing
Unit Testing
This is the lowest level of testing, focusing on individual components or functions of the software. Developers typically perform this type of testing to ensure that each piece of code works correctly in isolation.
Integration Testing
This level tests the interaction between integrated components or modules. It ensures that different parts of the software work together as expected and that data flows correctly between them.
System Testing
This is a comprehensive evaluation of the entire software system to verify that it meets the specified requirements. It tests the complete, integrated application to assess overall functionality and performance.
Acceptance Testing
The final level of testing, performed to validate whether the software meets business requirements and is ready for deployment. It is usually conducted by end-users or clients to determine if the software is acceptable for release.
QA: Process-oriented, focuses on preventing defects.
QC: Product-oriented, focuses on identifying defects.
Testing: Execution-oriented, focuses on finding and fixing defects.
QA vs. QC vs. Testing
Planning: Establish quality standards and processes.
Design: Review design specifications for quality.
Development: Ensure coding practices meet quality guidelines.
Testing: Validate that the product meets requirements.
Deployment: Verify that the software is ready for release.
The Role of QA in the Software Development Lifecycle (SDLC)
QA Methodologies
Waterfall Model
Agile Model
V-Model
Waterfall Model
Linear sequential process.
Usage: Ideal for projects like government contracts where requirements are fixed upfront.
Agile Model
Iterative and incremental process.
Usage: Ideal for projects requiring flexibility and ongoing changes, such as software startups or app development.
V-Model
Validation and verification.
Usage: Ideal for projects where testing is critical, such as medical devices or safety-critical applications.
Implement clear QA processes and guidelines.
Conduct regular code reviews.
Encourage team collaboration.
Implement automation testing.
Track and measure defects.
QA Best Practices
Test Management Tools: JIRA, TestRail
Automation Tools: Selenium, Cypress
Bug Tracking Tools: Bugzilla, Mantis
Tools Used in QA
Improved software quality.
Reduced rework and costs.
Increased customer satisfaction.
More efficient development processes.
Benefits of QA