Google
Webwww.sanchivi.com
Team Test Development

Functional Requirements

This section outlines the functional requirements of the application. The idea is to define test cases in a structured and simple language that can be transformed by the application into source code which can then be compiled and packaged into distributables.

Definition of Test Cases

This is one of the core capabilities of this application. The ability to allow definition of test cases in an easy format with good presentation across an entire project team is very critical to the success of this application.

  1. Should allow project team (Developers, QA team, customers, PM anyone) to specify test cases in a human readable form.

  2. Allow team to view and modify test cases written by others on the team.

  3. Be able to collect and maintain all the “human readable” test cases. Further allow automatic generation of machine readable test cases easily - a test case repository so to speak

  4. Be able to baseline and version control test cases.

  5. Be able to group test cases arbitrarily - for example by person who wrote it, feature/module, or a baseline for viewing and generation of actual test code.

  6. Test cases are typically executed after a specific precondition is established - To make matters easy (and to mirror real life) These preconditions themselves must be established by a series of test cases. Thus the ability to execute a group of test cases in a particular sequence is required

    Example 1. Test Case Sequencing

    An user is allowed to do a particular task in the tested application only after she/he logs into the application. What this means is that the user will have to log into the application then perform the particular test. The act of logging in (the pre-condition) would already be modeled as a test case. Thus the actual test case should be executed after the login test case.
  7. This being a test case development tool, should be able to track where the action is i.e. where is the heavy development activity happening - possibly by functionality / feature

  8. Have the ability to support a workflow for review and approval of test cases - This should be an optional feature that can be enabled when a project is setup in the system.

  9. Be able to help new members on how to write new test cases, how to submit them for review etc., i.e. explain the mechanics of test case writing as well as the process of test case development for a given project.

Generation of Test Code

These set of requirements relate to generation of actual code in the appropriate framework to test the application. Currently due to my limited knowledge in the area, I think jWebUnit and HttpUnit are two frameworks that can be considered to be used for web testing. This application will generate code to utilize JWebUnit and HttpUnit.

Management of Test Cases

This section will elaborate requirements related to storage and management of the defined test cases. It will define the concepts of baselines and grouping of test cases. These concepts will then be used in the other requirement areas as nouns.

  1. Have the ability to build, package and provide a complete set of test cases in packaged JAR format. The aim here is to ease the deployment requirements of the project team

  2. Should have the ability to baseline test cases with symbolic names. A group of baselined test cases can be used to generate test code, packaged and then used for testing the application

Reporting on Test Cases

This section focuses on the ability to generate various forms of reports on the test cases defined for a project. These reports would be in the form of size reports, progress reports, usage reports etc.,

Understanding projects and teams

This section focuses on the requirements related to defining and managing projects and users in the project. Also requirements related to access control and roles are elaborated here.

  1. The ability to create projects by the application administrator and assign a PM to the project.

  2. The ability to define new modules/features within projects by a project manager.

  3. Ability to create team members, ability to assign team members to a project at various roles. All these capabilities should be available to the project manager.

  4. The ability to define the workflow for a project based on available roles in the system and the activity to be performed by each role.

    Example 2. A sample Workflow

    Creation of test cases is allowed for users with the team member role. Once created, test cases must be reviewed and approved by a person with quality assurance role. Approved test cases can then be baselined as part of the feature/module. Unapproved test cases must be returned back to the test case creator for revision / changes with comments