在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示 一个复杂的开发过程,如 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值。
测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。 第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么。 第二步是在第一步的基础上开发出用户满意的软件产品。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示4个方面活动,如图所示:
制定计划风险分析实施开发客户评估随着测试过程的管理和发展,测试人员通过大量的实践,从而总结出不少测试模型。如常见的V模型,W模型,H模型等。这些模型与开发紧密结合,对测试活动进行了抽象,成为了测试过程中管理的重要参考依据。
需求分析 用户需求,业务需求,需求规格说明书。
概要设计 系统架构,模块划分,模块与模块之间的接口。
详细设计 模块内部实现的逻辑和方法。
编码 实现上的设计。
单元测试 检测代码的开发是否符合详细设计的要求。
集成测试 检测此前测试过各组成部分是否能完好地结合到一起。
系统测试 检测已集成在一起的产品是否符合系统规格说明书的要求。
验收测试 检测产品是否符合最终用户的需求。
测试V模型即包含了底层测试又包含了高层测试; 底层测试:检验源代码质量的测试,如:单元测试; 高层测试:检验整个系统的需要,如:系统测试;
V模型清楚地标识出了开发的阶段。
它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。
H模型诞生背景
人们发现虽然软件开发中需求,设计,编码等活动被分阶段执行,但是实践中,他们并不是完全串行的,它们之间更多时候是交叉进行的,更多是迭代执行。为了解决上面问题,有专家专门提出了H模型,它将测试活动完全独立出来,形成一个完全独立的流程,同时将测试准备和测试执行也清晰表现出来。 1.测试流程 测试准备:所有测试执行活动的准备;判断是否到测试就绪点; 测试就绪点:测试准入准则,即是否可以开始执行测试的条件; 测试执行:具体的执行测试的程序。 2.其他流程 具体开发的流程,如:设计流程单元测试 又称模块测试,针对软件设计中的最小单位—程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。 集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的,递增的测试,重点测试不同模块的接口部分 1.什么时候进行集成测试? 2.由谁来做集成测试?测试人员 3.集成测试的依据? 系统测试指的是将整个软件系统看为一个整体进行测试,包括对功能,性能,以及软件所运行的软件硬件环境进行测试。系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。黑盒测试
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关系软件的输入数据和输出数据 白盒测试 -指的是把盒子打开,去研究里面的源代码和程序结构。
在软件公司,往往采用黑盒测试&白盒测试相结合的方式。
软件的整体功能和性能进行黑盒测试
软件源代码采用百合测试
黑盒测试能发现以下几类错误: 1.功能不对或功能遗漏。 2.界面错误。 3.数据库访问或者处理错误。 4.性能问题。
功能测试 是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
逻辑功能测试界面测试易用测试安装测试兼容性测试 性能测试 是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。时间性能(事务响应时间等)空间性能(系统资源消耗)一般性能测试稳定性测试负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。Alpha是内侧版本,即现在所说的CB,此版本表示该软件仅仅是一个初步完成品,通常只在软件开发者内部交流,也有很少一部分发布给专业测试人员,一般而言 ,该版本软件的bug较多,普通用户最好不要安装。
Beta是公测版本,是对所有用户开放的测试版本,该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除,这一版本通常由软件公司免费发布,用户可以从相关的站点下载,通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。该版本也不适合一般用户安装。
Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟来,与即将发行的正式版相差无几,成为正式发布的候选版本。
软件正式版本推出之前的几个版本需要有人测试以下,看看是不是有问题,在开发该软件的公司内部的由该公司北部人员测试称为:Alpha测试,Alpha测试主要看有没有功能缺失或系统错误,Alpha测试完后一般不会有大问题了。然后把软件拿给用户测试,beta测试,主要是看用户对软件外观,使用方便等的反应。这么多的测试版一方面为了最终产品尽量减少了软件中的bug。然后做过一些修改,成为正式发布的候选版本时,叫做gamma(现在叫做RC-Candidate)。 简单来说,阿尔法测试主要是测试人员在开发的环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。