1、电子与信息工程外文翻译西安邮电学院 毕 业 设 计(论 文)外文文献翻译系 别: 电子与信息工程 专 业: 电子信息工程 班 级: 电子1002班 学生姓名: 桑永茂 导师姓名: 张新 职称: 教授 起止时间:2014年 3月10日 至 2014年 6月15日 英文原文The art of software testingGlenford J. MyersWhen you finish module-testing a program, you have really only just begun the testing process. This is especially true of
2、 large or complex programs. Consider this important concept:A software error occurs when the program does not dowhat its end user reasonably expects it to do.Applying this definition, even if you could perform an absolutely perfect module test, you still couldnt guarantee that you have found all sof
3、tware errors.To complete testing, then, some form of further testing is necessary. We call this new form higher-order testing. Software development is largely a process of communicating information about the eventual program and translating this information from one form to another. For that reason,
4、 the vast majority of software errors can be attributed to breakdowns, mistakes, and noise during the communication and translation of information. This view of software development is illustrated in Figure 6.1, a model of the development cycle for a software product. The flow of the process can be
5、summarized in seven steps:1. The program users needs are translated into a set of written requirements. These are the goals for the product.2. The requirements are translated into specific objectives by assessing feasibility and cost, resolving conflicting requirements, and establishing priorities a
6、nd trade-offs.3. The objectives are translated into a precise product specification, viewing the product as a black box and considering only its interfaces and interactions with the end user. This description is called the external specification.4. If the product is a system such as an operating sys
7、tem,flight-control system, database management system, or employee personnel system, rather than a program (compiler, payroll program, word processor), the next process is system design. This step partitions the system into individual programs, components, or subsystems, and defines their interfaces
8、.5. The structure of the program or programs is designed by specifying the function of each module, the hierarchical structure of the modules, and the interfaces between modules.6. A precise specification is developed that defines the interface to, and function of, each module.7. Through one or more
9、substeps, the module interface specification is translated into the source-code algorithm of each module.Heres another way of looking at these forms of documentation: Requirements specify why the program is needed. Objectives specify what the program should do and how well the program should do it.
10、External specifications define the exact representation of the program to users. Documentation associated with the subsequent processes specifies, in increasing levels of detail, how the program is constructed.Given the premise that the seven steps of the development cycle involve communication, com
11、prehension, and translation of information, and the premise that most software errors stem from breakdowns in information handling, there are three complementary approaches to prevent and/or detect these errors. First, we can introduce more precision into the development process to prevent many of t
12、he errors. Second, we can introduce, at the end of each process, a separate verification step to locate as many errors as possible before proceeding to the next process. This approach is illustrated in Figure it to the output of the prior stage (the statement of objectives) and feeding back any disc
13、overed mistakes to the external-specification process. Use the code inspection and walkthrough methods discussed in Chapter 3 in the verification step at the end of the seventh process.The third approach is to orient distinct testing processes toward distinct development processes. That is, focus ea
14、ch testing process on a particular translation step, thus focusing it on a particular class of errors. This approach is illustrated in Figure 6.3. The testing cycle has been structured to model the development cycle. In other words, you should be able to establish a one-to-one correspondence between
15、 development and testing processes. For instance: The purpose of a module test is to find discrepancies betweenthe programs modules and their interface specifications. The purpose of a function test is to show that a program does not match its external specifications. The purpose of a system test is
16、 to show that the product is inconsistent with its original objectives.The advantages of this structure are that it avoids unproductive redundant testing and prevents you from overlooking large classes of errors. For instance, rather than simply labeling system testing as “the testing of the whole system” and possibly repeating earlier tests, system testing is oriented toward a distinct c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1