System Testing
System Testing
System Testing is a level of testing that validates the complete and fully integrated
software product. The purpose of a system test is to evaluate the end-to-end system
specifications. Usually, the software is only one element of a larger computer-based
system. Ultimately, the software is interfaced with other software/hardware systems.
System Testing is defined as a series of different tests whose sole purpose is to exercise
the full computer-based system.
System Testing is Blackbox
That is a very basic description of what is involved in system testing. You need to build
detailed test cases and test suites that test each aspect of the application as seen from the
outside without looking at the actual source code.
Software Testing Hierarchy
As with almost any software engineering process, software testing has a prescribed
order in which things should be done. The following is a list of software testing
categories arranged in chronological order. These are the steps taken to fully test new
software in preparation for marketing it:
• Unit testing performed on each module or block of code during development.
Unit Testing is normally done by the programmer who writes the code.
• Integration testing done before, during and after integration of a new module into
the main software package. This involves testing of each individual code module.
One piece of software can contain several modules which are often created by
several different programmers. It is crucial to test each module’s effect on the
entire program model.
• System testing done by a professional testing agent on the completed software
product before it is introduced to the market.
• Acceptance testing – beta testing of the product done by the actual end users.
Types of System Testing
There are more than 50 types of System Testing.
Below we have listed types of system testing a large software
development company would typically use
1. Usability Testing – mainly focuses on the user’s ease to use the
application, flexibility in handling controls and ability of the system to
meet its objectives
2. Load Testing – is necessary to know that a software solution will
perform under real-life loads.
3. Regression Testing – involves testing done to make sure none of the
changes made over the course of the development process have
caused new bugs. It also makes sure no old bugs appear from the
addition of new software modules over time.
Types of System Testing (2)
There are over 50 different types of system testing. The specific types used by a tester depend on
several variables. Those variables include:
• Who the tester works for – This is a major factor in determining the types of system testing a tester
will use. Methods used by large companies are different than that used by medium and small
companies.
• Time available for testing – Ultimately, all 50 testing types could be used. Time is often what limits
us to using only the types that are most relevant for the software project.
• Resources available to the tester – Of course some testers will not have the necessary resources to
conduct a testing type. For example, if you are a tester working for a large software development
firm, you are likely to have expensive automated testing software not available to others.
• Software Tester’s Education- There is a certain learning curve for each type of software testing
available. To use some of the software involved, a tester has to learn how to use it.
• Testing Budget – Money becomes a factor not just for smaller companies and individual software
developers but large companies as well.