top of page

What is Software Testing?


ISTQB definition:

Software testing - is the process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation, and evaluation of software products and related work products to determine that they satisfy specified requirements, demonstrate that they are fit for purpose, and detect defects.


Human language:

As you can see, testing is more than running tests, besides the test execution activities, it also includes test planning, analyzing, designing and implementing tests, reporting test progress, and is the process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation, and evaluation of software products and related work products to determine that they satisfy specified requirements, demonstrates that they are fit for purpose, and detect defects results, and reporting defects.

Notice that there are major test activities both before and after test execution. In addition, it is important to understand that testing is more than checking the system for compliance with the requirements and specifications, we also need to test to see if the delivered software and system will meet user and stakeholder needs and expectations in its operational environment.

There are lots of things that need to be figured out in order to be familiar with testing in the best way, for this reason, we recommend reading additional articles on topics such as:

  • What is the difference between static and dynamic test design?

  • What static test design techniques do you know?

  • What types of dynamic test design do you know?

  • What is STLC? What stages of STLC do you know?

Speaking human language software testing - is the process to evaluate, controlling, and improve the quality of software products. A test process consists of a sequence of groups of activities performed by the testing team, each of them providing a step-by-step process to ensure quality software.

There are activities such as:

  • Test planning;

  • Test monitoring;

  • Test control;

  • Test analysis;

  • Test design;

  • Test implementation;

  • Test execution.

The simplest process of software testing for the manual QA Engineer generally follows the next steps: Requirement Analysis >> Test Cases Creation >> Run Test Cases >> In case of detecting a failure - Log a Bug.

Requirement Analysis:

In the process of the Test Analysis, we analyze the test requirements to identify testable features and define associated test conditions. One of the most beneficial side effects of identifying what to test in test analysis is that you will find defects; for example, inconsistencies in requirements, contradictory statements between different documents, and missing requirements.

Test Cases Creation:

In the process of the Test Design, we write test cases. Instead of trying to find every possible test case, an impossible ideal, we should focus on what tests give us the greatest value by covering the most important parts of the system.

Run Test Cases and Log a Bug:

In the process of the Test Execution, we run test cases, In case of detecting a failure, we log a bug. When testing finds defects and those defects are repaired, the quality of the system is increased. As a result of these activities, we make confirmation that the software product meets specified requirements and meets the needs and expectations of the end users or/and customers.

Life example:

Nowadays, it is hard to imagine life without a phone, the Internet, and modern technologies, people will increasingly use software and hardware in their daily routine, so software testing may have an impact on everyone's life.


Let's take a look at these two life examples:

1. Example of developing software without a tester - user finds a bug and destroys his computer Preconditions:

  • The development team built a website for the online store with the requirement: The user must be able to buy the product;

  • Developers have tested the website by themselves without involving the QA Engineer;

  • The development team verified the billing process with registered on the website user.

The user decides to buy a phone on this online store, and for that reason, he opens the corresponding website and adds the desired product to the cart. After that, he navigates to the basket and places the order, after entering the personal information, the user has to make a payment, for this reason, he adds credit card details and makes the payment.

Instead of seeing a notification about successful payment, the website shows a notification that due to an unknown reason, the payment was incorrect, but the money was withdrawn from the card.

In such a case, the user has to spend a lot of time and nerves before solving this problem, and with a high probability, he has never returned to shopping on this site.


2. Example of developing software with a tester - user happy

Preconditions:

  • The development team built a website for the online store with the requirement: The user must be able to buy the product;

  • A QA Engineer was involved in the testing, during the testing process.

In the beginning, the QA Engineer Analysis of requirements, in our example, the requirement is: The user must be able to buy the product. Based on this requirement, he writes test cases and notices that users might try to make a purchase being registered and signed In on the website or try to buy something without registration, for this reason, the QA Engineer creates a corresponding to that scenario's test case and run It. The test case fails and the QA Engineer logs a bug. Then the development team fixes the issue.

Consequently, the user decides to buy a phone on this online store, and for that reason, he opens the corresponding website and adds the desired product to the cart. After that, he navigates to the basket and places the order, after entering the personal information, the user has to make a payment, for this reason, he adds credit card details and makes the payment.

Notification with the successful status of the purchase appears the user is happy, leave a positive comment, and recommend this site to your friends.

Conclusion:

So, if you are asked at an interview What software testing is? The best way to answer is:

Software Testing - is the process to evaluate, controlling, and improve the quality of software products and related work products to determine that they satisfy specified requirements, and demonstrate that they are fit for purpose. Also, testing is not only about checking correctness; that is, that the system corresponds to its requirements, user stories, or other specifications, we also need to test to see if the software and system will meet user and stakeholder needs.


2,421 views

Recent Posts

See All
bottom of page