软件测试的分类
按开发阶段来分:单元测试、集成测试、系统测试、验收测试。
按测试的实施单位来分:开发方测试、用户测试、第三方测试。
按测试技术来分:白盒测试、黑盒测试、灰盒测试。
黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。
白盒测试:是对软件的过程性细节做细致的检查。是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约(详细设计)而言的。因此,单元测试以被测试单位的规约为基准。
集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。
系统测试:是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等。
验收测试:由客户或最终用户执行,旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。
软件开发模型
瀑布模型:
问题定义
可行性研究
需求分析
软件设计
编码
测试维护
特点:1.里程碑或基线驱动。2.过程逆转性很差或者说不可逆转。逆转可能会延误工期,增加成本,造成损失
优点:1.开发阶段清晰,便于评审、审计、跟踪、管理和控制。
缺点:1.不可逆或很难可逆。2.问题会积累,错误会传递发散扩大,导致成本和质量失控。
适用范围:1.在开发时间内需求不变化或很少变化。2.分析设计人员对此领域非常熟悉。3.低风险项目。4.用户使用环境稳定(如系统软件,工具软件)
快速原型模型
特点:1.容易适应需求的变化
优点:1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点:1.所使用的开发工具和技术不一定符合主流的发展;快速建立起来的系统架构加上连续的修改可能会导致产品质量低下。
适用范围:1.需求不明确或复杂系统。2.用户无法自主提出应用需求。
增量模型
特点:1.软件由一系列增量构件组成
优点:1.人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备人员不能在设定的时间内完成产品时,它提供了一种先推进核心产品的途径,这样即可先发部分功能给客户,对客户起到镇静剂作用。2.增量能够有计划的管理技术风险。
缺点:1.由于各个构件是逐渐并入已有的软件体系结构中,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求变化是不可避免的,增量的灵活性可以使其适应这种变化的能力大大优于瀑布和快速原型模型,但也容易退化为边改边做模型,从而使软件过程的控制失去整体性。3.如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。
适用范围:1.系统容易拆分。2.开发人力比较少。3.特别适用于商业软件(如QQ,网游)
螺旋模型
特点:1.是一种周期性的方法进行系统开发。2.有许多“中间版本”。3.每个周期都包括需求定义、风险分析、工程实现和评审4个阶段
优点:
1.设计上灵活,可在项目各个阶段进行变更
2.以小的分段来构建大型系统,使成本计算变得简单容易。
3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
缺点:1.建设周期长,而软件技术更新比较快,所以经常出现软件开发结束后,和当前的技术水平有了很大的差距,无法满足当前用户需求。
适用范围:1.系统庞大,风险高。2.需求不太明确。
喷泉模型
特点:1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
优点:1.提高软件项目开发效率,节省开发时间,适用于面向对象的软件开发过程。
缺点:1.由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。2.要求严格管理文档,使得审核难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。
适用范围:1.面向对象的软件开发过程
网友评论