IT firm that performs different kind of software testing services. Among its services, it provides functional tests, which aim to validate that a software performs what it is expected to.

These tests are usually described in detail in the scenarios. Writing the scenarios very early is highly desirable, as it validates a good functional analysis, while giving the developer material for his own unit tests.

But putting the effort exclusively on these tests is still a common mistake. Therefore, there are other kinds of tests that the company also performs. Platform compatibility tests include at least installation and proper functioning tests on targeted environments (operating system, database, etc.), as well as more in-depth tests detecting potential problems before obtaining a certification for a given platform.

They make it possible to detect compliance with good practices such as using virtual directories, running without administrative rights, uninstalling, locating resources, etc. Developer roles should not be confused with the target runtime environment.

Then, robustness tests aim to test the software under degraded or borderline conditions. They are rarely carried out systematically, although they are not complicated to implement, as they only imply disconnecting a cable or the abrupt shutdown of a machine, for instance. It is important to know how the software reacts in these circumstances and to define the recovery scenario.

Bypassing this kind of tests saves (barely) a little time in the short term, but the long-term financial consequences can often be impossible to assess. It is obvious that sooner or later the user will be confronted with a network failure, so you might as well predict the behavior of the software as soon as possible.

Performance tests are often carried out at the end of the project. Because there are many factors that influence performance, it is risky to jump into conclusions with partial tests, especially with the absence of representative volumes of data. However, developers can perfectly test the behavior of certain unit services early in the cycle, when they present a performance risk.

In addition, experience proves that the results of these tests must above all be precisely documented in order to formalize the conditions under which the measurements were taken, and the conclusions drawn must be analyzed taking into consideration things such as CPU consumption, evolution of the memory use, number of requests per second, input / output flow, etc.

The company also offers load testing, which should be distinguished from performance testing. An application can be powerful but limited in its ability to support a growing number of users (or any other parameter). A software system, especially if it is intended for the Internet, should be designed so that it can scale unlimitedly by simply adding hardware.

Tests must be carried out in this direction, with tools allowing to simulate many simultaneous customers.
Ergonomics tests are rarely carried out because they require the involvement of end users. Yet, they can be a very important factor in real and perceived quality, improving the software ease of use. These tests include both ease of use (the "Feel") and visual appearance (the "Look").
GUI testing is performed at the end of the development cycle and helps detect regressions.

It is worth mentioning that an anomaly cost is very different depending on which phase is detected. Thus, if a design error, detected during the specification phase costs 1 to correct, the same error revealed during qualification tests will cost 10,
and potentially up to 100 if the software is already deployed.
This is why at the company they seek to validate as many points as possible before a major development effort. In addition, anomalies are easier to understand and correct on a limited scope than within a complete application that must have a certain complexity.

In conclusion, at the company they are convinced that testing is a noble profession, which includes many facets, but remains insufficiently recognized and valued, even though it plays a fundamental role in software quality. Fortunately, all developers and IT specialists are lately mobilizing to give testing the place it deserves.

From a human perspective, testing demands ongoing collaboration, and this collaboration between functional experts and developers is the secret to successful software.

Views: 4

Comment

You need to be a member of On Feet Nation to add comments!

Join On Feet Nation

© 2024   Created by PH the vintage.   Powered by

Badges  |  Report an Issue  |  Terms of Service