Using the right software testing method
Often times, the testing process is greatly influenced by the methodologies which testers are familiar with. This is why it's important to not only hire experienced and skilled testers, but to ensure that testers know and can do those tests which generate the most value for the project.
While testing should be planned, there is no way to plan for every contingency. And so, there is no method that works every time under every circumstance.
There are many different software testing methodologies that are useful at different points in the software development process. For example, unit testing is mostly performed by developers while user acceptance testing is mostly performed by end users or people representing end users.
The term smoke test is a colloquialism derived from mechanical technology which basically means turning on the machine and letting it run to see if it starts smoking. In other words, run the program and see what happens. This may seem like a rather undisciplined way of going about things, but it's actually quite practical. There are times when there is no other way to find out if there's something wrong.
Therefore, using the right software testing method has a great deal to do with where in the development cycle you are. And what methods you use are often a matter of judgement and experience. This doesn’t mean that software development doesn’t follow a general pattern that’s pretty much the same from application to application. It does mean that the details can be different although the circumstances are similar.
Different applications may have different testing requirements. For example, there are different types of user acceptance testing that occurs at different points in the development cycle. Alpha testing takes place early and its main purpose is to ensure usability. Beta testing takes place late and is intended to provide feedback for improvement. Then there’s testing for compliance with regulations, testing for contract compliance, and operational readiness testing among others. And black box testing, often considered a functional test, is itself a form of user testing.
The many different testing methods have evolved over time to more efficiently answer questions and discover defects. Using the right software testing methods depends on the knowledge and skill of the development and testing teams. Automation may take a lot of the drudgery out of software testing, however there is, as yet, no substitute for the human being.