QA Mohamed
QA Mohamed
QA Mohamed
1. Unit Testing:
The foundation of the testing process, unit testing, focuses on verifying the correctness and
functionality of individual software units modules, functions in isolation. This stage ensures
the code adheres to established coding standards and best practices. The test basis for unit
testing primarily comprises the unit's code itself, along with any available design documents
and code comments for clarification. Here, developers primarily shoulder the responsibility
for identifying and rectifying typical defects like syntax errors typos, missing semicolons,
logical errors (incorrect calculations), and boundary condition issues handling extreme
values. White-box testing, which delves into the unit's internal structure, and the use of
mocks and stubs to simulate dependencies are prevalent approaches employed during unit
testing.
2. Integration Testing:
Building upon the foundation laid by unit testing, integration testing focuses on verifying the
interaction and functionality of multiple integrated units as a cohesive subsystem. This stage
aims to identify and rectify any interface issues arising between these units. The test basis for
integration testing expands upon unit testing by incorporating results from unit testing,
system design documents outlining the overall architecture, and interface specifications
defining communication protocols between units. Typical defects unearthed during
integration testing include communication issues between Software testers assume the
primary responsibility for integration testing, often collaborating with developers for
troubleshooting. Two common approaches employed during integration testing are top-down
testing, which begins with high-level components and progressively integrates lower-level
units, and bottom-up testing, which starts with low-level units and builds the system
incrementally by integrating higher-level components.
3. System Testing:
System testing elevates the testing scope to encompass the entire system. This stage
comprehensively verifies that the entire system fulfills both functional and non-functional
requirements, encompassing aspects like performance, security, and usability. Here, the
objective is to identify and rectify system-level defects and any lingering integration issues.
The test basis for system testing encompasses system requirements documents outlining the
desired functionalities, system design documents detailing the system's architecture, and user
stories and acceptance criteria that define the system's behavior from an end-user perspective.
Typical defects identified during system testing include functional gaps (missing features or
functionalities), system crashes or performance bottlenecks, and usability issues hindering
user interaction. Software testers have the lead role in system testing. They may collaborate
with developers, business analysts, and even potential end-users during this stage. Black-box
testing, which focuses on the system's external behavior, performance testing to evaluate the
Student name : Mohamed abdelaal hamed Id : 20108970
system's ability to handle workloads, and usability testing involving real users are some of
the prevalent approaches employed during system testing.
4. Acceptance Testing:
The final stage of the testing process, acceptance testing, serves as the final validation
checkpoint before deployment. This stage aims to confirm that the system aligns with the
business needs and meets the expectations of end-users. Here, the focus is on ensuring the
system's readiness for deployment to the production environment. The test basis for
acceptance testing primarily revolves around user stories and acceptance criteria defining
functionalities from a user's perspective, along with business requirements documents
outlining the overall business goals. Missing or incomplete functionalities critical to user
needs, data integrity issues, and security vulnerabilities are some of the typical defects
identified during acceptance testing. End-users or their designated representatives have the
primary responsibility for acceptance testing. Testers may be involved to provide support and
guidance during this stage. Two common approaches employed during acceptance testing are
User Acceptance Testing , which involves end-users or their representatives testing the
system, and Alpha/Beta testing, which involves controlled releases of the system to a limited
audience for broader feedback before full deployment.
1. Unit Testing
a. Test Objectives:
b. Test Basis:
• Syntax errors
• Logical errors
d. Specific Approaches:
• White-box testing: This approach delves into the unit's internal structure to identify
errors based on code logic.
Student name : Mohamed abdelaal hamed Id : 20108970
• Mocks and Stubs: Simulating dependencies with mock objects allows for focused unit
testing without relying on external components.
e. Responsibilities:
• Software developers have the primary responsibility for unit testing their own code.
2. Integration Testing
a. Test Objectives:
b. Test Basis:
e. Responsibilities:
• Software testers assume the primary responsibility for integration testing, often with
collaboration from developers for troubleshooting.
3. System Testing
a. Test Objectives:
• To comprehensively verify that the entire system fulfills both functional and non-
functional requirements (performance, security, usability).
• To identify and rectify system-level defects and any lingering integration issues.
b. Test Basis:
• User stories and acceptance criteria that define the system's behavior from an end-user
perspective.
• Functional gaps
• System crashes or performance bottlenecks that impede system responsiveness.
• Usability issues hindering user interaction
• d. Specific Approaches:
• Black-box testing: This method focuses on the system's external behavior without
delving into the internal code structure.
• Performance testing: This approach evaluates the system's ability to handle expected
workloads and respond within acceptable timeframes.
• Usability testing: This method involves real users interacting with the system to identify
and rectify usability issues.
e. Responsibilities:
• Software testers have the lead role in system testing. They may collaborate with
developers, business analysts, and even potential end-users during this stage.
4. Acceptance Testing
a. Test Objectives:
• To confirm that the system aligns with the business needs and meets the expectations
of end-users.
• To ensure the system's readiness for deployment to the production environment.
b. Test Basis:
• User stories and acceptance criteria that define the system's functionalities from a user's
perspective.
• Business requirements documents outlining the overall business goals.
d. Specific Approaches:
• Alpha/Beta testing: This method involves controlled releases of the system to a limited
audience for broader feedback before full deployment.
e. Responsibilities: