Why is Testing part of the development process?

04 May

“Quality in a service or product is not what you put into it. It is what the client or customer gets out of it.”

~ Peter Drucker


Developing a software product involves stages of analysis, building the architecture, visual design, code writing, testing, debugging and code maintenance.

Software development is the driving force for all technological progress of our world. Quality assurance makes sure that the software is up to standards. Would you feel comfortable boarding a plane that runs software you know for a fact that it was not properly tested?

Testing is a process that is done in stages, focusing on different parts of the software being developed, from the internal logic of the program to the user experience (the way the end user interacts with the software).

We live in an integrated world where software applications are rarely stand alone. Usually, even the simplest application uses integrated third party services, the most common being Google or Facebook logins or the share functionality on Twitter, Facebook, Google or other services. Quality assurances makes sure that all the parts of the application, including the third party integrations, work as expected.

The testing process has specific stages while it is executed to carry out that ensures specification are correctly applied and the quality of product is up to parr. This process represents the software testing life cycle (STLC) and has multiple stages.

  1. Acceptance Testing: Testing conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.

  2. Ad Hoc Testing: A testing phase where the tester tries to 'break' the system by randomly trying the system's functionality. Can include negative testing as well.

  3. A/B testing: is comparing two versions of a web page to see which one performs better. You compare two web pages by showing the two variants (let's call them A and B) to similar visitors at the same time. The one that gives a better conversion rate, wins!

  4. Black Box Testing: Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well the component conforms to the published requirements for the component.

  5. White Box Testing: Testing based on an analysis of internal workings and structure of a piece of software.

  6. Automated Testing: Testing employing software tools which execute tests without manual intervention. The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.

  7. Integration Testing: Testing of combined parts of an application to determine if they function together correctly. Usually performed after unit and functional testing. This type of testing is especially relevant to client/server and distributed systems.

  8. Regression Testing: Retesting a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made.

  9. Stress Testing: Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. Often this is performance testing using a very high level of simulated load.

  10. User Acceptance Testing: A formal product evaluation performed by a customer as a condition of purchase.

  11. Security Testing: Testing which confirms that the program can restrict access to authorized personnel and that the authorized personnel can access the functions available to their security level.


There are many more methodologies that can be applied, based on the scope of the application, to make sure that the product respects specifications and the end user experience is as smooth as possible.

The purpose of testing is to give the client the confidence that the product respects the specifications. Software products are used in critical applications a bug can be potentially  disastrous.


"There's nothing wrong in making mistakes, what's wrong is letting a mistake stay as a mistake, without the effort of making it right."

~ Unknown



Definitions presented in this article are from:


Leave A Comment