Software Tester vs. Testing Culture: Which is Best for Your Company?
- Cloud & Infrastructure
- article
The cornerstone of software development is code quality, guiding the entire process with considerations for security, performance, and system speed. To ensure quality deliveries, software testing is essential. Given this premise, it’s crucial to understand the best approach for your company: hiring a software tester on a project basis or implementing a software testing culture.
In this article, Objective’s agility expert, Wagner Fusca, provides a didactic explanation of the differences between conducting isolated software tests and instilling a testing culture within your company.
Before delving into the disparities between a software tester and a testing culture, it’s worthwhile to explain the central concept of this article:
Software testing is a process where a system undergoes evaluation to verify compliance with specified requirements and proper functioning. It entails executing test cases to identify errors, bugs, or flaws, while also assessing the software’s quality, usability, and performance.
A simple analogy illustrating software testing is envisioning codes as layers of an onion. Initially testing smaller codes, gradually progressing to more complex ones as the testing culture’s robustness and professionals’ knowledge advance.
Software testing is vital to ensure the reliability and quality of the final product before market release. During high-demand events like Black Friday, numerous tests are conducted to ensure the system’s flawless operation.
Implementing Testing Culture vs. Opting for One-Time Services
A testing culture differs from a one-time project; culture is not fleeting but a continuous practice. If you hire someone solely for testing and then let them go, you are not nurturing a culture. This makes your software development prone to failures at the first hurdle or under delivery pressure. In such cases, quality can easily be overlooked.
On the contrary, when testing is ingrained in the company’s culture, it is not neglected. A parallel can be drawn with someone who exercises regularly. It’s natural for that person to allocate time and space for the activity, and as it becomes a habit, the required effort decreases. In the realm of software testing automation, this is a common occurrence.
Every software development process will inevitably encounter bugs. The distinction between a software tester and a testing culture lies in where you find these bugs. Identifying flaws at the project’s inception, before product launch, leads to significantly lower costs and risks.
Examples of Challenges Without an Established Testing Culture
Numerous companies have faced immeasurable losses due to the failure to identify errors, exemplified by the Boeing 737 Max incident. A software error in the Maneuvering Characteristics Augmentation System (MCAS) activated incorrectly in response to incorrect sensor data. This bug caused the system to erroneously push the aircraft’s nose downward, leading to an uncontrolled descent.
The 737 Max accidents occurred in October 2018 (Lion Air, Indonesia) and March 2019 (Ethiopian Airlines, Ethiopia). These tragedies resulted in the loss of hundreds of lives and led to a temporary worldwide ban on 737 Max flights.
Car recalls provide another example of financial loss. Failing to detect errors internally not only generates direct financial losses but also has profound implications for a company’s reputation, consumer trust, and market competitiveness. Therefore, automotive companies have a strong incentive to invest in robust quality testing and problem prevention practices to avoid issues that could lead to recalls.
Why Developer Involvement in Software Testing is Important
The practice of conducting tests should be integral to a developer’s daily routine. This is because the absence of testing challenges professional ethics, risking consumer data, financial operations, and even potential accidents, as we will explore later.
It’s crucial to highlight that software testing is not solely tied to seniority but rather to commitment—an intrinsic value that Objective recognizes and holds as a benchmark in the market.
In an ideal scenario, developers are expected to automate tests. If the emphasis remains exclusively on manual testing in the long run, it can evolve into a problem, underscoring the importance of automated testing for sustained efficiency.
Optimizing Software Testing for Increased Productivity and Efficient Error Reduction
The paramount focus for project leaders is adopting the 80/20 parameter, identifying the vital part of the software. Once identified, automation for this module is imperative. If the software isn’t compartmentalized into modules, creating versions using other services and techniques is worthwhile.
Initial automations should target bugs, automating validation to prevent their recurrence, intercepting issues before they reach the client, thereby saving rework time. Additionally, automate software building by incorporating DevOps principles.
With each automated construction, comprehensive testing becomes feasible, ensuring a thoroughly tested and error-free output, especially at the unit test level. This approach provides tranquility and efficacy in the development process.
The Importance of Collaboration in a Testing Culture
This is a crucial point; there exists a competition between testers and developers, where testers might believe their job is to find developers’ errors. However, it’s essential to recognize that the error lies with the software, not an individual.
Collaboration is the key. With effective communication and a collaborative approach, everyone becomes accountable for the whole. Without proper collaboration, the team may end up working overtime to fix problems that could have been avoided. Through effective collaboration, deliveries tend to be precise and efficient.
Automation serves as a vital collaboration resource, providing quick feedback and instant responses. The integration between testing and DevOps is also crucial, as it’s not just about tending to one’s own work but understanding and contributing to the whole. This team mindset not only streamlines the process but also results in more robust and satisfying deliveries for all involved parties.
Measuring Progress and Key Indicators for Implementing a Testing Culture
Tracking indicators is fundamental in the testing process. The first crucial indicator is test coverage, revealing the percentage of code tested. If this number is 0%, it means no part of the code has been tested. Additionally, it’s essential to monitor the rework indicator, as test coverage usually correlates with reduced rework.
Another important indicator is the version cost. Managing this cost ensures an efficient testing process without becoming burdensome. Security is another vital area to consider, as identifying security flaws and quantifying system vulnerability is an important indicator.
However, as crucial as implementation is understanding context and productivity, as creating automated scenarios without improving efficiency makes little sense. The starting point involves gathering scenario data and monitoring changes weekly, transparently sharing this information with the client.
Here are the fundamental indicators in this process:
- Scenarios: Refers to the number and diversity of automated test scenarios. Each scenario can represent a specific use case or software functionality. The trend is for the number of scenarios to increase, indicating the breadth of test automation. In a project initiated by Objective, starting with 52 manual tests, after six months of consultation, the result was over 2,000 automated tests.
- Productivity: Measures the number of tasks executed weekly. In the mentioned project, the team increased from delivering 18 tasks weekly to 70 tasks.
- Build Time: Refers to the time needed to build and compile the software from start to finish. The trend is for build time to shorten, indicating faster and more frequent test executions.
- Cost per Build: Represents the version cost. Managing this cost ensures an efficient testing process. As automation culture matures, productivity increases, consequently reducing the build cost. In a case with an Objective client, the initial build cost was $2,100, reduced to $4 at the project’s end.
- Test Coverage: Reveals the percentage of code tested. The trend is for this number to reach 100% with the maturity of the test automation culture.
- Rework: Essential to monitor as test coverage increases, rework decreases, resulting in lower project costs.
Main Challenges in Implementing a Testing Culture
The first challenge, and perhaps the most significant one, lies in time management, a resource always scarce in companies. Constant demands and tight deadlines make it difficult to allocate time for testing, as incorporating this practice can initially reduce performance. Studies suggest a decrease of 15 to 20% in productivity, but it is crucial to realize that this initial investment results in fewer bugs, consequently, less long-term maintenance. Although it may seem initially that the team now testing is slower and less productive, the testing culture contributes to the sustainability of the software over time.
The second challenge is the financial return, which may not be immediate. After the start of testing implementation, it may take from 3 to up to 12 months for financial benefits to become evident. However, it is obvious that the less rework and bug-fixing dedication the team needs, the greater the gains.
The third challenge is the complexity of current software, often represented by technological legacy. Dealing with issues accumulated over time is like untangling a skein of wool with a thousand threads. Although carefully analyzing this context is not a simple process, it is absolutely necessary to improve the quality and efficiency of the software.
Overcoming these challenges requires commitment and a long-term perspective, as the benefits of a well-established testing culture are crucial for continuous excellence in software development.
Advantages of Implementing a Testing Culture
The gains for a company in implementing a testing culture range from workload reduction to an increase in new functionalities. After all, the greater the delivery capacity, the higher the competitiveness. This is not possible with a software tester alone; it is necessary to establish a culture of continuous delivery and improvement.
In a hypothetical scenario, imagine if the WhatsApp application could no longer deliver new features, updates, or meet user demands. A competitor could introduce new functionalities and capture a portion of the market.
How Consultancy Services Can Address Technical and Cultural Barriers in Implementing a Testing Culture
Integrating testing activities throughout development is crucial but requires careful planning to avoid delays in deliveries. Consultancy plays a fundamental role by introducing processes and models. At Objective, a collaborative approach involves techniques such as automation with DevOps and the implementation of maturity models. Over time, the initial loss of productivity is offset by significant results.
A success story built by one of the leading telecommunications companies in partnership with Objective was the enhancement of a digital customer service channel. The goal was to add value to the team’s delivery and work methodology, providing the technical capacity required for the telecom company.
The results were incredible: the organization went from 52 manual tests to over 2,000 automated tests, not to mention the delivery time, which became three times more efficient after the implementation of test automation. This project demonstrates how investing in quality during development can result in substantial long-term benefits.
How Objective Assists Companies in This Process
Objective’s work goes beyond organizing software development and fixing bugs; it also involves incorporating a crucial element: the sharing of knowledge through a mentoring-like approach that promotes problem-solving while disseminating expertise.
Objective initiates a project with a defined timeframe, and when the client achieves a maturity in the software testing culture, usually within six months, the work is concluded.
The differentiator for Objective lies in its ability to execute and implement solutions internally in its own projects, with over 55,000 tests showcasing its efficiency. Additionally, Objective is not bound to specific tools, as addressing challenges is based on solid concepts, regardless of the tool used.
Does your company face challenges in effectively implementing a testing culture? Talk to our experts and learn how our consultancy can help transform the quality and security of your company’s deliveries!