Friday, May 20, 2011

The Workbench

In order to understand testing methodology we need to understand the workbench concept. A Workbench is a  way of documenting how a specific activity has to be performed. A workbench is referred to as phases, steps,  and tasks as shown in the following figure.
Workbench with phases and steps
There are five tasks for every workbench:
Input: Every task needs some defined input and entrance criteria. So for every workbench we need defined  inputs. Input forms the first steps of the workbench.
Execute: This is the main task of the workbench which will transform the input into the expected output.  
Check: Check steps assure that the output after execution meets the desired result. 
Production output: If the check is right the production output forms the exit criteria of the workbench. 
Rework: During the check step if the output is not as desired then we need to again start from the execute  step. 

The following figure shows all the steps required for a workbench.

Phases in a workbench

In real scenarios projects are not made of one workbench but of many connected workbenches. A  workbench gives you a way to perform any kind of task with proper testing. You can visualize every software  phase as a workbench with execute and check steps. The most important point to note is we  visualize any task as a workbench by default we have the check part in the task.

Every software phase can be visualized as a workbench. Let’s discuss the workbench concept in detail:
Requirement phase workbench: The input is the customer’s requirements. we execute the task of writing a  requirement document, we check if the requirement document addresses all the customer needs, and the  output is the requirement document. 
Design phase workbench: The input is the requirement document, we execute the task of preparing a  technical document; review/check is done to see if the design document is technically correct and addresses  all the requirements mentioned in the requirement document, and the output is the technical document. 
Execution phase workbench: This is the actual execution of the project. The input is the technical  document; the execution is nothing but implementation/coding according to the technical document, and the  output of this phase is the implementation/source code. 
Testing phase workbench: This is the testing phase of the project. The input is the source code which needs to be tested; the execution is executing the test case and the output is the test results. Deployment phase workbench: This is the deployment phase. There are two inputs for this phase: one is the source code which  needs to be deployed and that is dependent on the test results. The output of this project is that the customer gets the product which he can now start using. 
Maintenance phase workbench: The input to this phase is the deployment results, execution is  implementing change requests from the end customer, the check part is nothing but running regression testing  after every change request implementation, and the output is a new release after every change request execution.

2 comments:

Manu said...

Hi Pranik
Excellent stuff. :-) . Try following this http://en.wikipedia.org/wiki/Agile_testing.

Pranik Garg said...

Hi Manu,

Thanks...!!!