Skip to main content

When Should Testing Start in the Development Process? – Complete Guide Neeraj Mishra The Crazy Programmer

Typically speaking, developing software is a long series of stages that starts with requirements gathering to development to testing, to final release. Each stage requires the respective members to contribute to the final development of the product in their own capacity. The business analyst’s job is to collect requirements from the client and validate their feasibility with a technical architect. The technical architect studies the whole environment and performs the impact analysis of placing a new solution in it. Based on feasibility, they may recommend changes in the requirements.

After long discussions and to and fro of requirements, the development of the product begins. Then the development team faces its own challenges. They encounter unforeseen events while building the software that may require either updating the design or a change in the requirements themselves. Then the next stage of testing arrives when the product is tested against different criteria. Even this stage may push back the software to any of the previous stages based on the nature of the defects found. 

So, what we understand from all this is that software development is not a linear process. It goes back and forth between many stages that are required to give it a final shape. And hence, the question arises, when should the testing ideally begin? This is what we will explore in detail in the further sections.

When Should Testing Start in the Development Process

Why the Timing of Testing Matters?

Testing is surely needed to develop a product that is reliable and safe. There’s no doubt about it. But what matters most is the timing when the defect is found. This timing has a direct impact on both the vendor and the clients. If the defect is found in production, it immediately breaks customer trust. Your brand reputation falters instantly in the customer’s eyes. 

On the other hand, studies have shown that the later a defect is discovered, the more expensive it is to fix it. It is because a software solution is built on a large set of algorithms and logic. Each has an impact on others in terms of data exchange, dependent logic, and the sequence of its flow. A defect found at one spot can leave all other dependent programs and subroutines to fail as well. It may disrupt the complete flow of the code. A wrong logic in generating a value that is used at multiple places can have cascading effects. Hence, it becomes exponentially costly and laborious to fix the defect later than sooner.

So, the conclusion is, the sooner you discover a bug, the better it is in all terms. And that leads us to the question: what is the ideal timing when the testing should begin? Of course, it makes no sense to start testing until there’s not enough substance generated. On the other hand, it is equally risky to postpone it to be discovered later, when it will create a higher impact on the overall solution.

The Role of Testing in Each Stage of Development

To understand the role of testing in each stage, let’s categorize the stages into three phases of development: requirements gathering and design, code development, and integration and deployment.

Requirement Gathering and Design

In this stage, the testing is applicable to not catch the bugs because there’s no code developed yet. It is mostly about testing the assumptions. Requirements raised by the client must be validated against technical feasibility and alignment with business goals. This kind of testing is at the functional level, where the requirements are tested for their impact on other related processes, both at the business and technical levels. 

For example, a change in the workflow of the process that follows after a customer places an order may impact the downstream events, like updating the database, customer notification process, and product delivery. A business analyst validates the workflow at the functional level while a technical architect checks for the feasibility of developing such a solution. The earlier the assumptions are uncovered, the less impact it has on the process that follows.

Code Development and Unit Testing

This is the stage when testing becomes more tangible. In this stage, a unit of functionality is developed, like a stand-alone program, and it can be tested against its expected outputs. The dependent programs’ data and functional exchange need not be developed yet, as the transaction with them can be simulated through hard-coded values. Unit testing intends to check how a single unit of functionality works independently, and if it generates the expected outcome in both ideal and negative scenarios. For effective unit testing, using an automation framework is wiser. testRigor, as a software testing tool, is one such product that can perform this task through simulated scenarios.

The ideal testing practice in this stage is to create test cases even before the program has been coded. Its responsibility falls on the developer himself, who is expected to not just write the code but also validate its results honestly.

Integration and Deployment

After unit testing, which validates the functionality of each component, the integration process comes into play. In this stage, all the different components that were developed and tested separately are brought together, and their performance is tested in relation to each other. While unit testing was about testing a component individually, integration testing tests their relationship. It validates whether the whole is greater than the sum of its parts or not. 

Once the integration works flawlessly, its usability is checked against customer expectations. This part includes testing the software from a human perspective. All the technical aspects are useful only as long as they can finally meet users’ expectations. This testing can be done on a User Acceptance environment, which is almost a replica of production.

Closing Statement: When Should Testing Begin?

Having understood the various stages of testing, it is justifiable to ask when the ideal time to start testing is. The simple answer to that is as soon as possible. Before you start testing your product, you must cultivate a mindset of quality within your team at all levels. Testing is not just about finding defects, but primarily about developing a critical outlook towards every stage of development. How fool-proof this requirement is, how robust the code is, will it stand against adverse scenarios? These are the questions that do not require a set stage to begin with. These criteria should be validated right from the start till the deployment phase.

So, the final answer is, testing starts right at the moment we start imagining a product. Every requirement must be met with a “What if?” question. Every assumption should be unearthed, and every functionality should be tested against tangible results. Once you cultivate a critical mindset in your team, all your testing endeavours will be its manifestation that will have a deeper impact on the quality of the product.

The post When Should Testing Start in the Development Process? – Complete Guide appeared first on The Crazy Programmer.



from The Crazy Programmer https://ift.tt/XBNQkDp

Comments

Popular posts from this blog

A guide to data integration tools

CData Software is a leader in data access and connectivity solutions. It specializes in the development of data drivers and data access technologies for real-time access to online or on-premise applications, databases and web APIs. The company is focused on bringing data connectivity capabilities natively into tools organizations already use. It also features ETL/ELT solutions, enterprise connectors, and data visualization. Matillion ’s data transformation software empowers customers to extract data from a wide number of sources, load it into their chosen cloud data warehouse (CDW) and transform that data from its siloed source state, into analytics-ready insights – prepared for advanced analytics, machine learning, and artificial intelligence use cases. Only Matillion is purpose-built for Snowflake, Amazon Redshift, Google BigQuery, and Microsoft Azure, enabling businesses to achieve new levels of simplicity, speed, scale, and savings. Trusted by companies of all sizes to meet...

2022: The year of hybrid work

Remote work was once considered a luxury to many, but in 2020, it became a necessity for a large portion of the workforce, as the scary and unknown COVID-19 virus sickened and even took the lives of so many people around the world.  Some workers were able to thrive in a remote setting, while others felt isolated and struggled to keep up a balance between their work and home lives. Last year saw the availability of life-saving vaccines, so companies were able to start having the conversation about what to do next. Should they keep everyone remote? Should they go back to working in the office full time? Or should they do something in between? Enter hybrid work, which offers a mix of the two. A Fall 2021 study conducted by Google revealed that over 75% of survey respondents expect hybrid work to become a standard practice within their organization within the next three years.  Thus, two years after the world abruptly shifted to widespread adoption of remote work, we are dec...

Olive and NTT DATA Join Forces to Accelerate the Global Development and Deployment of AI Solutions

U.S.A., March 14, 2021 — Olive , the automation company creating the Internet of Healthcare, today announced an alliance with NTT DATA , a global digital business and IT services leader. The collaboration will fast track the creation of new healthcare solutions to transform the health experience for humans — both in the traditional healthcare setting and at home. As a member of Olive’s Deploy, Develop and Distribute Partnership Programs , NTT DATA is leveraging Olive’s open platform to innovate, build and distribute solutions to Olive’s customers, which include some of the country’s largest health providers. Olive and NTT DATA will co-develop new Loops — applications that work on Olive’s platform to provide humans real-time intelligence — and new machine learning and robotic process automation (RPA) models. NTT DATA and Olive will devote an early focus to enabling efficiencies in supply chain and IT, with other disciplines to follow. “This is an exciting period of growth at Olive, so...