blockquoteComing together is a beginning... and working together is success.endquote

Henry Ford

Testing and  quality 

Vizualize has a dedicated Test and Quality team responsible for maintaining the quality of the released software. In order to achieve this goal, a process is put in place which is followed during the course of the entire life-cycle of the project.

Key responsibilities of this team are:
  1. Prepare of a Test Plan and Quality Plan.
  2. Prepare Test Cases for the functions to be tested in the Test Plan.
  3. Define a list of automated tools that will be required to test this project or use the tools suggested by the client.
  4. Execution of Test Plans of the modules to be tested
  5. Log the results in defect tracking system
  6. Interact with the development team through the Defect Tracking Tool to analyze the defects.
  7. Generation of weekly defect reports for internal review with the Project Manager

Besides the testing team, each developer has to prepare unit test plan for the modules that they are developing. This module has to be tested against this test plan before releasing it to the test team.

Testing Process

At Vizualize we have defined the following testing process:

  1. At the end of Requirement Analysis phase, the Project Manager and QA Manager go through the requirements and prepare a Test Plan. A typical test plan would consist of some or all of the following items:
    • Test Cases - This is the key element of a test plan. It defines the inputs to the unit under test and the expected outputs. If the actual output does not match with the expected output, then the defect is reported and logged.
    • Testing Scope - This defines the limit of a specific test depending on the entity to be tested, criticality of the entity and the availability of resources.
    • Testing Approach - There are different testing approaches to test a software. The approach is determined by the type of software to be tested and at what level. For e.g. different approaches are required to test a method and an object containing that method.
    • Features and Functions to be tested - This is a list of functionality that has to be tested.
    • Environment Requirements - This identifies the environment requirements under which a test is to be performed.
    • Test Tools - The types of tools required to perform this test. In some cases, automated tools are required.
    • Defect logging and Tracking - A tool by which the results are logged and tracked.
    • Test Team - This identifies the team to test a piece of software.
    • Test Deliverables and Schedule - A detail deliverables are defined and the schedule against each deliverable.
  2. Get the following from the client
    • Acceptance Test Plan - This defines the complete functionality of the project.
    • Load/Performance Criteria - This document defines how the system should behave under the specified load.
  3. During the development, each developer is responsible for the following:
    • Develop Unit Test Plan in consultation with the test team assigned to the project
    • Execute Unit Test
    • Release the module for integration only after it has passed the unit test
  4. The test team will test the project and enter the defects in the Defect Tracking System
  5. The Project Manager will assign the defects to individual developers
  6. Developers will fix the defects and changed the status to fixed
  7. The test team will verify the fix and either close or fixed based on whether the defect is fixed or not. Steps 3 – 7 will continue till all the defects are fixed. Depending on the types and numbers of defects fixed, the test team will go through regression testing and close the defects.
  8. Once the development is complete, the project goes through System Testing
  9. In System Testing, the test team tests the project for performance and stress testing and if the project does not meet the criteria, the development team will improve the performance.
  10. Once the project meets client’s performance criteria, the project is tested against the Acceptance Test Plan
  11. After Acceptance Testing, the project is released to the client.

As part of our testing process defined above, we use the following test plans, defect tracking tool and automated testing tools.

Test Plan

Unit Test Plan

Unit Test Plan is for testing a method, which is the smallest entity in a software development cycle. It could be method, object or module. JUnit tool is used to automating unit testing.

System Level Test Plan (Integration Test Plan)

As Systems are built by integrating modules, the test plans are designed to test the integration of the modules. Test cases are designed to verify that each module communicated with other modules connected to each other. Again the components within the system should be designed for testability so that internal nodes connecting different modules are observable from the outside.

Functional Test Plan

This plan tests the complete functionality of the project. This is also known as customer test plan or acceptance test plan.

GUI Test Plan

GUI Test Plan tests the following:

  1. GUI Verification
  2. Field Level Validation
  3. Form Level Validation
  4. Consistent look and feel of the GUI
Load/Stress Test Plan

This testing involves loading the system with large amount of data and large number of users using the system either concurrently or sequentially.

In case of Web based project, this would involve the following:

  • Number of concurrent users accessing a web site
  • Number of users able to access the web site
  • Peak and Average number of hits to the web site
Performance Test Plan

Performance testing is the response time under different load conditions. Specific to Web based project; this involves determining the response time of a web page.

Browser Testing

Website will be testing in the default settings on the following browsers:

  • Internet Explorer v. 6.0 and higher for PC
  • Netscape v. 8.1 and higher for PC and Mac
  • The latest version of Firefox
  • The latest version of Safari for Mac.

Additional browsers/setting support are available at $50/hour.

Automated Testing Tools

Vizualize Test team works in two modes

  1. Manual testing
  2. Automated testing-Regression testing.
    At Vizualize, the Quality Department is equipped with good expertise in both the manual and automated tools. We use the Online Bug tracking tool that communicates between the Developers and the Test Team allowing for easier tracking of old bugs and locating which version they have occurred within.
    • Functional Automated Testing Tool
      i. Mercury WinRunner
      ii. Mercury Quick Test professional
      iii. Advent Engine
    • Load, Stress and Performance Automated Testing Tool
      i. Mercury Load runner
      ii. Silk Performer
    • Defect Tracking Tool
      i. Test Track-Pro from Seapine
    • Profilers
      i. Automated QA time
    • Accessibility Tools
      i. Web accessibility Tool
      ii. Accessibility Tool Bar