tailieunhanh - The art of software testing second edition p2

Khi bạn thử nghiệm một chương trình, bạn muốn thêm một số giá trị cho nó. Thêm giá trị thông qua thử nghiệm có nghĩa là nâng cao chất lượng, độ tin cậy của chương trình. Nâng cao độ tin cậy của chương trình có nghĩa là việc tìm kiếm và loại bỏ các lỗi. | 6 The Art of Software Testing or The purpose of testing is to show that a program performs its intended functions correctly. or Testing is the process of establishing confidence that a program does what it is supposed to do. These definitions are upside-down. When you test a program you want to add some value to it. Adding value through testing means raising the quality or reliability of the program. Raising the reliability of the program means finding and removing errors. Therefore don t test a program to show that it works rather you should start with the assumption that the program contains errors a valid assumption for almost any program and then test the program to find as many of the errors as possible. Thus a more appropriate definition is this Testing is the process of executing a program with the intent of finding errors. Although this may sound like a game of subtle semantics it s really an important distinction. Understanding the true definition of software testing can make a profound difference in the success of your efforts. Human beings tend to be highly goal-oriented and establishing the proper goal has an important psychological effect. If our goal is to demonstrate that a program has no errors then we will subconsciously be steered toward this goal that is we tend to select test data that have a low probability of causing the program to fail. On the other hand if our goal is to demonstrate that a program has errors our test data will have a higher probability of finding errors. The latter approach will add more value to the program than the former. This definition of testing has myriad implications many of which are scattered throughout this book. For instance it implies that testing is a destructive process even a sadistic process which explains The Psychology and Economics of Program Testing 7 why most people find it difficult. That may go against our grain with good fortune most of us have a constructive rather than a destructive outlook on .