Introduction

“Software Testing is the design and implementation of a software system that exercises another software system with the intent of finding bugs.” It is mainly about the development of an automated system to implement an application-specific test design. We have described a software testing process for use with any software development project. The purpose of the process is to provide a baseline for software testing activities so as to improve the effectiveness and efficiency of testing for the project. It does so in several ways.

  1. It defines the testing process (satisfies CCM Level 3)
  2. It makes the testing process repeatable (satisfies CCM level 2)
  3. It makes sure that high-risk components of the system are tested
  4. It avoids problems of omission (inadequately testing parts of the system)
  5. It avoid problems of commission (testing parts of the system that are not important, or that result in redundant testing)
  6. It lessens the effects of individual differences (tester background and skill set) on testing
  7. It adds "intelligence" to testing
  8. It provides metrics for managing and controlling testing
  9. It provides metrics for assessing and improving testing
  10. It provides a basis for test automation
  11. It produces specific testing deliverables

The main steps involved in this software testing methodology are:

  1. Assemble the test team
  2. Perform Risk Analysis
  3. Establish Test Objectives
  4. Construct test plans
  5. Design and construct test cases
  6. Execute unit and integration tests
  7. Execute system tests
  8. Analyze and report test results
  9. Execute Regression tests
  10. Analyze and report regression test results

In this paper, we document the Testing Process as a Mini Development Process using the following techniques.

  • Symbolic Notation for Process Documentation
  • Map the graphical process to roles
  • The Process Documentation Template
  • The UML’s Activity Diagram

We have compared the above techniques and mentioned the specific uses of each.

A) Symbolic Notation: (see Page 3-15)

Symbolic Notation for process documentation is a diagrammatic representation of the phases and the duties of roles involved in performing those phases. The advantage of symbolic notation is that it is easier to follow than the equivalent textual description. At a single glance, it gives an overall idea on the phases of the process and the roles involved in these phases. In the first level symbolic notation diagram, there are a number of blocks that have been further expanded in the proceeding pages. They are Assemble Test Team, Perform Risk Analysis, Establish Testing Objectives, Construct Test Plans, Design Test Cases, Execute Unit, Module, Integration, System and Acceptance Testing. The level of detail makes Symbolic Notation one of the most comprehensive methods of documentation.

B) Map Graphical Process to Roles: (see Page 16-20)

This gives a considerable detail of tasks, which have to be performed by each participant in each phase of the process.

C) Process Documentation Template: (see Page 21-24)

This gives an overview on the whole process. It specifies Process Title, Process #, date of creation, author, key definitions in the process, roles and operations performed by participants, when this process can be used, regulations to be followed while implementing the process, a checklist of guidelines for applying the process, forms which identify and document the process findings and collect data for process management.

D) Activity Diagram: (see Page 25)

Activity Diagram focuses on the activities, process that may or may not correspond to method or member functions, and the sequence of the activities. Activity diagrams are more useful while describing behaviors that are parallel. The activity diagram on page 25 shows what part of testing is done in each phase of development of the software product. Although some books like Testing Object-Oriented Systems, Robert V. Binder say that ‘testing’ can only be the result of execution of code, we have considered ‘testing’ to include testing of requirements, design and code, which may not include actual execution of code.

E) Comparison (see Page 26)

We have studied each of the above documentation processes and stated the strengths and weaknesses of each. We have finally concluded by choosing one that we all found to be the best among the 4, based on what we have read and on previous experience.

Comparison of the Different Documentation Techniques

The Symbolic notation gives the correlation between the people and the things they do. It gives the overall control flow of the Software Testing Process. It goes into considerable level of detail since the main blocks are expanded. It specifies the input and the output of each operation, which is unique to this method of documentation.

The document that Maps Processes to Roles gives a detailed list of operations performed by each participant in each phase. The disadvantage of this is that it does not give the sequence of operations and control flow and the interactions between people participating in the same operation.

The Process Documentation Template is specific to the particular project. It gives a brief overview of the entire software testing process – defines each individual activity, specifies the roles of the main people involved and when the process is used. It also gives the regulations to be followed in adopting the model to the project.

The Activity Diagram gives a clear picture of control flow of the whole process. It shows which part of the entire software testing process occurs during each phase of the lifecycle model. The main difference between this and the symbolic notation is that it doesn’t give the roles played by individuals and input and output.

Based on this, we conclude that each of the documentation techniques specifies certain information that is not specified in any of the others. Each has its strengths and weaknesses. There is some overlap between the four techniques, but for a quick overview of the entire system and the roles performed by each participant, we recommend using the Symbolic Notation. It incorporates the best features of the other 3 documents. Its diagrammatic nature makes it easy to understand not only by the person who drew it, but also by anyone who might need to refer to it. It maps the entire process into control flow, at the same time specifying the participants of each step.