System Testing: Complicated Process in Simple Words
System testing is one of the stages of the whole software system testing lifecycle (STLC), which comprises three others: unit testing, integration testing, and acceptance testing. Each of these stages has their objectives and technical features. This article dedicated to one of the most volumetric phases.
So system testing is a software testing which executing on an accomplished integrated system with a purpose to find out if the structure, functional, data and other issues comply with initial stakeholders’ requirements. The main goal of executing this fraction is to checkup functional, as well as non-functional requirements in the system on the whole. Herewith testers detecting such defects as the wrong usage of system resources, unexpected combinations at the user level, incompatibility with an environment, unintended scenarios, absence of functionality or its’ incorrect performance and ect.
Let’s have a simple example for a better understanding of how does this testing phase is executing. Imagine you are an electric guitar manufacturer. Electric guitar consists of many details such as fretboard, tunes, body, volume/tone controls, electronic fillings etc. Let’s say you completed chips and boards installation into the guitar body. Each of them has exact functions and resemble, in our case, separate units. But altogether, this units shape an integration system. In order to make sure they work properly you run a test-drive. So, actually, this verification procedure of integration system calls system testing. It shall be carried out on a systematic basis during the construction process to avoid unexpected surprise on the final chord. There is a big chance that off-color element in the very beginning stage of the whole product development lifecycle can roll back entire project.
Within system testing stage the following types of tests should be executed:
- Smoke testing;
- Sanity testing;
- Retesting;
- Compatibility testing;
- Performance testing;
- Load testing;
- Stress testing;
- Volume testing;
- Usability testing;
- Security testing.
It’s quite easy to guess what for most of these tests are, but if you aren’t familiar with some, there are a lot of proper explanations on the internet.
As we clarified, it is one of the stages in the whole STLC. It can’t be executed whenever you want. This phase requires the availability of integrated blocks which in turn requires units. The process goes like this: initially, the engineer is testing unit of the code, one by one. Once they are verified, they gathered together for the further testing to see how they are functioning simultaneously with each other. This merge forms blocks which shaping an integration system. And only after successful integration testing, system one is coming on the scene.
Engineers are the key people in the testing process. This specialty requires a technical background and good logic thinking. These mavens follow certain algorithm to deliver a bug-free product as a result. General actions map of Quality Assurance engineers is a test plan. The test plan is a document describing the whole scope of work concerning testing. It includes a depiction of the object, strategy, assignments, input and output criteria, necessary technical equipment, adhoc knowledge (competence/background), risk assessment and options of its’ resolving. The plan gives answers to the following questions:
- What to test?
- What you will be testing?
- How you will be testing?
- When you will be testing?
As we can see this testing stage requires quite solid qualifications from engineers. However, nowadays there are enough certificate courses where anyone can at least try to learn this craft. Maybe you are one of them?