Monday, October 18, 2010

Testing Concepts - Phases of Development (SDLC)

What is Testing? When & where does testers involve in the whole process of development?

Testing is a verification process where an already developed product will be verified for any defects or faults. Testing is done on a product before its released for use by the customers. Testing is often referred to as "Quality Assurance". Depending on the industry type testing is done in different ways. However I would concentrate only on IT industry, here in this blog.

Tester should have an understanding of what process is followed in the industry & where does QA (Quality Assurance) gets involved in that process. Most industries follow a standard way of development. That standard is called SDLC. It refers to Software Development Life Cycle. You can find many articles on what is SDLC & how it works and so on. I'll try to explain it from a ground level, thinking that the user doesn't have basic understanding of testing process.

In a real world, this is how it works.

1. A shop owner who wants a systemic way of processing transactions in his shop. He knows only the scenarios that he wants to process using a system. Like a customer comes in to a shop, brings in goods, purchases at the till by paying for it using Cash/ CC/ DB/ Account etc

Shop Owner is CLIENT/ CUSTOMER

2. He calls for a tender process for converting these scenarios in to a System. Lets say a Company has been chosen for completing the work

This is Project Initiation - where a budget (estimated), time scale are agreed

3. Business Analysts/ Architects will speak to the customer/ client to get an understanding of all the possible scenarios that would ever occur in the shop. A document is written with all the notes taken from the client.

This is Project Planning

4. This Business requirements document is then used by implementation team to write System (and/or Software) requirements that are low-level requirements, that has information about how does system behave in a scenario given in the business requirements. And also information about how should the programs be written (pseudo programs etc) & how should they communicate to each other, all about integration of different programs/ modules and every little detail about the system

This is Project Design

5. Business, System & Software requirements would become the input for a team of developers, who can write programs to meet the criteria specified in the Design documents

This is called Implementation - as a part of this process developers should also make sure their programs work on their own (by writing unit tests) & work when clubbed together with other programs written by his team members (by writing integration tests)

6. Code is then built in to an exe (or something similar to that) file and given to Q.A. team for further testing & verifying that it works

This is called Verification/ Testing - as a part of this process QA team would test the system in many ways (Ex: End-to-End tests, Functional Tests, Non-Functional Tests, Regression tests, Negative tests, Installation tests, Operational tests etc)

7. If the code is doing what is supposed to do & if QA has certified that by signing off on the developed features of the system, then the system is ready for our shop owner to install & work away

This is called Production/ Release - where the system is handed off to the customer/ client

Below picture gives an understanding of how SDLC is formed from the above scenario.

1 comment:

  1. Thank you so much,This is the best real world example of SDLC,after reading this i understood this whole process,this will surly helpful,read everyone

    ReplyDelete