The term "TDM testing" implies that there is a process for quality assurance in software testing. As with any process of quality assurance, TDM testing is dependent upon data to be collected, analyzed, and validated. In TDM testing, it is the goal of testers to ensure that the software will meet or exceed the clients' requirements.
There are two different kinds of TDM testing: manual testing and automated testing. Manual testing is a process where the tester uses a variety of tools and techniques, such as test cases, program logs, manual testing tools, and testing techniques, to verify the program as it is written by the client. Automated testing is a process that verifies the program after the client has executed the software as desired. It differs from the manual method in the manner in which results are collected and interpreted. Both methods should be effective but in different ways.
In TDM testing, software developers create test cases or specifications that describe the software to be tested. The application, which is to be tested, is written into a programming language (C/C++ or Java). The client implements these test cases using a text editor or a visual console. The test cases specify the tester's expectations in terms of the behavior of the software. As a result, the software developers create corresponding test scripts or code. These test scripts and code are then used to execute the TDM test cases.
In addition to writing test cases manually, TDM testing requires developers to follow certain guidelines. For instance, the software should be converted to an executable format before beginning testing to reduce the possibility of bugs being discovered during the testing phase. The software should also be compiled under controlled conditions to eliminate the possibility of software artifacts being introduced during testing. TDM testing should also be performed only within the software's functional scope rather than testing a broad variety of software.
Once the test cases have been written and the software has been compiled, testers must execute the tests according to the test scripts. This means that they should test all possible scenarios and end-points within the software and not just simple tester-endpoint scenarios. They may choose to divide a test case into multiple test cases in order to increase the chances of finding bugs more quickly. Likewise, developers should write their test cases in a style that follows the TDM testing process. For instance, test cases should be well-constructed, consistent with the test's goal, and error free.
Another factor in TDM testing is the involvement of the testers' outside parties. Some companies hire third party testers to verify the software's functionality and the quality of its interface. These testers are known as "grunt" testers since their tasks are less formal than the testers' tasks in a traditional TDM testing. Other companies, however, rely on in-house technical staffs whose main responsibility is to provide feedback on the software's QA activities. The testers, on the other hand, play the role of investigators who verify whether the software satisfies the requirements laid down by the QA team. Their reports help the QA team to determine whether the software needs further work.
With TDM testing, there is an increased probability for the software to pass the automated testing stage. This is because the software developers can use the generated test cases to check whether they are using the correct criteria when creating the test cases. As a result, software developers can avoid missing some tests which might take extra time and effort to accomplish. This means, they can accelerate the release cycle by months or even years if they are able to guarantee that the software will not encounter any unexpected issues.
One of the benefits of TDM testing is the reduction of software re-writes. Since the testing methodologies involve controlled, reproducible testing, there is no need for re-writing the original software applications. This makes TDM testing an excellent option for the majority of software developers. The methodology also guarantees the owners of the software rights to fix any bugs in the software immediately following the end-of-life period. This feature is one of the key reasons why TDM testing has been preferred by large organizations around the world. In the end, all involved parties benefit from this testing method.