Functional and Load Testing: Three Use Cases

Functional and load software testing are two different types of testing; it is usually impossible to confine to using only one of them. As a rule, but there are also exceptions.

It is difficult to find a software development company that does not use load or functional testing and at the same time was successful. However, there are situations where developers refuse one of the tests due to the specifics of the project being implemented.


In this article we will discuss all three possible cases:
- Rejecting functional testing and using load testing only;
- Rejecting load testing and using functional testing only;
- Using both functional and load testing.

Before analysis of cases starts we should say a few words about the tasks and the main features of functional and load testing.


Functional testing

As part of functional testing, the ability of software to solve the tasks from the list of requirements is tested.

Here are some questions functional responds to: 

  • Will the geolocation function in the application work on devices with older versions of the operating system? 
  • Will users be able to log in on the website using his or her social network account?
  • Will users be able to share animated images via the chat? 
  • Will people have problems when trying to pay for a purchase in the online store using an electronic wallet?

Functional testing makes possible to get answers to questions of this kind.

Basic advantage of functional tests lies in that they imitate the real-life use cases of a system. Among the shortcomings is to highlight the increased risk of over-testing, exceeding development budget.


Load testing

Load testing is used to determine app performance and speed of response of the system on external requests.

Here are some questions functional responds to: 
  • Will the geolocation function in the application work on devices with older versions of the operating system? 
  • Will users be able to log in on the website using his or her social network account?
  • Will users be able to share animated images via the chat? 
  • Will people have problems when trying to pay for a purchase in the online store using an electronic wallet?

Load testing helps in the search for answers to such questions.

In some cases, QAs fully concentrate on this type of testing. So, here we come to the first type of cases.


Case 1: Rejecting functional testing and using load testing only


Let’s assume a company has developed a CRM system focusing on small and medium businesses. The product has been very successful, and an international corporation becomes interested to buy licenses for its numerous staff. The functionality of the system fits in completely with requirements of the potential customer; accordingly, no additional functional test automation is foreseen.

However, the product must withstand an increasing load as soon as the projects starts scaling. A failure cannot be allowed as a contract is at stake, its signing will allow the development company to reach a new level. This means that the product owner needs detailed information about system performance which can only be obtained through load testing.


Performed tests  will give the project a green light or indicate the need of certain changes (which is more likely in this example). If the product is subject to revision, more tests can be required - the number of iterations can reach a few dozen as soon as targeted performance will be achieved signaling work completion. 


In the considered example, elimination of functional testing occurs only at a certain stage of the project development. But it is also possible that this functional testing will not be used at all. If the software product is designed to solve short-term tasks and the development team does not intend to develop it in the long term, functional tests can be neglected.


Case 2: Rejecting Load Testing and Using Functional Testing Only


As an example, we take the same development company but suppose that it did not reach an agreement with the international corporation. The company continues to work with small and medium-sized businesses while improving its CRM-system. There is no need for load tests in this case: performance of the system has already been studied to the smallest detail.


But functional testing can be used very actively as long as the development companies keeps enriching its software with new features. Introduction of a new call forwarding scheme, updates of reporting tools, integration of a CRM system with third-party services - any of these steps must be verified with help of test automation services.


If you know in advance that the software product will not be operated in harsh conditions, it is worth abandoning load testing (both automated and manual).


Case 3: Using both functional and load testing


Let’s get back to our software development company. In this case, as in the first, a large client is interested in its CRM system but this time, the client would like to expand the product functionality. In this case, the software development company will need both types of tests.


Conclusion

The desire of many managers to reduce test-related costs to a reasonable minimum is obvious: it is hard if possible to accurately measure the economic effect of each additional testing activity on the product - often, managers have to rely here solely on subjective assessments. This uncertainty does not appeal to many which is often expressed in the hard cuts in the costs of functional and stress tests, up to a complete abandonment of them.


Still, experts strongly recommend not to rush to avoid tests. The consequences of an ill-considered step can be extremely unpleasant.

At the same time, companies should not be afraid to cut off the tests that are simply not needed on a certain stage. If necessary you can return to them at any time. There is almost always room for maneuver and it should be used.





This website was created for free with Own-Free-Website.com. Would you also like to have your own website?
Sign up for free