技术测试主要是针对开发代码的测试,例如V模型中所定义的动态的单元测试,集成测试和系统测试。另外,前置测试还提示我们应增加静态审查,以及独立的QA测试。QA测试通常跟随在系统测试之后,从技术部门的意见和用户的预期方面出发,进行最后的检查.同样的还有特别测试。我们取名特别测试,并把该名称作为很多测试的一个统称,这些测试包括负载测试、安全性测试、可用性测试等等,这些测试不是由业务逻辑和应用来驱动的。
对技术测试最基本的要求是验证代码的编写和设计的要求是否相一致。一致的意思是系统确实提供了要求提供的,并且系统并没有提供不要求提供的。技术测试在设计阶段进行计划和设计,并在开发阶段由技术部门来执行。
(四)测试和开发结合在一起
前置测试将测试执行和开发结合在一起,并在开发阶段以编码-测试-编码-测试的方式来体现。也就是说,程序片段一旦编写完成,就会立即进行测试。普通情况下,先进行的测试是单元测试,因为开发人员认为通过测试来发现错误是最经济的方式。但也可参考X模型,即一个程序片段也需要相关的集成测试,甚至有时还需要一些特殊测试。对于一个特定的程序片段,其测试的顺序可以按照V模型的规定,但其中还会交织一些程序片段的开发,而不是按阶段完全地隔离。
在技术测试计划中必须定义好这样的结合。测试的主体方法和结构应在设计阶段定义完成,并在开发阶段进行补充和升版。这尤其会对基于代码的测试产生影响,这种测试主要包括针对单元的测试和集成测试。不管在哪种情况下,如果在执行测试之前做一点计划和设计,都会提高测试效率,改善测试结果,而且对测试重用也更加有利。
(五)让验收测试和技术测试保持相互独立
验收测试应该独立于技术测试,这样可以提供双重的保险,以保证设计及程序编码能够符合最终用户的需求。验收测试既可以在实施阶段的第一步来执行,也可以在开发阶段的最后一步执行。
前置测试模型提倡验收测试和技术测试沿循2条不同的路线来进行,每条路线分别地验证系统是否能够如预期的设想进行正常工作。这样,当单独设计好的验收测试完成了系统的验证, 我们即可确信这是一个正确的系统。
(六)反复交替的开发和测试
在项目中从很多方面可以看到变更的发生,例如需要重新访问前一阶段的内容,或者地跟踪并纠正以前提交的内容,修复错误,排除多余的成分,以及增加新发现的功能,等等。开发和测试需要一起反复交替地执行。模型并没有明确指出参与的系统部分的大小。这一点和V模型中所提供的内容相似。不同的是,前置测试模型对反复和交替进行了非常明确的描述。
(七)发现内在的价值
前置测试能给需要使用测试技术的开发人员、测试人员、项目经理和用户等带来很多不同于传统方法的内在的价值。与以前的方法中很少划分优先级所不同的是,前置测试用较低的成本来及早发现错误,并且充分强调了测试对确保系统的高质量的重要意义。前置测试代表了整个对测试的新的不同的观念。在整个开发过程中,反复使用了各种测试技术以使开发人员、经理和用户节省其时间,简化其工作。
通常情况下,开发人员会将测试工作视为阻碍其按期完成开发进度的额外的负担。然而,当我们提前定义好该如何对程序进行测试以后,我们会发现开发人员将节省至少20%的时间。虽然开发人员很少意识到他们的时间是如何分配的,也许他们只是感觉到有一大块时间从重新修改中节省下来可用来进行其它的开发。保守地说,在编码之前对设计进行测试可以节省总共将近一半的时间,这可以从以下方面体现出来:
针对设计的测试编写是检验设计的一个非常好的方法,由此可以及时避免因为设计不正确而造成的重复开发及代码修改。通常情况下,这样的测试可以使设计中的逻辑缺陷凸显出来。另一方面,编写测试用例还能揭示设计中比较模糊的地方。总的来说,如果你不能勾画出如何对程序进行测试,那么程序员很可能也很难确定他们所开发的程序怎样才算是正确的。
测试工作先于程序开发而进行,这样可以明显地看到程序应该如何工作,否则,如果要等到程序开发完成后才开始测试,那么测试只是查验开发人员的代码是如何运行的。而提前的测试可以帮助开发人员立刻得到正确的错误定位。
在测试先于编码的情况下,开发人员可以在一完成编码时就立刻进行测试。而且,她会更有效率,在同一时间内能够执行更多的现成的测试,她的思路也不会因为去搜集测试数据而被打断。
即使是最好的程序员,从他们各自的观念出发,也常常会对一些看似非常明确的设计说明产生不同的理解。如果他们能参考到测试的输入数据及输出结果要求,就可以帮助他们及时纠正理解上的误区,使其在一开始就编写出正确的代码。
前置测试定义了如何在编码之前对程序进行测试设计,开发人员一旦体会到其中的价值,就会对其表现出特别的欣赏。前置方法不仅能节省时间,而且可以减少那些令他们十分厌恶的重复工作。
文章来源于领测软件测试网 https://www.ltesting.net/