|This article was developed from concepts in the book Global Software Test Automation: Discussion of Software Testing for Executives.|
There are many misconceptions about Software Testing. This article deals with the 5 most common misconceptions about how Software Testing differs from other testing.
Five Common Misconceptions
Some of the most common misconceptions about Software Testing relate to how Software Testing differs from other testing. Following is a discussion of the 5 most common misconceptions about Software Testing:
- You can completely test the system. If you stop to think about the enormity of accomplishing such a task, you will quickly come to realize that it is not possible to completely test any complex software system. First you start with the complexity of the software under test. Layer upon this the complexity of the numerous combinations of data and user input. Add to this the complexity of the countless combinations of computer hardware, system software, network software, and other software that may be running with the software under test. Taking all of that into consideration, it is easy to see that the task of “completely” testing software cannot be accomplished in a reasonable amount of time. It is more important to think in terms of sufficiently testing the software, focusing on critical functions, data paths, most-used functionality, on most commonly used platforms.
- You can have “zero defect” or bug-free software. Perfection is an approachable but not an achievable goal. Given that there is simply not enough time and money to test everything, the goal must be to test well enough to deliver acceptable software quality. It is also important to remember that no matter how good a job you do eliminating defects, your software runs in an operating environment (operating system, device drivers, other software, networking software, and environment) that has bugs of its own over which you have no control. These bugs in the environment can cause problems for your software.
- Software Testing is exclusively a quality control activity. Software Testing is more than simply a quality control (QC) activity. It is also a quality assurance (QA) activity and part of the overall development process. Quality control refers to measurement or inspection activities that are intended to compare actual results with the expected results of a project. Software Testing goes beyond this. It is a process of exploration in which there is an iterative evolving process of test design, execution, and problem identification. Software Testing also takes into account the needs of the customer, which QC rarely does.
- Software testing slows us down. Product release schedules are very much driven by a focus on time-to-market. This places an extreme pressure on the speed of development. To help to deal with this there have been great advances in software development platforms and tools that significantly accelerate the development process. In addition, software development methodologies such as Agile and Extreme Programming help to speed up software development. However, traditional testing has not kept pace with these advances, and has not experienced a corresponding increase in speed. This leads to the perception that testing slows us down, as it has not sped up as the development process has. Simply squeezing Software Testing to meet delivery schedules is not an adequate answer to this problem. This can result in delivering poor quality software with many defects that can lead to numerous unforeseen and uncontrollable costs in time and money. It is more important to address the issue by first accepting that testing is an important part of the process that takes a certain amount of time, time that must be built into the schedule. It is also important to investigate and adopt testing strategies and methodologies such as Action-Based Testing and global Test Automation (the integration of the latest Test Automation methodologies and technologies with global resource strategies) that help to speed up testing while improving test coverage.
- Software Testing is software development. While Software Testing is part of the overall software development process, it is actually a very separate and discrete activity. While it is common to use the terms “software development,” “software design,” and “programming” interchangeably, it is not common to say “software development” when you mean “Software Testing.” The two tasks are viewed differently. Just as a Marketing group spends money so that the Sales group can earn money, Software Testing is necessary to software development. Software development results in the generation of an eventual product, which in turn will generate revenue. Software Testing, however, is an activity in which problems in the product under development are brought to light. Testing is a process of trying to break in order to fix so that the organization may avoid significant costs in time and money after the product is released.
Hung Nguyen co-founded LogiGear in 1994, and is responsible for the company’s strategic direction and executive business management. His passion and relentless focus on execution and results has been the driver for the company’s innovative approach to software testing, test automation, testing tool solutions and testing education programs.
Hung is co-author of the top-selling book in the software testing field, “Testing Computer Software,” (Wiley, 2nd ed. 1993) and other publications including, “Testing Applications on the Web,” (Wiley, 1st ed. 2001, 2nd ed. 2003), and “Global Software Test Automation,” (HappyAbout Publishing, 2006). His experience prior to LogiGear includes leadership roles in software development, quality, product and business management at Spinnaker, PowerUp, Electronic Arts and Palm Computing.
Hung holds a Bachelor of Science in Quality Assurance from Cogswell Polytechnical College, and completed a Stanford Graduate School of Business Executive Program.
Over 20 years of sales, marketing, management, and technology experience in high technology with exposure to industries including financial services, healthcare, higher education, government, and manufacturing; demonstrating a strong track record of success. Proven ability to build and maintain strong relationships, contribute to target organization success, and deliver results. Website: http://www.robpirozzi.com/