Software testing is very important to ensure the quality of the software. Since software quality is really relative what becomes the basis are the specifications for the software. Software testing can be done in two different ways. One approach is through static testing which is mostly concerned with the correctness of the syntax of the code of the software. The other approach is through a dynamic testing wherein the software is run and tested. The test focuses on finding errors and comparing actual outcomes with expected outcomes. It can be done are at any or all stages of the development of the software. The software would be exposed to different variables to check the viability of the software.
Software testing can also be automated. The principle is basically the same. The only difference is that instead of doing the testing manually it’s done in automation. Basically what happens is that all test parameters are coded into a program or software. This software now will run the software tests according to the parameters it is set to do. For instance, the software can do the comparison between expected and actual outcomes. It can run the software being tested under different variables. All the controls of the testing are in fact embedded on the software that does automated software testing. It also comes up with test reports.
The trend on automated software is to allow unit testing to get a clear view of whether actual results are in line with expected results. Test cases are run by the software to do the automated testing. Most experts argue though that it’s not possible or at least not cost effective to fully automate software testing. Parts of the testing can be automated but it cannot fully replace manual testing without incurring unreasonable costs.