How to test software requirements specification (SRS)?

Do you know “Most of the bugs in software are due to incomplete or inaccurate functional requirements?”  The software code, doesn’t matter how well it’s written, can’t do anything if there are ambiguities in requirements.

It’s better to catch the requirement ambiguities and fix them in early development life cycle. Cost of fixing the bug after completion of development or product release is too high.  So it’s important to have requirement analysis and catch these incorrect requirements before design specifications and project implementation phases of SDLC.

How to measure functional software requirement specification (SRS) documents?
Well, we need to define some standard tests to measure the requirements. Once each requirement is passed through these tests you can evaluate and freeze the functional requirements.

Let’s take an example. You are working on a web based application. Requirement is as follows:
“Web application should be able to serve the user queries as early as possible”

How will you freeze the requirement in this case?
What will be your requirement satisfaction criteria? To get the answer, ask this question to stakeholders: How much response time is ok for you?
If they say, we will accept the response if it’s within 2 seconds, then this is your requirement measure. Freeze this requirement and carry the same procedure for next requirement.

We just learned how to measure the requirements and freeze those in design, implementation and testing phases.

Now let’s take other example. I was working on a web based project. Client (stakeholders) specified the project requirements for initial phase of the project development. My manager circulated all the requirements in the team for review. When we started discussion on these requirements, we were just shocked! Everyone was having his or her own conception about the requirements. We found lot of ambiguities in the ‘terms’ specified in requirement documents, which later on sent to client for review/clarification.

Client used many ambiguous terms, which were having many different meanings, making it difficult to analyze the exact meaning. The next version of the requirement doc from client was clear enough to freeze for design phase.

From this example we learned “Requirements should be clear and consistent”

Next criteria for testing the requirements specification is “Discover missing requirements”

Many times project designers don’t get clear idea about specific modules and they simply assume some requirements while design phase. Any requirement should not be based on assumptions. Requirements should be complete, covering each and every aspect of the system under development.

Specifications should state both type of requirements i.e. what system should do and what should not.

Generally I use my own method to uncover the unspecified requirements. When I read the software requirements specification document (SRS), I note down my own understanding of the requirements that are specified, plus other requirements SRS document should supposed to cover. This helps me to ask the questions about unspecified requirements making it clearer.

For checking the requirements completeness, divide requirements in three sections, ‘Must implement’ requirements, requirements those are not specified but are ‘assumed’ and third type is ‘imagination’ type of requirements. Check if all type of requirements are addressed before software design phase.

Check if the requirements are related to the project goal.
Some times stakeholders have their own expertise, which they expect to come in system under development. They don’t think if that requirement is relevant to project in hand. Make sure to identify such requirements. Try to avoid the irrelevant requirements in first phase of the project development cycle. If not possible ask the questions to stakeholders: why you want to implement this specific requirement? This will describe the particular requirement in detail making it easier for designing the system considering the future scope.

But how to decide the requirements are relevant or not?
Simple answer: Set the project goal and ask this question: If not implementing this requirement will cause any problem achieving our specified goal? If not, then this is irrelevant requirement. Ask the stakeholders if they really want to implement these types of requirements.

In short requirements specification (SRS) doc should address following:
Project functionality (What should be done and what should not)
Software, Hardware interfaces and user interface
System Correctness, Security and performance criteria
Implementation issues (risks) if any

Conclusion:
I have covered all aspects of requirement measurement. To be specific about requirements, I will summarize requirement testing in one sentence:
“Requirements should be clear and specific with no uncertainty, requirements should be measurable in terms of specific values, requirements should be testable having some evaluation criteria for each requirement, and requirements should be complete, without any contradictions”

Testing should start at requirement phase to avoid further requirement related bugs. Communicate more and more with your stakeholder to clarify all the requirements before starting project design and implementation.

Do you have any experience testing software requirements?  




Related Posts:

  • White box testing: Need, Skill required and Limitations
  • How can a Web site be tested?
  • Test Engineers and Senior Test Engineers in HealthAsyst
  • Software testing FAQ
  • How to write effective Test cases, procedures and definitions
  • 63 comments ↓

    #1 Shantanu on 07.09.08 at 5:40 pm

    In my company we testers don’t get any specifications for review. We get directly the module to test.
    When we get module we study the module requirement and then start on testing.
    can u tell is this a bad practice?

    #2 Beena on 07.10.08 at 4:55 am

    Hi…..

    #3 shaila on 07.10.08 at 5:21 am

    i also have same question which posted by shantanu. we just study the module and start testing manually.
    is this a bad practice?

    #4 Sunil Yadav on 07.10.08 at 5:35 am

    In our company some time we get the SRS to read and start to test the application.
    they are not giving enough time to review and give the feedback about the requirements.
    We r getting the application for 1-2 days for testing after that got new application to test

    such a bad practice……..

    #5 KAT22 on 07.10.08 at 5:38 am

    Very informative article

    #6 raj on 07.10.08 at 5:43 am

    what do u mean by study the module:

    do you get any release notes document for the module

    or

    do you have any write up which details about the functionality of the received module.

    if no documents are given and just given a component for testing.

    then
    you are suppose to do some explority testing
    if not

    if you know the componet domain, you can have some idea about the given componet for testing

    and do some adhoc , exploratory testing and write a document for what u understand
    and send it to the client
    what ever you find while tesing as an obseravation seeking him clarification whether that observation is correct or not with respect to the given component.

    hope i have answered you

    sweetraj80@yahoo.com

    #7 Jens on 07.10.08 at 6:06 am

    Also in my company we testers are not involved at this early stage. And I must say, it’s a shame since it’s really like that: “Most of the bugs in software are due to incomplete or inaccurate functional requirements?”

    However, which way the company chooses to develop their applications often depends on the complexity of the project and the people involved. Usually there’s a lack of money in smaller projects since no customer wants to pay people to review the specification when everything seems to be simple and clear.
    Reviews belong to the static test and according to my experience, the static testing part is the most neglected part.

    #8 Kavitha on 07.10.08 at 6:08 am

    Hi friends,
    In our company, from the client information, we(includes testers and two developers) will prepare the SRS and give it to the stackholder. This is just to know whether we have observed the exact requirements and to know what are missed out. Then, based on the feed back we will proceed further(design, development, test cases etc…

    Is there any other better way to do…

    #9 Raju on 07.10.08 at 6:16 am

    In our company, our client just tell the requirements verbally to the development team then they will develop according to the requirements.

    After the development developers will explain the changes in functionality then we will prepare test cases accrodingly and starts testing.

    such a bad practice…

    #10 Suhas on 07.10.08 at 6:37 am

    Hi Shantanu, Shaila,

    Many companies follow the same procedure for testing, because there is time bounding and expenses calculation. Some of them even don’t write any SRS, they just get the clone or a Rough idea for the project.. This creates a bad impact on the quality process of Software development..Even in my company it happened the same way before one and half year but I personally started writing the SRS for myself.. Taking out time from browsing other websites… i managed to write SRS of most of the projects… this also helped me to generate more test cases and test the application with maximum number of scenario… I suggest all of the readers who have the same problem to write the SRS them self (or just a functional document)…This practice is very useful like:

    1. Testing the application thoroughly.
    2. Getting complete Project Knowledge
    3. Getting Complete domain knowledge
    4. You can also use these practice for Case Studies.

    Case Studies are assets for your professional life.

    #11 swati on 07.10.08 at 11:57 am

    very nice & easy to understand article

    #12 Jai on 07.11.08 at 9:58 am

    Indeed a good article.
    Can I have answer for my question.
    1) what is the end result of SRS review? is there any defined format where we report.

    Regards
    JAi

    #13 Karthick on 07.11.08 at 3:37 pm

    Hey guys …What i feel is …..Its always better to get the requirement from ur TL or managers for the review purpose ….Its we …who should take the initiative ….We shouldnt be waiting for them to come to us ….And managers like people who take initiatives …..

    Workin on a module without reading the script is like Acting in a movie without knowing the story ….Wat u say guys ….

    #14 Vijay on 07.11.08 at 6:53 pm

    @Shantanu, Shaila, sunil
    Please ask your team leader or manager to provide the SRS document as early as possible to review to test team.
    Review from development and testing team early before design phase can explore potential bugs that could cost lot in later stages to catch and fix.

    @jens, Raju
    You can discuss this issue with your company management if mangers or team leaders are not involving testers in early stages of software development. Make sure to explain the importance of early stage requirement review to your management.
    You can take reference of this article.
    Also don’t rely on verbal requirements. Have everything in written.Don’t keep any communication verbally even with your team members and developers.

    @Jai
    Yes SRS is having some templates. I will make this SRS template available for our readers. This SRS is usually provided by stakeholders. So you can review it and can make your comments inline with the same doc. and submit it to test lead or manager. Which is expected to be reviewed/discussed in team by test/project manger.

    @ Karthick:
    i like this statement “Working on a module without reading the script is like Acting in a movie without knowing the story” it’s a perfect example for SRS review importance.

    #15 test on 07.11.08 at 8:06 pm

    test test test

    #16 Karthick on 07.12.08 at 10:54 am

    Thanx a lot vijay……

    #17 pankaja on 07.12.08 at 11:59 am

    .

    #18 pankaja on 07.12.08 at 12:00 pm

    g

    #19 pankaja on 07.12.08 at 12:01 pm

    o

    #20 pankaja on 07.12.08 at 12:02 pm

    0

    #21 pankaja on 07.12.08 at 12:02 pm

    d

    #22 Swati Deshpande on 07.16.08 at 11:16 am

    Hi,
    Very nice artical. we are facing same problem in our company.Your artical is very helpful for this issue. Now I can show this to my senior.
    I have query, how i analyse or study the requirements since every project is different than other? How I use my testing skills without using same testcases or how I improve my creativity?
    Thank you,

    #23 rickflu on 07.16.08 at 6:57 pm

    hi !!!
    your site is very good !
    i want to know how can i put this code in my blog,
    “continue reading”
    Can you help me with it ?
    I holp answer :)
    hugs

    #24 suresh on 07.17.08 at 4:01 am

    Hi,
    I am working as a test lead in an MNC. The Porject is on web based application for testing.
    Instead of appreciating everybody equally, PM take it on community wise.in ONE-ONE meeting one of my team member elevated this, from now onwards he was threating by PM. Now he started leaving the company.
    could you please suggest me how to react in this situation, as a team lead.

    #25 Inder P Singh on 07.17.08 at 4:54 pm

    Hi

    A couple of comments:
    1) Requirement definition is an iterative process. Whenever there is any effort to refine/ disambiguate/ clarify/ complete the requirements that results in a modification to the requirements specification, the process of requirements testing/ review should be repeated.

    2) The requirements should deal with the “what” aspect and not with the “how” aspect. It is possible that you come across a requirement specification that mentions the “how” part e.g. a particular design, the name of the tool to be used (without proper evaluation of the tool) etc. This should be avoided since it unnecessarily reduces the number and scope of design choices available to you.

    3) It should be understood that sometimes there are statutory requirements that need to be implemented. If this does not happen, there can be unwarranted legal implications. You can take the example of an application that processes credit card information. Legally, such an application has to keep the credit card information secure at all times.

    Regards,
    Inder P Singh

    #26 Ashwin P on 07.17.08 at 6:23 pm

    It is very unlikely that testers will every get documneted requirements (and even if they do, it I bet cannot address more than a small percentage of test conditions, because of the implied reqs, incomplete reqs, related reqs, obscure reqs, obsolete reqs and so on). But hey if you do get one, one thing you could do is to search for ambiguous words in the text (like ‘etc’, ‘all cases’,'good looking’ etc).

    Ashwin
    www.testersdesk.com

    #27 Abhishek Kumar on 07.20.08 at 8:12 am

    How many test cases we can write in a day in a company.

    #28 Abhishek Kumar on 07.20.08 at 8:15 am

    What is the Big Bang Model in the Software Testing. Plz me the all concepts of this model of SDLC.

    #29 Abhishek Kumar on 07.20.08 at 8:18 am

    What is the yellow box testing & the gray box testing in the Software Testing. And what is the defference between them.

    #30 Tiger2K on 07.20.08 at 8:45 am

    Dear Abhishek,
    Gray Box testing is a combination of white box and black box testing.
    Yellow box testing for testing “Warning messages” that should appear as part of the application in software.

    Regards,
    Tiger2K

    #31 dinesh on 07.20.08 at 2:44 pm

    I need the flow of testing from functional to acceptance testing.

    #32 Jai on 07.22.08 at 3:55 pm

    Hello members
    Kindly send template for Integration Test case
    kishoresharma1@gmail.com
    we simply quote unit test caseid or something more
    Please specify

    Thanks

    #33 Jai on 07.22.08 at 3:56 pm

    Please do not define bottom-up and top down approach
    I need template.

    #34 Namrata on 07.23.08 at 9:34 am

    Hi,
    Its a very good and useful article , i appreciate your good work and time that you contribute towards scripting these articles.
    Keep up the good work

    Regards
    Namrata

    #35 Param on 07.24.08 at 6:02 am

    Vry Nice Article

    #36 Venkat on 07.24.08 at 6:41 am

    Excellent Article………

    #37 Sarika on 07.24.08 at 11:14 am

    Hi Vijay,

    i found all info given by you is very helpful.
    I have 3.5 yrs of experience in Software Testing and now I want to do testing certification or any kind of technical sertification. Should I give CSTE/ISTQB or any technical exams?

    #38 Nagendra on 07.24.08 at 7:15 pm

    Its true that most of the testers are not involved while freezing the requirements. This is good. belive it or not, this is the practicle way.

    I am not oppossing to what was said earlied by all of you. I am trying to address the core problem, i.e. Incomplete Req, unclear req etc…

    Validating or Testing a requirement document do need some business knowledge of the product and its domain. And the important is the Client.

    In my view the end tester is not the right person to test the requirements. But it is the Business Analyst and the Management who should be the right people to test the requirements. If these people dont test the requirements and map them to the clients needs, you can’t have a quality product.

    #39 ANKIT on 07.25.08 at 5:01 am

    great article………

    #40 SUMIT on 07.25.08 at 5:03 am

    bahu saras che………..

    #41 shalu on 07.28.08 at 5:13 am

    According to me the requirments sholuld be given by businees analyst so that it’ll be very correct.
    Because the persons who sits in the coding part or in testing side have no deal with the client, so better requirments will be given only by the peolple who r really having analyitcal skill who sits especiallly for collecting requirment………………

    #42 Nagendra on 07.28.08 at 4:56 pm

    The phrase “really having analytical skill” is not the right term I guess. Probably you mean people with business knowledge and process.

    Testers and Developers too have the required domain skills but not to the extent of the client or business analyst or SME.

    #43 Vaneeta on 07.29.08 at 4:39 am

    I have 1.5 yrs of experience in Software Testing (Manual )and now I want to do testing certification or any kind of technical certification. Should I give CSTE/ISTQB/IIST or any technical exams?

    #44 SHYAM on 07.30.08 at 4:32 am

    Hi friends, i am only tester in my org.. my team lead(developer) will prepare only the basic req doc. which is not cleare, we don’t have any other docs like SRS, i am feeling very diff.. to test the application. can any one suggest what should i do

    #45 Qastation on 07.30.08 at 9:25 am

    Hi
    If requirements is established as the identified baseline configuration Item and would been signed off from the client then most of the projects not been resulted as failure.

    I personally feel mostly small and medium sized projects they prepare SRS at the time of delivery and that too prepared by developers, so they prepare it as user manual rather than SRS.

    #46 vaneeta on 07.30.08 at 9:57 am

    Hi suresh,

    Do you have any idea about certification in testing. i have read about international certification in software testing.

    #47 Manikandan on 07.30.08 at 10:12 am

    Finding the holes in the requirement before starting the development is good. generally maual testing will give only 60-70% coverage. but i am using the concept what the article is explained. it gives 100% coverage. so, i request testers to take a small requirement by your own and analyze the holes in the requirement (ambiguious statement). Once you got resolution from the client and you feel the requirement is Unambiguious prepare a test scripts against requirement. once the Development team finish the product. Execute the test script with the product. if the product pass in all test scripts. the Developed software is a Bug free software.

    #48 vijai on 08.03.08 at 3:56 pm

    wanna know the flow of software testing process in a corporate….?

    #49 prasanna on 08.04.08 at 7:07 am

    yes,i do want to know the testing process.. please provide me the details

    #50 Sundar Sharma Machiraju on 08.10.08 at 4:10 am

    Can I have the answer for my question?
    Can anybody tell me one scenario in which we can test the application manually and we can’t do the automation testing.

    #51 Nagendra on 08.10.08 at 5:29 am

    Hey guys, Plz keep this article and discussions to the main topic Testing Requirement Specifications…ask your other questions in relative blogs…..dont mind otherwise

    #52 vinoth on 08.11.08 at 6:19 am

    Hi ,

    I need winrunner free Trial version ,can any one tell me the link to get the trial version.Its very urgent please reply.

    #53 Suhas on 08.11.08 at 6:44 am

    Hi Vinoth,

    you may use utorrent component this may give you winnrunner with crack latest avail is 9.2 winrunner use
    www.torrentz.com to search torrent and utorrent.exe to download

    regards,
    Suhas.
    http://www.adccindia.com

    #54 Kishore on 08.11.08 at 11:29 am

    Hi Vijay
    Can you please define good requirement & bad requirement?

    #55 Tarun on 08.14.08 at 11:23 am

    i want to learn about
    how to go about the software testing ?

    #56 sasidhar on 08.22.08 at 6:28 am

    if explain with examples is good for learners

    #57 chanchal on 09.01.08 at 10:02 am

    Hi guys !

    I am in bangalore searching for jobs in software testing field .my qualification is 10+2+3yrs(Dip in IT). can any one help me to get a job in this field .I am the freshers i have knowledge of both manual as well as automated pl help me .

    Advance Thanks.

    #58 Suhas M on 09.02.08 at 6:51 pm

    @ Sundar Sharma Machiraju

    What do you say about Usability testing?
    There are many, share your thoughts…

    Regards,
    Suhas M.

    #59 Suhas M on 09.02.08 at 6:54 pm

    @ Manikandan,

    Bug Free Software ???
    Nothing like that exixts, if you know - please tell me know, i would love to look at it.

    Regards, Suhas M.

    #60 Babe on 09.16.08 at 10:35 am

    Hi all,
    In the first time i come this page, I like it very much, thanks all.
    My company is out sourcing company, some time, us project has to create SRS document to know more requirement from customer.
    SRS is reviewed by QA group or experts, after modified it is approved by manager and announce for all project member (Tester is one member in this group).
    I agree with Vijay, SRS is importance so all project team have to read before create test plan, test case (to tester) or design (desginer) or coding (dev).
    Finally i want to share my opinion that: SRS is reviewed by experts before used.

    #61 shahnaz on 09.21.08 at 7:41 pm

    NO NEED OF SRS IF U ARE GENIUS

    #62 samvida on 09.30.08 at 7:19 am

    It is a nice write-up. SRS and other specifications like Functional specification and Program specification are necessary for testers.

    #63 Raman on 10.03.08 at 1:48 pm

    Thanks mate! This article is really useful and has been very informative… Keep up the good work!

    Leave a Comment