14
14
the product, such as performance, stability, and usability. Whereas functional testing
verifies whether or not the product does what it is supposed to, non functional testing
verifies how well the product performs
Non-functional testing can help improve a product's usability, maintainability, and
portability, while also reducing production risk and expense.
Some types of non-functional testing include:
Performance testing: Measures how well a system performs
Load testing: Simulates high user loads to measure system performance under heavy
traffic
Usability testing: Evaluates the user experience and usability of the system
Security testing: Identifies vulnerabilities and weaknesses in the system's security
Non-functional testing can be challenging because of varying device configurations, network
conditions, and platform-specific behaviors.
This phase helps to identify whether the requirements are testable or not. If any
requirement is not testable, the test team can communicate with various
stakeholders (Client, Business Analyst, Technical Leads, System Architects, etc) during
this phase so that the mitigation strategy can be planned.
As a software testers, When I start with the Requirement Analysis phase, my primary
goal is to understand what needs to be tested. Here, I carefully go through the
software requirements and specifications documents. If I have any doubts or need
clarification, I talk to the stakeholders to make sure everything is clear. This phase
helps me identify the testable requirements and the scope of testing.
In this phase typically Test Manager/Test Lead involves determining the effort and
cost estimates for the entire project. Preparation of the Test Plan will be done based
on the requirement analysis.
Activities like resource planning, determining roles and responsibilities, tool selection
(if automation), training requirements, etc., carried out in this phase.
The deliverables of this phase are Test Plan & Effort estimation documents.
In the Test Planning phase, I create a roadmap for how I will approach the testing
process. This involves defining the objectives, resources, schedule, and scope of
testing. I also decide on the tools and techniques we will use and prepare a high-
level timeline. The test plan includes details about the testing environment, risk
analysis, and contingency plans. It acts as a guide for executing the tests.
Deliverables: Test Strategy, Test Plan, and Test Effort estimation document.
3. Test Design
The test team starts with test case development activity here in this phase. Testers
prepares test cases, test scripts (if automation), and test data.
Once the test cases are ready then these test cases are reviewed by peer members or
team lead.
Also, the test team prepares the Requirement Traceability Matrix (RTM). RTM traces
the requirements to the test cases that are needed to verify whether the
requirements are fulfilled. The deliverables of this phase are Test Cases, Test Scripts,
Test Data, Requirements Traceability Matrix
During the Test Design phase, I start creating test cases based on the requirements
gathered. I focus on writing test cases that cover both functional and non-functional
requirements. I make sure each test case includes clear steps and expected results.
Besides, I also work on preparing test data and identifying the criteria for test
automation if needed.
In this phase, Selenium would be the most popular tool to use. However, its
complexities and programming experience needed to Python or C# would definitely
pose a problem to your manual QAs and automation freshers.
Here, Katalon Studio would be your go-to choice in simplifying Selenium’s essential
capabilities through codeless automation, built-in keywords, and pre-defined artifact
templates for test suites.
The test environment setup is done based on the hardware and software
requirement list. In some cases, the test team may not be involved in this phase. The
development team or customer provides the test environment.
Meanwhile, the test team should prepare the smoke test cases to check the readiness
of the given test environment.
In the Test Environment Setup phase, I ensure that the testing environment is ready
for execution. This involves setting up hardware and software requirements,
configuring test servers, and ensuring network settings are correctly applied.
Sometimes, this phase might involve collaboration with the development or IT team
to get everything in place. The goal is to mimic the production environment as
closely as possible.
5. Test Execution
The test team starts executing the test cases based on the planned test cases. If a test
case result is Pass/Fail then the same should be updated in the test cases.
The defect report should be prepared for failed test cases and should be reported to
the Development Team through a bug tracking tool for fixing the defects.
Retesting will be performed once the defect was fixed. Click here to see the Bug Life
Cycle.
Once the environment is set up, I move to the Test Execution phase where I actually
run the test cases. Here, I record the outcomes and compare them with the expected
results. Any deviations or defects found are reported, tracked, and retested once
fixed. The objective is to ensure that the software behaves as expected under
different conditions.
Entry Criteria: Test Plan document, Test cases, Test data, Test Environment.
6. Test Closure
The final stage where we prepare Test Closure Report, Test Metrics.
The testing team will be called out for a meeting to evaluate cycle completion criteria
based on Test coverage, Quality, Time, Cost, Software, Business objectives.
The test team analyses the test artifacts (such as Test cases, Defect reports, etc.,) to
identify strategies that have to be implemented in the future, which will help to
remove process bottlenecks in the upcoming projects.
Test metrics and Test closure report will be prepared based on the above criteria.
Finally, in the Test Closure phase, I summarize the testing process and results. This
involves evaluating whether all the objectives were met and documenting any
learnings or improvements for future projects. I prepare a test summary report that
includes metrics, defect logs, and an overall assessment of the software quality. This
phase also ensures that all test artifacts are archived for future reference.
Entry Criteria: Test Case Execution report (make sure there are no high severity
defects opened), Defect report
STLC and SDLC are both parts of the process of developing software, but they serve different
purposes.
SDLC is the process used to plan, create, test, and deploy software. It is the overall process
of software development. It starts by gathering requirements from the client or
stakeholders, then moves on to design, coding, testing, and eventually deployment and
maintenance of the software.
STLC, on the other hand, focuses entirely on the testing part of software development. It
starts as soon as requirements are gathered, and includes phases such as test planning,
designing test cases, setting up the test environment, executing tests, and finally closing the
tests by evaluating the results.
The main difference is their scope. SDLC covers the whole process of creating software from
start to finish, while STLC focuses just on making sure the software works properly and
meets the requirements. Both are important and work together to ensure that high-quality
software is delivered.