测试理论第二天

1.软件开发过程模型
1.瀑布模型
2.快速原型模型
3.螺旋模型
2.开发模型–瀑布模型 Waterfall Model
1.Requlrements Analysls 可行性研究与计划
2.Design 需求分析
3.Code 设计
4.Integration 编码
5.Test 测试
6.Deploy 运行维护
1–2 定义阶段 3–5开发阶段 6维护阶段
3.瀑布模型介绍
瀑布模型该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过度,如同流水下泻,最终得到所开发的软件产品,投入使用
4.瀑布模型定义
(1)瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品
1.是线性模型的一种,在所以模型中占有重要地位,是所有其他模型的一个基础
2.每一个阶段执行一次,按线性顺序进行软件开发
3.测试的切入点
测试阶段处于软件实现后,必须在代码完成后留出足够时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露
5.瀑布模型的优点
1.开发的各个阶段比较清晰
2.强调早期计划及需求调查
3.适合需求稳定的产品开发
6.瀑布模型的缺点
1.依赖于早期的需求调查,不适应需求变化
2.单一流程不可逆
3.风险往往延至后期才显露,失去及早纠正的机会
4.问题在项目后期才开始暴露
5.前面未发现的错误会传递并扩散到后面阶段,可能导致项目失败
7.开发模型–快速原型模型
(1)在开发真实系统之前,够着一个原型,在该原型的基础上,逐渐完成整个系统的开发工作
1.第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么
2.第二步是在第一步的基础上开发出用户满意的软件产品
8.快速原型模型的优点
(1)克服瀑布模型的缺点,更好的满足用户需求并减少由于软件需求不明确带来的项目开发风险。适合预先不能确确切定义需求的软件系统开发
9.快速原型模型的缺点
(1)不适合大型系统的开发(适合开发小型的,灵活性高的系统)。前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新
10.开发模型–螺旋模型
(1)螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示了4个方面的活动
1.制定计划
2.风险分析
3.实施开发
4.客户评估
11.螺旋模型的优点
(1)螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估
12.螺旋模型的缺点
(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必会造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间
13.测试模型 V模型
V模型的步骤:需求分析,概要设计,详细设计,软件编码,单元测试,集成测试,系统测试,验收测试
(1)需求分析
即首先要明确客户需要的是什么,需要软件作成什么样子,需要有那几项功能,这一点上比较关键的是分析师和客户沟通时的理解能力与交互性。要求分析师能准确的把客户所需要达到的功能,实现方法,等表述出来,给出分析结果,写出需求规格说明书
(2)概要设计
主要是架构的实现,指搭建架构,表述各模块功能,模块接口连接和数据传递的实现等项事务
(3)详细设计
对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明
(4)软件编码
按照详细设计好的模块功能表,编程人员编写出实际的代码
(5)单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等
(6)集成测试
经过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现情况,以及模块接口连接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,- -边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍
(7)系统测试
经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等
(8)验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到预期的效果
14.V模型的优点
(1)测试V模型即包含了底层测试又包含了高层测试
1.底层测试:检验源代码质量的测试,如:单元测试
2.高层测试:检验整个系统的需要,如:系统测试
(2)V模型清楚地标识出了软件开发的阶段
(3)它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束
15.V模型的缺点
(1)V模型一大缺点正是它自身的顺序性所导致的。到了测试阶段,程序已经完成,错误已经产生,很多前期的错误一直到测试阶段才发现,甚至无法发现,往往无从修改了
(2)同时实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程,返工量非常大,模型灵活性比较低
16.W模型的优点
(1)强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试
(2)更早地接入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复
(3)同样是分阶段的工作,便于控制项目过程
17.W模型的缺点
(1)依赖于软件开发和软件测试依然保持一前一后的线性关系,依然无法支持迭代、自发性和需求等变更调整
(2)对于当前很多项目,在执行的过程中根本不产生文档,那么W模型基本无法适用
(3)使用起来技术复杂度很高,对于需求和设计的测试要求很高,实践起来困难
18.H模型测试流程
(1)测试准备:所有测试执行活动的准备;判断是否到测试就绪点
(2)测试就绪点:测试准入准则,即是否可以开始执行测试的条件
(3)测试执行:具体的执行测试的程序
(4)其他流程
具体开发中的流程,如:设计流程
19.H模型的优点
(1)开发的H模型揭示了软件测试除测试执行外,还有很多工作
(2)软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行
(3)软件测试活动可以尽早准备、尽早执行,具有很强的灵活性
(4)软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的
20.H模型的缺点
(1)管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制
(2)技能要求高: H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小
(3)测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难
(4)对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱。例如:你分了一个小的迭代,但是因为人员技能不足,使得无法有效完成,那么整个项目就会受到很大的干扰
21.软件测试分类
(1)按照开发阶段分类
1.单元测试
又称模块测试,针对软件设计中的最小单位一程序模块, 进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试
单元定义: C中指一个函数,Java 中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单
2.集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分
3.系统测试(system testing)
指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试
系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等
(2)按照是否查看源代码
1.黑盒测试
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据
2.白盒测试
指的是把盒子打开,去研究里面的源代码和程序结构
软件的整体功能和性能进行黑盒测试
软件的源代码采用白盒测试
22.黑盒测试的优点
(1)测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例)
(2)测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关)
(3)从用户的角度进行测试,很容易被接受和理解
(4)有助于暴露任何与规格不一致或者歧异的地方
23.黑盒测试的缺点
(1)不能测试程序内部特定部位
(2)如果程序未执行的代码无法发现
(3)不可能做到穷举测试
24.黑盒测试可以发现的错误
(1)功能不对或功能遗漏
(2)界面错误
(3)数据库访问或者处理错误
(4)性能问题
25.黑盒测试分类
(1)功能测试(function testing)
是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
逻辑功能测试(function testing)
界面测试(UI testing)
易用性测试(usability testing)
安装测试(installation testing)
兼容性测试(compatibility testing)
(2)性能测试(performance testing)
时间性能(事务响应时间等)
空间性能(系统资源消耗)
一般性能测试
稳定性测试中
负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况
压力测试:通过确定-个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别
26.按照是否运行分类
(1)静态测试(static testing)
指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程
(2)动态测试(dynamic testing)
是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
27.验收测试
简单来说,阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试
(1)α测试
Alpha是内测版本,即现在所说的CB,
(2)β测试
Beta 是公测版本,是对所有用户开放的测试版本。
(3)γ测试
Gamma版本,指的是软件版本正式发行的候选版。
28.随机测试
随机测试主要是对被测软件的一些重要功能进行复测,可以结合回归测试(Regressivetesting)-起进行
29.测试用例
定义:测试用例(Test Case)是为特定的目的而设计的-组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工 作进行的依据
30.等价类划分法
我们发现我们用户所有可能输入的数据,划分成了若干份(或者也可以称为子集),然后从每一个子集当中选取少数具有代表性的数据作为测试用例,这种测试用例我们称为“等价类划分法"
31.等价类划分(分类)
(1)有效等价类
指符合《需求规格说明书》,输入合理的数据集合。
(2)无效等价类
指不符合《需求规格说明书》,输入不合理的数据集合
32.等价类思考步骤
(1)先确定有效和无效等价类。
(2)有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值 也要判断)
(3)无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值