在许多方面,测试规程作为其他规程的服务提供者。测试主要侧重于估计或评定产品质量,这是通过以下核心实践实现的:
-
查找和记录软件质量中的缺陷。
-
对于已了解的软件质量的建议。
-
通过具体的演示,验证和证明在设计和需求规范上所作的假设。
-
验证软件产品是按设计工作的。
-
验证需求实现得很恰当。
在 RUP 的测试和其他规程之间存在一点有趣的区别 -
在软件产品中,测试的基本任务是查找和暴露缺点。这很有趣,因为要获得最大利益,需要与在需求规程、分析与设计规程和实施规程中所用的一般原理不同的原理。有点微妙的不同在于那三个规程侧重于完整性,而测试侧重于不完整性。
好的测试工作受到类似如下的问题的驱动:
-
此软件如何才能中断?
-
在哪些可能的情况下,此软件未能以可预测的方式工作?
测试向假设、风险和其他规程工作中固有的不确定性发起挑战,并使用具体演示和公正的评估来针对这些问题。您要避免两个潜在的极端:
-
一种方法,它不适合地或未能有效地测试软件,并暴露出本身固有的问题或缺点
-
产生不适当的负面影响或破坏性的方法 - 采用这种有负面影响的方法,您会发现考虑质量可接受的软件产品是不可能的,并且会使测试工作从其他规程中孤立出来
各种调查和评论中提供的信息表明,软件测试占总体软件开发成本的百分之三十到五十。因此,有些令人惊讶的是,请注意大多数人认为计算机软件在交付之前并未很好地进行测试。此矛盾基于以下几个关键问题:
-
测试软件是十分困难的。如何确定给定程序可以执行的不同方法的数量?
-
通常,没有一套明确的方法来进行测试,创建的结果会随项目和组织的不同而有所不同。成功主要基于质量因素和个人技能。
-
生产力工具使用不充分,造成测试劳动量方面无法管理。除了缺乏自动化的测试执行,许多测试工作的执行没有工具,而这些工具可使您有效管理广泛的测试数据和测试结果。软件的使用灵活性和复杂性使得完整的测试成为不可能的目标。使用构思良好的一套方法和最先进的工具可以提高软件测试的生产力和有效性。
高质量的软件是安全性关键系统成功的基础 - 如空中交通控制、导弹导航或医疗物资传送系统 - 一个故障就会危害到人员的安全。典型的 MIS
系统的紧急程度可能不会立杆见影,但缺陷的影响很可能会导致使用软件的企业在损失的收入和可能发生的法律成本上花费相当可观的费用。在这个信息时代,随着提供通过 Internet 以电子方式递送的服务的需求的不断增加,许多 MIS
系统目前都在考虑使命关键;即当故障出现时公司不能履行它们的功能并且会遭遇巨大的损失。
在软件生命周期早期启动的保证质量的连续方法可以显著降低完成和维护软件的成本。这将大大减少与部署质量低劣的软件关联的风险。
测试规程与其他规程相关,如下所示:
-
需求 规程捕获软件产品的需求,是确定要执行哪些测试的主要输入之一。
-
分析与设计规程为软件产品确定合适的设计,这是另一个用于确定要执行哪些测试的重要输入。
-
实施规程产生由测试规程验证的软件产品的工作版本。在一个迭代内,将测试多个构建版本 - 通常每个测试周期测试一个版本。
-
部署规程将完成后的软件产品交付给最终用户。而测试规程验证软件,在这之前,Beta 测试和验收测试通常作为部署的一部分执行。
-
环境规程开发和维护在测试期间使用的支持工件,如测试指南和测试环境。
-
项目管理规程计划每个迭代中的项目和必要的工作。在迭代计划中描述此规程,此工件是为测试工作定义正确的评估任务时要使用的重要输入。
-
配置与变更管理规程控制项目团队内的变更。测试工作验证每个变更都已恰当地完成。
我们建议您阅读 Kaner、Bach 和 Pettichord 的 Lessons Learned in Software Testing [KAN01],该文包含针对测试团队的一系列极好的重要注意事项。
|