Introduction:
In current
scenario maintaining a full fledge QA standard process is must for a product
based environment. If a given QA standard is followed in a proper way, it will
always leads to a well defined user oriented quality product. Maintaining a QAStandard Process in a Product Development Scenario is very crucial and
important. A software process provides a framework for managing activities that
can very easily get out of control. Only a good software process can leads to a
good high quality software products. The best indicators of how well a software
process has worked are the quality, timeliness, and long-term viability of the
resulting software product.
The Two
Principles included in QA are: "Fit for
purpose", the product should be apt for the intended purpose; and
"Right first time", mistakes should be eliminated as and when it
occurs.
Processes for Maintaining QA Standards:
1
Waterfall
Model:Designing a base system,
Implementing to a system, Verification and Maintenance, just look like flowing steadily downward.
Initially, requirement review and Test Planning for a given product is done. Then
Test Cases Designing is done using Test Cases review is performed. In this
continuation all test execution functional, Usability, cross browser, Security
testing is done to Log all bugs in each cycle. This is continued by the
resolution of bugs accessed through a proper regression testing.
2
-
Agile Test Framework: In agile framework the process is
performed in a very close vicinity of both Developers and Testers. In fact QA
plays an extensively vital role in development phase only. The development is
done in a break up released cycle followed by a software testing process.
Development is performed in smaller chunks before the release is done. The entire team takes the responsibility for
maintaining the quality. The process involves just the right amount of
documentation. The response must be very fast and quick. Offshore QA team always
plays a very vital role in agile framework. Analysis of requirement and discuss
on any queries related to any business flow and scope through mails/scrum call
is done.
3
-
Rapid
Action Model: This model promotes
strong collaborative atmosphere and dynamic gathering of requirements. It uses
minimal planning in favor of rapid prototyping. The "planning" of
software developed using RAD is interleaved with writing the software itself.
The lack of extensive pre-planning generally allows software to be written much
faster, and makes it easier to change requirements. Business owner actively
participates in prototyping, writing test cases and performing unit testing.
4- V-Model: This
Model was initially involved from waterfall Model. Every single phase must be completed before
the next phase is started. This is not a
linear process like waterfall, the process steps is bent upwards after the
coding phase that gives a typical V shape.
Testing is emphasized in this model more than in the waterfall
model. It is a structured approach to
testing. Brings high quality into the
development of the products. Majorly this model initiates from Unit testing
to Integration, system and acceptance testing. V Model restricts the fault
multiplication that avoids the downward flow of defect. Automatically quality and
reliability is improved and amount of Re-work is reduced. Validation and Verification at each level of
stage containment that allows testers to be active in the project early in the
project’s life cycle.
- Unit Testing: The most minimal level of Testing. A
unit is equal to smallest software component that can be tested. It
involved the Objects, methods and Procedures performed by Programmer. A
tester can always help to ensure that the component is working according
to the detailed design to build the specifications of a module. It is also
called as component, module, or program testing.
- Integration Testing: Testing of more than one unit together
to see if the function runs correctly. This focuses on interfaces or
Communication between several units and is done using the integration test
design prepared during the architectural design phase. It helps to
assemble to increment a whole system just to ensure the correct ‘flow’ of
data from the first to the last component. It is done by both developers
and testers in collaboration. This is also known as Interface Testing or
Assembly Testing.
- System testing: This is also known as the system as a
whole or a Black-box type testing which is based on overall requirements
specifications and covers all combined parts of a system. It ensures that
the system must meet all functional as well as business requirements. It focuses
and verifies the specifications. It validates the system that can be used in
the intended purpose. The system test design is derived from the system
design documents and is used in this particular phase. It may involve a number of specialized
types to check performance, stress, documentation etc. Sometimes testing
is automated using appropriate testing tools. It is done by an Independent
testing group.
- Acceptance testing: It is used to determine whether the
given system satisfies its acceptance criteria with business requirements
or not. This is similar to system testing in which the whole system is
checked, but then too important difference is the change in focus. It is always
done by the real business users. It enables the customer to determine
whether to accept the system or not. It is also called as Beta Testing,
Application Testing or End User Testing. Customer should be able to
perform any test based on their business processes.
Business Users
Involvement:
All test cases must be approved from the Business Team. Test
Plans must also be shared and approved from the Business Team. Bugs must be
assigned to the business users who are directly related to the requirements or
changes for closure. A thread may be opened to the business user for any
requirement clarification which is not cleared by the Test Team. Testers can
provide a weekly status to a Business Team to make sure that the requirements
are being met and all pending issues can be discussed. Release notes must be
Business Users centric. Before signing off every build approval should be from
the Business Team. One common test environment should be arranged where test
and Business team can test and build together on the same database. Any Change
Requested must be converted to use test cases is approved from business team.
Bug Regression will be the main concerned throughout all given
testing phases. All
bugs that are resolved as “Fixed, Needs Re-Testing” will be regressed when
testing team is notified of the new drop containing the fixes. The Test Lead
will be responsible for tracking and reporting to development and product
management the status of regression testing. Testing will be suspended on the
affected software module when various levels of test case bugs are discovered. Testing
will always be suspended if there is critical scope change that impacts the
Critical Path. A bug report should be filed by Development team. After fixing
the bug, Development team will follow the drop criteria to provide its latest
drop for additional Testing. Adopters
will always regress the bug and when it passes continue testing the module.
Conclusion:
There is always a question arises what to review in a proper
assigned manner to assure a given QA standard process is followed. There are
many tools and techniques that are available to use. A proper bug free testing
always requires a proper tester's creativity, experience and intuition,
together with proper techniques. Testing is more than just debugging. Testing
is not only used to locate defects and correct them. It is also used in
validation, verification process, and reliability measurement. A good tester
must always conduct a proper gap analysis to evaluate the project results and
match the original objectives. He must review all delivered documents and
ensure either that these have been delivered to an acceptable level of quality,
or that an acceptable substitute is in place. If still gap is there, the given
project goal must be achieved where error rates must be minimal. The necessary
controls and systems in place must works properly. A proper established QA
standard process not only assures a bug free well established software product
within budget.