Updated: Aug 26, 2021
The Paradox of Testing
What if we get to know what are the testing areas we can focus on most, to get 100% testing coverage, and with the least effort? Or how can we test our application end-to-end with the least efforts, in the quickest way, and yet ensuring 100% coverage? Is it possible to prepare a test plan to support these factors?
Yes, it is, and it's pretty simple. The answer is the Test pyramid. Below we shall cover a framework to implement the Test Pyramid.
Implementing the test pyramid is the answer to these questions. For that, rather than defining the Test pyramid directly, let us try to understand it by -
Understanding the concept behind Test Pyramid,
Learn how to implement it in manual and automation testing.
Lets first understand the concept behind the Test pyramid, which is the three-tier tech stack of the application's architectural design.
The three-tier tech stack of AUT (application under test)
Application development is designed to be segregated into tiers of the tech stack. This is done to develop the application in an engineered way. It ensures that each tier has a specific function to perform, hence segregation of responsibilities is achieved. This provides multiple benefits like independent development, modularisation, loosely coupled design, and microservice architecture. It helps the development team to make changes easily to the software without worrying about affecting another tech tier.
In general, all applications can be divided into below three-tiered tech stacks.
Back-end tier - This is where data of the application is stored in databases.
Middle tier -This tier performs operations like read, write, delete, modify the database and expose the data to the front-end.
Front-end tier- This tier is where the end-user interacts with the system. User’s operations are performed on the front-end and the middle tier carries these operations to perform them on the back-end tier.
As these tiers have their own set of responsibilities, they use different technologies to accomplish them. For example, the back-end tier will need PL SQL and skills on database-related technologies, the middle tier will need skills in programming languages (like java or python) and APIs, and the front-end tier will need skills in designing, HTML, CSS, etc. Hence the skill set required in development at each tech tier is different and often different sets of team members work at each tier. Developers who are skilled at all three tiers are called full-stack developers.
Testing Layers - How we can use tech tiers to plan manual and automation testing?
We all agree that if we understand the functionality and tech stack of the application under test (AUT) better, the testing produces better results. Now that you have understood how software design and development work by dividing development into three tech tiers, let's use this information to understand how we can use this tech stack to draft a test plan using the test pyramid for manual and automation testing.