Software testing is approaching its end of the Cretaceous period. Personally, I invite asteroid maxims to promote a destructive approach to the practice of software testing that can continue along the evolutionary journey is necessary. Make no mistake, software testing has not really stagnant; it evolved during the Cretaceous period of his. The biggest change was at the top of the food chain testing, as developers evolved to accept more responsibility for the quality of the software. This distribution of responsibilities of quality is an important stepping stone for the next industrial evolutionary leaps.
The evolution of software testing has - compared to other technologies - slowly. If you agree that the software testing as a practice has been sluggish, then we need to take a step back and ask: "Why are we in this situation?"
Two main reasons have not developed software testing
I believe that there are two main reasons why software testing has not evolved: the organization was handcuffed by a global system integrators (GSIS) and the test has had a muddled organizational structure.
Between the two, which is the chicken and which the egg? If the quality of the software has a strong reporting hierarchy GSIS can exert so much control? Does the GSIS abusing their position and managed to silence internal opposition? I had my guess, but I would love to hear what you think.
Handcuffed by GSIS
Let us start this discussion with the GSIS for a significantly more incendiary topic. The general concept here is that senior managers are traded, internal domestic expertise in business and testing processes to offshore labor, reducing OpenX. Known as labor arbitrage, organizations can reduce the number of employees and transfer the responsibility for software testing outsourcing resource for soldiers trained on the software testing task. There were three main adverse impacts on software testing with a shift to the GSIS: promoted models guide the implementation of tasks, the adoption of automation of business processes absent and there is a "brain-drain" or sewer knowledge.
Given the relatively lower costs of labor (an average of 2.5: 1), GSI models especially structured and executed the task manually. The GSIS paints a picture of an endless supply of technical resources clamoring to work 24/7 in comparison with the resources to settle in the country. It conjured images of the secretarial pool (without iPhone) hammering away in the test plan at 60% of current expenditures. With the abundance of human resources is really no incentive to promote automation. As for domestic operations, the cost of which is contained for the time being derived from software testing becomes a strategic task.
It is clear, but that needs to be highlighted, that the preferred execution model of GSI manual also absent task automation efforts. Why? In the model GSI, automation potentially eliminating headcount and reduce testing cycles. Less headcount plus reduced cycle time equivalent to fewer billable hours and reduce income in time and material models. Therefore, the benefits of automation will certainly not serve the financial goals of GSI. In addition, if the automation is recommended for your service provider, then GSI suggests that they build for you. All GSIS today sitting on millions of lines of dead code that represents the effort to build one-off project automation. This dead code also represents millions of dollars in billable hours.
Perhaps the greatest impact on the evolution of software testing is a business and the process of brain drain. With lower OpEx as bait, market global software testing services to swell to $ 32 billion dollars per year (the "B-Billion"). This tectonic shift drained resources that have in-depth knowledge of the business processes of domestic organizations. These nets brain-drain is less impacted by the results of the testing activities. What is my evidence?
The severe swelling test suite
There is no concept of risk or priorities in the test suite
Metric driven by a count tests
false-positive rate> 80%
Abandoned test suite because the code is too far out of sync with the test
There are more but this is too depressing ...
Let me be very open about my opinion about this. Trade organization process control to lower costs. In the post-Y2K world, this seemed like a pretty good idea because the software primarily serves the operational objectives. The current software is the primary interface for business and every aspect of delivery should be considered as a core competency.
Tests have had a chaotic organizational structure
Testing has historically been reported to the development team and this is a big mistake. Testing should always be reported operating. I can not think of one reason why testing does not have to resort to surgery. Even if the test did a report on the operation then I believe the practice of software testing will be at a significantly different evolution. Let's play this out a little concept. What if the practice of software testing landed with surgery instead of development? I think we will look at three main areas: the more rapid adoption of development testing practices advanced end-to-end test automation, and focus on business risk.
If the software testing team has historically reported operating there will be (even) more tension between Dev and Ops. This tension will be promoted the need for more rigorous testing in the construction by the developer. The modern form of testing the software (and the tension between developers and testers) evolved out of lack of diligent testing by developers. Practices such as static analysis, structural analysis, early performance testing, and unit testing are slowly matured over the past decade.
If the software testing team reported the operation, software testing will become one of the front-line duty in the ITIL processes, versus smaller validation tasks. The speed will come to light earlier as a business objective, therefore, promote the adoption of advanced automation techniques. I realized that my statement above is loaded with some strong allegations but contains several core drivers DevOps - so do not hesitate to comment. With production speeds become a more prominent destination, there will be better access to production data, better access to environmental data, and a more cohesive approach to the application life cycle and not just the software development life cycle. Automation will become a necessity and not an alternative to outsourcing.
With the reporting software testing for the operation, I believe KPIs and metrics to drive activity will be different. Metrics such as the count of the test and the percentage of tests executed will never leak into the dashboard. I believe we will evolve metrics more closely aligned with the business risk and will be a model that allows organizations to more reliably assess the risks associated with the release of the software at any point in the development cycle develops.
Now I'm depressed, but energy
We are in a unique time enough in the evolution of software testing. We are facing new challenges associated with working from home. We are facing unprecedented pressure from the digital transformation initiative. Speedis the new mantra for testing software but penalties for failure software is at an all-time high because of the news blackout and frustrated end-users went viral on social media? Now is the time to rethink the whole process. I will share some ideas in my next article on software testing of natural selection.
Comments