Chapter 4 - What Is System Testing
Chapter 4 - What Is System Testing
White box testing is the testing of the internal workings or code of a software
application. In contrast, black box or System Testing is the opposite. System test
involves the external workings of the software from the user’s perspective.
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.
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:
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.
4. Recovery testing – is done to demonstrate a software solution is reliable,
trustworthy and can successfully recoup from possible crashes.
5. Migration testing- is done to ensure that the software can be moved from
older system infrastructures to current system infrastructures without any
issues.
6. Functional Testing – Also known as functional completeness
testing, Functional Testing involves trying to think of any possible missing
functions. Testers might make a list of additional functionalities that a
product could have to improve it during functional testing.
7. Hardware/Software Testing – IBM refers to Hardware/Software testing as
“HW/SW Testing”. This is when the tester focuses his/her attention on the
interactions between the hardware and software during system testing.
System Testing Tools
1) Eggplant
The average enterprise application has 50 external
dependencies. Eggplant enables robust end-to-end testing for your entire tech
stack.
Features:
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.