Software Quality Assurance at Indonetglobal is oriented towards
'prevention'. It Involves the entire software development process.
Prevention is monitoring and improving the process, making sure
any agreed-upon standards and procedures are followed, and ensuring
problems are found and dealt with.
The aim of our QA process is to create one central point of
control that is accessible to all members of the testing team.
This central point houses all testing assets and provides
a clear foundation for the entire testing process - from deciding
what needs to be tested, to building tests, running scenarios
and tracking defects. The test-management methodology also
supports the analysis of test data and coverage statistics,
to provide a clear picture of the application's accuracy and
quality at each point in its lifecycle
At a broad level, the activities and implications of the QA
Phase varies based on the various software development paradigms
in the industry.
SIGNIFICANCE OF OUR QA PHASE :
- Software Product Development
A software product release is preceded by internal QA cycles
wherein Test Engineers from the product development group
verify the product functionality against the feature specifications.
This is followed by Beta Testing of the product by external
users - customers, partners or volunteering testers.
- Software Application Development
In this case three levels of testing may be carried or out.
In the First level, the developed application's functionality
is verified strictly against client's specific requirements.
This is typically followed by System Integration and testing
of the service or application at the client site. If the
client is servicing a customer in turn, testing may be done
at the end-customer site also.
The QA phase forms a very critical node of the Software
Development Lifecycle and as such we attach the following
purpose/objectives to it.
As its chief
objective, the QA Phase brings out the lacunae in requirement
gathering,design and development of the software through reporting
of defects and suggestion of improvements.
Beyond its main
purpose of catching and reporting bugs in the software, QA
ensures compliance of functionality with pre-set expectations.
It also ensures
reliability of software over and above the expected functionality.
scalability, concurrent accessibility and satisfactory performance
of software under different usage conditions.
such as Beta Testing validates that the software not only
functions as per the defined specifications but also meets
customer expectations and market needs. Receiving and incorporating
feedback from end users belonging to different market segments
brings in competitiveness in the features also.
We follow the Tool based approach for all aspects of SDLC
including QA process. We use our custom built web based software
tool which helps us to automate capture, review and recording
of : Test Cases, Test Cycles, Trace ability of Test Cases
to Requirements, Software Releases, Installation/Release Notes,
and bug metrics along with bug tracking feature. Every QA
activity including reviews are performed using the tool, which
helps in collaboration of QA members, other project members
and the client.
The tool also enables us to review the metrics relevant to
past projects and develop effective test plans.
STAGES IN OUR QA PROCESS :
- Test Plan : As soon as the project requirements
have been defined, test planning is initiated. The advantage
of doing it in parallel with development is that the knowledge
that was put into the application design is not lost and
can applied to designing the testing strategy . Based on
the project objectives, Quality Manager builds a master
test plan, which will communicate the testing strategy,
priorities and objectives to the rest of the team. Based
on the master plan, testers can define test requirements,
or specific testing goals. Test requirements define WHAT
needs to be tested and what objectives - such as performance
goals - testers have in front of them. Once the requirements
have been defined, testers can start developing the testing
procedures designed to meet/validate those requirements
and run the tests.
- Test Case Generation : This stage starts quite
early in the SDLC, just after the Design Phase and as soon
as the Test Plans are completed. These Test Cases are used
for feature verification at the end of Development Phase.
However this initial draft of test cases may undergo several
modifications based on tester and end user feedback. Succinctly
put, the test cases must test for expected functionality
while also ensuring functioning of software as per expectations.
The former depends on the captured requirement specifications
while the latter is the end users' expectations from the
software. Thus maturity of Test Cases is ensured by continuous
review, updating, and tracking of updating.
Test Cases are generated by test engineers and reviewed
by the QA leads of each module, and a consolidated Test
Case Review Report for the module is generated. Quality
Manager inspects the modular TC Review Reports, consolidates
them and generates a single complete Test Case Review Report.
After this the Project Manager approves the test report
and dispatch the Test Cases as well as Test Case Review
Report to Client for approval. The client then approves
or suggests modifications to Test Cases. Modifications,
if needed, are made, reviewed and finally with Client's
approval the Test Cases are published.
- Test Cycle Planning : At this stage we draw schedules
and resource allocation charts for testing and their approval
by supervisors, before execution. The effectiveness of Test
Cycle is ensured by balanced deployment of manpower and
testing resources like servers, peripherals etc based on
criticality of tested features. Timely release of software
is ensured by planning an efficient test schedule.
QA leads of all the modules generate respective test cycle
plans and communicate it to the Quality Manager (QM). QM
checks for feasibility of plans and plausibility of estimates.
Inputs, if any, on plan modification is communicated to
the QA leads and modifications made are reviewed again.
Issues, if any, relating to resource availability, reconsideration
of deadlines etc, are escalated to the Project Manager by
the QM. Inputs, if any, from the PM is incorporated into
the execution plan by the QM and reviewed by the PM again.With
the Project Managers' approval the Test Cycle Plans are
- Test Cycle Execution: The actual testing takes
place in this stage. Activities includes logging of defect(s)/suggestions
encountered in testing, test case modifications, analysis
of test logs by leads and generation of QA reports based
on findings. The test reports are crucial to the actual
release of the software.
QA Process Management - Solution using 'vOntrack' - Our
Web based Tool
Supports the Entire Testing Process: VOntrack incorporates
all aspects of the testing process -requirements management,
planning, scheduling, running tests, issue management and
project status analysis - into a single browser-based application.
Provides Anytime, Anywhere Access to Testing Assets:
Using VOntrack's Web interface, testers, developers and
business analysts can participate in and contribute to the
testing process by collaborating across geographic and organizational
Provides Traceability Throughout the Testing Process:
VOntrack links requirements to test cases, to ensure traceability
throughout the testing cycle. When requirement changes or
the defect is fixed, the tester is notified of the change.
Facilitates a Consistent, Repetitive Testing Process:
By providing a central repository for all testing assets,
VOntrack facilitates the adoption of a more consistent testing
process, which can be repeated throughout the application
lifecycle or shared across multiple applications.
Provides Analysis and Decision-Support Tools: VOntrack's
integrated monitor and reports help analyze application
readiness at any point in the testing process. Using information
about requirements coverage, planning progress, run schedules
or defect statistics, managers are able to make informed
decisions on whether the application is ready to go live.
The above approach using our powerful tool promotes communication
and facilitates collaboration between teams, while adding
organization and structure to the testing process. The transparency
and collaboration inherent in our process ensures that the
test team and all the project stake holders are in constant
mesh resulting in continuous feedback and satisfaction.