前言
继续整理一些软件测试的基础知识,这次整理的一些知识点比较偏向于面试题。
软件测试过程模型
v模型
优点:v模型是瀑布模型的变种,反映了测试活动与分析和设计的关系。从左到右描述了基本的开发过程和测试行为,明确的标明了测试过程中存在的不同级别,清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
缺点:仅仅把测试过程作为在需求设计、概要设计、详细设计及编码之后的一个阶段,不能体现“尽早地和不断地进行软件测试”的原则。容易使人认为测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而使需求分析阶段隐藏的问题一直到后期的测试阶段才被发现。
w模型
也叫做双v模型,在v模型中增加软件各开发阶段应同步进行的测试,被演化为w模型。体现为开发一个V,测试一个V。基于“尽早地和不断地进行软件测试”的原则。
局限性:跟V模型一样把软件开发是为需求、设计、编码等一系列穿行的活动。软件开发和测试保持一种线性的前后关系,需要有严格的指令标识上一阶段完全结束,才可以正式开始下一个阶段,这样就无法支持迭代,自发性以及变更调整。
X模型
X模型是为了弥补V模型的缺陷。X模型的左边描述的是针对单独程序片段进行的相互分离的编码和测试,此后进行频繁的交接,通过集成最终合成可执行的程序。而且这些可执行程序还需要进行测试,已通过测试的成品可以进行封板并提交给用户,也可以作为更大规模和范围内集成的一部分。此外,X模型还定位了探索性测试,即不进行事先计划的特殊类型的测试,比如“我这么测一下,结果会怎样”,这一方式往往会帮助有经验的测试人员在测试计划之外发现更多的软件缺陷。
软件测试的分类
按照开发阶段分:
(1)单元测试:单元测试又称为模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于坚持每个程序单元能否正确的实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的错误。单元测试需要从程序内部结构出发设计测试用例。多个模块可以平