Principles in testing
Here we talk about some general principles, with which you should be familiar with. In short the main principle is to find your goal and then reach it. This requires asking a lot of questions, and knowing what the right questions are will certainly speed things up. A book Microsoft recommends to new testers is Testing Computer Software by Cem Kaner, Jack Falk, and Hung Quoc Nguyen; published by Wiley in 1999. As a new and unexperienced software tester at Microsoft, this book was referred to as the bible of software testing several times.
The goal of software testing is to assess the requirements of a project; then the tester will determine if these requirements are met. For example it does not do any good to check for error handling if the programmer will not add it to the project. There are many times when low memory usage and speed are more important than making the program pretty or capable of handling errors. While programming skills are useful when testing software, they are not necessarily required. Many career testers will not have extensive programming knowledge, however it can be useful in determining the cause of errors found in a project. Requirements can usually be categorized into two main categories:
* Functional * Non-Functional
The first thing to test for is functionality; does the project perform the task it was built to perform. This can be as simple as making sure an addition function can add two numbers. On the other hand, this can be as difficult as: checking for error handling, proper formatting, or network troubleshooting. Everything depends on the intentions of the specific project.
After that the tester will look for limits to the project. Is there a number that the addition function is not expected to add? This will normally be related to the types of variables involved, however many factors outside the code can generate potential limits to keep in mind (e.g. formatting long numbers in tables.) The best way to test limits is to use the limits themselves and one increment beyond the limit.
In Short this category includes all types of testing that do not include performing the task of the project: Internationalization, Accessibility, Budgets, Deadlines, Resources, etc.
There is no software without anomalies
Think about it – do you know from your circle of friends someone, who never made an error? Humans make mistakes and, because of this, amongst other things, the goal of testing is to show the anomalies in software. If no anomaly was found, so – utterly – something was overlooked.
but you can’t test everything
With infinite time you can test completely. But for those amongst you, who do not have time en masse, the following principle is important: risk and priorities are nuts and bolts
because of this: start testing as soon as possible (ASAP)
The earlier an anomaly is found, the more time there is, to analyze it and if required to treat it accordingly.