软件测试中不可忽略的阶段[2] 软件测试工具
测试是一项意义显著的工作
V模型描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段。如模型图中所示,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。请注意在不同的组织中,对测试阶段的命名可能有所不同。
在模型图中的开发阶段一侧,先从定义业务需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后开发为程序代码。在测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验收测试。
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系:
· 单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
· 集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。
· 系统测试主要针对概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能。
· 验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。
在不同的开发阶段,会出现不同类型的缺陷和错误,所以需要不同的测试技术和方法来发现这些缺陷。
发现缺陷的艺术
大多数测试人员比较容易接受V模型的观点,即测试和开发在开发过程中是平等的。即使是开发人员也同样很欣赏V模型所提出的测试级别和开发过程相对应的方式,但很少有人去充分利用V模型的全部威力。很多人认为测试只是在编码或者系统某个部分完成后会发生什么,并且错误地将测试看作为“执行测试”。这样,他们知道要开始执行测试的时候才真正想到了测试。
测试不仅仅是测试。测试过程还包括确定要测试什么(测试范围和条件)以及产品如何被测试(制作测试用例),建立测试环境,执行测试,最后再评估测试结果,检查是否达到已完成测试的标准,并报告进展情况。而且,仅有这些还不够,根据很多测试者的经验,当你认为什么地方有问题时,你就很可能会在那里发现问题。如测试专家Boris Beizer在他经典的测试著作《Software Testing Techniques (Thomson Computer Press, 1990)》中所说,测试设计可以发现缺陷和错误。
而且,如果你把测试设计放在最后阶段,就错过了发现构架设计和业务逻辑设计中存在的严重问题的时机,到那时,要修复这些缺陷将很不方便,因为缺陷已经扩散到系统中去了,所以这样的错误将很难寻找和修复,并且代价更高。
比较灵活的解释,尽量提早的测试 软件测试
V模型在欧洲,至少在英国很容易被解释,但在美国却比较难以被接受。例如,虽然V模型没有明确说明早期的测试设计,而Graham则认为它体现在了处理过程中,并认为这是V模型的强大力量所在。V模型所没有明确说明的这些其它的测试行为有时被演化为一种W模型,因为实际上开发是"V",测试也是与此相重叠的"V"。不管V模型是否明确说明了早期的测试设计行为,测试设计确实是值得强调的。
根据V模型的要求,一旦有文档提供,就要及时确定测试条件,以及编写测试用例,这些工作对测试的各级别都有意义。当需求被提交后,就需要确定高级别的测试用例来测试这些需求。当概要设计编写完成后,就需要确定测试条件来查找该阶段的设计缺陷。
如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档。另外还有一个很大的益处是,测试者可以在项目中尽可能早地面对规格说明书的挑战(测试是一种接受挑战的行为)。
这意味着测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。参与前期工作的测试者可以预先估计问题和难度,这将可以显著地减少总体测试时间,加快项目进度。
文章来源于领测软件测试网 https://www.ltesting.net/