软件测试[意义与方法][中英对照翻译]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试
1.Objective目的
The objective of this document is to describe software testing for use with any software development project. The purpose is to provide a baseline for software testing activities. A standardized testing process is required because it improves the effectiveness and efficiency of testing for the project. It does so in several ways.
本文档的目的是描述任何软件开发项目中的软件测试活动,目的是提供一个标准的测试活动基准。标准化的测试流程是被需要的,因为它可以提高项目测试的效率和有效性。
∙Defines the testing process
∙Makes the testing process repeatable
∙Ensures high-risk components of the system are tested
∙Lessens the effects of individual differences (tester background and skill set) on testing
∙Adds “intelligence” to testing
∙Provides metrics for managing and controlling testing
∙Provides metrics for assessing and improving testing
∙Provides a basis for test automation
∙Produces specific testing deliverable
∙定义测试过程
∙确保测试过程可重复
∙确保系统中高风险的组件得到测试
∙缩小测试中由于测试人员的背景和技能的不同产生的影响
∙增加“intelligence”去测试
∙为管理和控制测试提供度量
∙为评估和改进测试提供度量
∙提供自动化测试的基础
∙产出具体的测试交付物
2.What is Software Testing?什么是软件测试?The goal of the testing activity is to find as many errors as possible before the user of the software finds them. We can use testing to determine whether a program component meets its requirements.
测试活动的目标是在软件的真正用户使用前尽可能的发现更多的错误,我们使用测试去确定一个程序组件是否满足它的需求。
To accomplish its primary goal (finding errors) or any of its secondary purposes (meeting requirements), software testing must be applied in a systematic fashion.
为了实现它的主要目标(发现错误)或者第二目标(满足需求),软件测试必须应用在一个系统方式中。Testing involves operation of a system or application under controlled conditions and evaluating the results.
测试包括了一个系统的操作或者受控条件下的应用和结果评价。
Verification and Validation验证和确认
Verification and Validation (V&V) is a Software Testing activity to enhance quality of the software being built. It is planned and conducted systematically through out the software lifecycle.
验证和确认(V &V)是一种软件测试活动去增强被构建的软件质量,V&V被计划并系统化的执行于整个软件生命周期。
∙Verification is the checking or testing of items, including software, for conformance and
consistency with an associated specification. Software testing is just one kind of verification,
which also uses techniques such as reviews, analysis, inspections and walkthroughs.
∙验证(Verification)是对一些内容的检查和测试,它包括对于软件规格符合性和一致性的检查,软件测试仅仅是验证的一种,还用到了一些其他的技术比如评审,分析,检查,走查(reviews,
analysis, inspections and walkthroughs)。
∙Validation is the process of checking that what has been specified is what the user actually
wanted. Validation activity may begin when most or all software functions as per customer
expectations.
∙确认(Validation)是针对那些被用户指定的,满足他们实际期望的需求的检查过程。确认活
动可以开始于多数或者所有软件功能按照客户期望完成时。
∙Validation testing provides final accurance that the software meets all functional, behavioral
and performance requirements. Usually Black-box testing is used for this activity.
∙确认测试提供最终的保证,确保软件满足所有功能,运行情况和性能需求。通常黑盒测试被
用于该活动。
Verification: Are we building the project right? 我们正确的构建了这个项目吗?
Validation: Are we building the right product? 我们构建了正确的产品吗?
Debugging Vs Testing 调试 Vs 测试
The term bug is often used to refer to a problem or fault in a computer. There are software bugs and hardware bugs.
“Bug”这个术语通常用于计算机的一个问题或者错误,包括软件和硬件的Bug。
Software testing should not be confused with debugging. Debugging is the process of analyzing and locating bugs when software does not behave as expected. Although the identification of some bugs will
be obvious from playing with the software, a methodical approach to software testing is a much more thorough means of identifying bugs. Debugging is therefore an activity, which supports testing, but cannot replace testing. However, no amount of testing can be guaranteed to discover all bugs.
软件测试不应该与调试混淆。调试是指当软件没有像预期的运行时,进行分析并且找出Bug的过程。虽然
运行软件可以很明显的确认一些Bug,但是有系统地进行软件测试是一种更彻底地来发现 Bug的方法。因
此调试是一种支持测试的活动,但是不能替代测试。同时,不能保证有多少的测试可以发现所有Bug。Common Problems 常见问题
∙Poor requirements – if requirements are unclear, incomplete, too general, or not testable,
there will be problems
∙需求不足-如果需求是不明确的、不完整的、太概括、或者不可测,那就会有问题
∙Unrealistic schedule – if too much work is crammed in too little time, problems are inevitable
∙不切实际的进度安排-如果有限时间里有太多工作,不可避免地就会有问题
∙Inadequate testing – no one will know whether or not the program is any good until the
customer complains or systems crash
∙测试不足-在用户抱怨或者系统崩溃之前,没有人知道程序好不好。
∙Requirements change – requests to pile on new features after development is underway are
common
∙需求变更-开发后还有新功能需求提出,这也很普遍
∙Miscommunication –if developers don‟t know what is needed or customers have erroneous
expectations, problems are guaranteed
∙沟通错误-如果开发人员不知道需要什么,或者用户有不正确的期望,肯定会有问题
∙Poorly documented code – sufficient comments not built into the source code, requirement
changes not updated in the impacted documents
∙代码文档化不够-源代码中没有足够的注释,没有在文档中体现需求的变更
Solutions解决方案