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.

  1. 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.

  2. 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.
  • It guarantees scalability, concurrent accessibility and satisfactory performance of software under different usage conditions.
  • Specialized testing 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.

  • 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 published.

  • 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 boundaries.

  • 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.