Software Requirements Specification SRS

Software Requirements Specification

Software Requirements Specification (SRS) is a perfect detailed description of the behavior of the system to be developed.That is SRS document is an agreement between the developer and the customer covering the functional and non functional requirements of the software to be developed.
SRS is considered as a contract between the customer and the developer.
This SRS document will be  used for verifying whether all the functional and non functional requirements specified in the SRS are implemented in the product. 
The complete description of the functions to be performed by the software specified in the SRS will assist the potential users to determine if the software specified meets their needs or how the software must be modified to meet their needs. 
The basic issues that the SRS must address include the following.
  • Functionality
  • External interfaces
  • Performance
  • Attributes
  • Design constraints imposed on an implementation
Qualities of  a well prepared SRS
A perfectly prepared SRS document must possess the following qualities. It must be

  • Correct
  • Unambiguous
  • Complete
  • Consistent
  • Ranked for importance and/or stability
  • Verifiable
  • Modifiable
  • Traceable

What is White Box Testing or Glass Box Testing ?

What is White Box Testing  or  (Glass Box Testing) ?

White Box testing is a test case design method that uses the control structure of the procedural design to derive the test case.The test cases are derived using white box testing .

Characteristics of White Box Testing

  • Guarantee that all the independent path with in a module has been checked at least once.
  • Check all the logical decisions on their true and false wise.
  • Execute all the loops at their boundaries.
  • Check all data structures to ensure their validity

In short the white box testing makes a detailed internal check of the program.

  • Basis Path Testing
  • Control Structure Testing

Basis Path Testing

Basis Path Testing is a white box testing technique.This enables to measure the logical complexity of the procedure to find the execution path.

Flow graph notation basis path testing
Cyclomatic Complexity

Cyclomatic Complexity is a software metric to measure the logical complexity of a program.

Cyclomatic Complexity = E – N + 2

Where E is the Number of Edges and N is the Number of Nodes.

Cyclomatic complexity

The above diagram contains 11 edges and 9 Nodes. So the Cyclomatic complexity is given by

C = E - N + 2

   = 11 - 9 + 2

   = 4


Control Structure Testing

Control structure testing is a group of white box testing methods. 

  • Branch Testing
  • Condition Testing
  • Data Flow Testing
  • Loop Testing

Branch testing objective is to execute every possible decision branch at least once. The commonly used branching statements are if, for, while, switch.

Condition testing focuses on testing the  logical decisions in the program code.

Data flow testing selects test paths according to the location of definitions and use of variables.
Loop Testing  is a white Box Testing focuses only on the validity of loop constructs.There exists loop constructs of the following type.Simple Loops, Nested Loops, Concatenated Loops and Unstructured Loops.

Control structure testing branch testing condition testing data flow testing loop testing


RAD model

RAD (Rapid Application Development) Model

Evolutionary Model

Evolutionary Model

Evolutionary model is  also  called  as  incremental  model.In  this kind of  development first  the  core  product  is  developed  and  is  delivered  to  the customer.But  many  of  the  known/unknown  additional  features  are  not delivered. Some  of  these  will be  delivered  to the customer  in  the   subsequent version.In  the  new  version  the existing  product  may  be  modified  and  new functionality  may  also  be  added.