This section should be really important to the project; any bug discovered during this stage will always be better than bugs discovered when the project is live. There are many form of testing; some include testing that the code will not break with certain scenarios such as; hacking attempts, user error like validation errors and performance testing of code.
Testing should really start during the analysis stage, being able to judge what parts of the system are testable can help development of the system and having a clear test plan laid out before reaching the test phase will help keep the project running smoothly.
Creating test case’s based on functionality early on will help. An example would be functionality that has been agreed upon in the analysis stage but then has been left out, would then fail the test. But you get to see the point. A test case is an individual test that tests functionality; it is a written document that shows what the input to the system will be and the desired output of the system. Any issues that arise as part of the test will be recorded and action should then be taken to ensure that the test will pass. TDD helps to combat the issue of repeating test cases over and over until the problem is solved. Because you define the tests based on functionality and then program against the test.
Usability testing is where users are given tasks to complete using the system. Based upon ease of use and general opinion of the system users will help judge how the system is built. The user can give a wide range of opinion to the system so it can be hard to pin point changes that should be made to the system. This is why it is important to start the testing phase early on such as using prototypes to judge functionality and the task workflow within a system.
BETA testing is one thing that is sometimes done live. It enables development teams to publish a fairly stable version of the system for testing within a selected public domain, where the people who get to test the system are limited and selected. The idea behind this is that the more people you have running the system the more likely you are to find all the bugs within a system. Sometimes small bugs only happen in certain conditions which can be hard to replicate in sandbox like conditions, so releasing a system under a BETA can be a good idea, it helps ensure that a wide variety of the program is tested.
Check out Part Five where we discuss Evaluation