More On The Art Of Software Testing
Software Testing Techniques: Finding the Defects that Matter answers these questions and provides practical testing techniques for achieving robust reliability with any large-scale software project. Testing
Testing is a trade-off between increased confidence in the correctness of the implementation under test and constraints on the amount of time and effort that can be spent in testing. Testing should systematically uncover different classes of errors in aminimum amount of time and with a minimum amount of effort. It is not unusual for developers to spend 40% of the totalproject time on testing. At first glance, structural testing seems unsafe. Structural testing cannot find errors of omission. The difference between functional and structural testing blurs near release time. Broad, shallow testing finds gross deficiencies in a test suite quickly. You are better off testing the original source code since it relates toprogram requirements better than the object code. Software Rising customer expectations for fault-free, requirements-exact software have increased awareness of the importance of software testing as a critical activity. Well-publicized failures from both industry and government have underscored the need for mission-critical software to be thoroughly tested before being released into the marketplace. But for years the actual approaches used to test mainframe software have been kept under wraps. Test The destructive nature of testing requires thatthe developer discard preconceived notions of the correctness of his/her developed software. A good test case is one that has a high probability offinding an as yet undiscovered error. A successful test is one that uncovers an as yetundiscovered error. A secondary benefit of testing is that it demonstrates that the software appears to be working as stated in the specifications. The data collected through testing can also provide an indication of the software's reliability and quality. But, testing cannot show the absence of defect -- it can only show that software defects are present. Development This is an important issue, because in many software development organizations, the cost of testing can account for more than 40% of the total development cost for a software system. A casual hacker would have more difficulties in finding vulnerabilities if the trivial ones are caught in the testing phase of the development. Each test case is executed and compared to the expected results. |