Thursday, March 18, 2010
Software Testing Demystified part 4
Let me come to the most interesting and the most widely followed type of testing process in the whole world. Perhaps, many of us start within this phase and continue to do the same for much longer periods of time. Hey, don’t get confused! I am talking about the System Testing. Most of the product companies keep the name of their testing team as System Integration Test team or the SIT, but they majorly follow and perform system testing, and little integration testing
Let me not deviate more from the topic under discussion and come back to system testing. System Testing is that phase in the Software Testing life cycle, where the system is tested against completed functionalities. It follows the integration testing phase. What is a System? A system is actually a set of components or modules, integrated together to perform specific functionality or functionalities. System testing is nothing, but testing these functionalities. So we derive system test cases from the Functional Requirement Specifications (FRS) or System Requirement Specifications (SRS).
Even before the development process has started, one can start writing the system test cases. This is because in system testing we test functionalities which are already defined in the Requirements. What I wanted to say is that, we derive System Test Cases from the SRS/FRS. So, the parallel task/process that the Testing Team does while the development team is building the software is, creating the System Test Cases and the Plan.
It is the System Testing phase where the interaction of the environment becomes more important. Here, in order to have the functionality perform completely, the environment and the setup should be fully equipped. End-to-End testing scenarios could be performed in the phase of system testing. Now, if we try to formulate a definition for system testing, we can define it as "the types of testing performed on a system, which is complete from a functional perspective, on the basis of Requirement Specifications". In a normal case, System Testing is normally done with an intension of breaking the system and functionalities. At least that should be the mindset of every system tester, in order to make the system testing phase go well!
While talking about system testing, there are a number of testing processes defined by different institutions around the world. One thing that I have observed is that people usually get confused and take these as parallel processes. But technically, all these normal testing processes or types of functional tests that we perform come under System Testing itself. They are named differently on the perspective in which they are performed! I shall try to list down some of the types which I can recollect.
- Sanity Testing
- Smoke Testing
- Regression Testing
- Exploratory Testing
- Adhoc Testing
I have omitted the non-functional testing phases like performance, load, stress etc. because I already mentioned that I will cover that in a different module. All these different testing mechanisms that we normally perform in our testing day-to-day lives are just those parts, which make up the System Testing.
Labels: Software Testing Demystified, System Testing
Subscribe to Posts [Atom]

Post a Comment