软件测试复习

软件测试目的:
从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地
实现了用户的要求,确立人们对软件质量的信心。

定义:使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

软件测试在各阶段的工作:
项目规划阶段:负责整个测试阶段的监控。
需求分析阶段:确定测试需求分析,制定系统测试计划。测试需求分析是指分析产品生存周期中测试
所需的资源、配置、各阶段评审通过的标准等。
概要设计和详细设计阶段:制定集成测试计划和单元测试计划。
程序编写阶段:开发相应的测试代码或测试脚本。
测试阶段:实施测试,并提交相应的测试报告。

静态方法:
一、评审
作用:提高质量、降低成本、加快进度、提升能力
评审按正式化程度逐渐增强顺序:临时评审、轮查、结对评审、走查、小组评审、正式审查
类型:需求评审、概要设计评审、详细设计评审、数据库设计评审、测试评审
二、静态分析
主要方法:代码检查,包括桌面检查、代码走查、代码审查、静态结构分析等,主要检查代码和流图设计的一致性、代码结构的合理性、代码编写的标准性、可读性、代码的逻辑表达的正确性等方面。
桌面检查:是程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误的过程。
代码走查:由程序员和测试员组成的审查小组,通过逻辑运行程序,发现问题。
代码审查:由程序员和测试员组成的审查小组,通过阅读、讨论、分析技术对程序进行静态分析的过程。
静态结构分析:主要是以图形的方式表现程序的内部结构。

白盒测试:结构测试,逻辑驱动测试。
测试者完全知道程序的结构和处理算法,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按照预定要求正确工作。
常用覆盖标准:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖

黑盒测试:功能测试,数据驱动测试
不考虑程序的内部结构和处理过程,在程序接口进行的测试,只检查程序功能是否能按规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息。
方法:等价类划分、边界值分析、错误推测法、因果图法
一个测试用例尽可能覆盖多个有效等价类,只能覆盖一个无效等价类。
当必须考虑输入条件的各种组合时,可采用因果图法,最终生成的是判定表
黑盒测试工具:功能测试有TeamTest、Robot、QACenter,性能测试有LoadRunner、WebLoad、WebStress

功能测试:是基于产品功能说明书,在已知产品所应具有的功能上,从用户角度来进行功能验证,以确认每个功能是否都能正常使用、是否实现了产品规格说明书的要求、是否能适当地接收输入数据而产生正确的输出结果。

非功能测试
性能测试:检验软件是否达到需求规格说明书中
规定的各类性能指标,并满足一些性能相关的约
束和限制条件。

压力测试:在保证系统不崩溃的前提下,用于评价系统超过
所描述的需求或资源限制时的情况。

容量测试:采用特定的手段,检测系统能够承载处理
任务的极限值所进行的测试工作。

健壮性测试:用于测试系统抵御因“设计缺陷”带来的错误的
能力,一是容错性测试,二是恢复性测试。

安全性测试:检查系统对非法侵入的防范能力。

可靠性测试:是在给被测试系统加载一定业务压力的情况
下,使系统运行一段时间,以此来测试系统是否稳定。

恢复性测试:检查系统的容错能力;当系统出错
时,能否在指定时间间隔内修正错误并重新启动
系统。

协议测试:一种黑盒测试,它按照协议标淮,通
过控制观察被测协议实现的外部行为,对其进行
评价。

兼容性测试:指检查软件之间是否能够正确地进行交互和共享
信息。

安装测试:确保软件在正常情况和异常情况下,
(例如,进行首次安装、升级、完整的或自定义
的安装)都能进行安装的测试。

可用性测试:是对于用户友好性的测试,是指在设计
过程中被用来改善易用性的一系列方法。

配置测试:验证系统在不同的系统配置下能否正确工作,这
些配置包括:软件、硬件和网络等。

文档测试:针对系统提交给用户的文档进行验证,目标是验 证软件文档是否正确记录系统开发全过程的技术
细节。

GUI测试:检查待测试软件的人机界面,通常要检查的部件包括
界面布局与色彩、输入输出格式、程度流程和拼写等
,以发现其中的人为因素和易用性的问题。


软件缺陷的特点
雪崩效应:缺陷数目会随着软件开发过程的深入而不断地增加
成本放大效应:不同阶段发现和修复缺陷的成本不同,后期会急剧增加
集群效应:测试过程中发现的缺陷在测试对象的不同功能模块分布,测试对象20%模块中可以
发现80%的缺陷(二八原则)。

基于缺陷分类的测试规则:
规则1:发现的缺陷的数量说明不了软件的质量。
规则2:缺陷要分类统计。
规则3:不要指望找出软件中所有的缺陷。
规则4:只依赖缺陷的趋势也可能有问题。


软件开发是一个自顶向下、逐步细化的过程。
软件测试则是自底向上、逐步集成的过程。
软件测试过程:
一、测试计划阶段:测试方案的制定、测试策略的制定、测试计划的制定、测试的组织
二、测试设计阶段:建立测试配置、测试用例设计
三、测试执行阶段:创建测试任务、执行测试任务、处理软件问题报告
四、测试监控阶段:贯穿于整个软件测试生命周期,是持续进行的活动,记录测试过程中实际的测试设计进度、测试执行进度、测试覆盖率、测试风险等状态和结果;分析测试过程中记录的状态和结果,并与测试计划进行比较;修正测试计划以满足当前的测试状态和结果;检查测试执行的状态和结果,以评估是否可以结束测试执行
任务。(记录、分析、修正、检查、评估)
五、测试结束阶段:对测试结果进行统计和分析

单元测试:从程序的内部结构出发设计测试用例,对每一个程序模块进行,以确保每个模块能正常工作通常采用白盒测试,有时候也用黑盒测试。
测试重点:模块接口、重要路径、边界条件、局部数据结构、出错处理。
自顶向下、自底向上、孤立测试策略
驱动模块(driver)— 模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据。
存根模块(stub)— 又称为假模块,用于模拟那些由被测模块所调用的下属模块功能。
驱动模块比存根模块容易设计

集成测试:在单元测试基础之上,将各个模块组装起来进行的测试,以黑盒法为主
目的:是发现与接口有关的模块之间的问题。
非增量式:独立,后组成整体进行测试
增量式:将待测模块与已测模块集合连接起来进行测试。
增量式分为自顶向下和自底向上:
自顶向下,优点:较早地验证主要的控制和判断点,减少了测试驱动程序开发和维护的费用。缺点:桩模块的开发和维护费用大。
自底向上,不需要存根驱动,需要编写驱动程序。优点:减少了桩模块的工作量,容易对错误进行定位。
缺点:直到最后一个模块加进去之后才能看到整个系统的框架,驱动模块的设计工作量大
自底而上—自顶而下集成: “三明治”集成测试
• 对含有读操作的子系统采用自底而上。
• 对含有写操作的子系统采用自顶而下。

系统测试:针对系统中各个组成部分进行的综合性检验,为了验证开发的软件是否能与系统的其他部分(如硬件、数据库及操作人员)协调工作,属于黑盒测试范畴,不再对软件的源代码进行分析和测试。
系统测试的目标:不是要找出软件故障,而是要证明系统的性能。
系统开发人员和系统开发组织不能进行系统测试。
方法:功能测试和14种非功能性测试

验收测试(确认测试):验证系统的功能、性能等特性是否符合需求规格说明。
有正式和非正式的验收测试,非正式验收测试是由内部测试人员组织执行的测试
Alpha和beta测试都是一种验收测试,前者是用户在开发者的指导下完成,后者由软件的最终用户们在一个或多个客户场所进行。

回归测试:不是一个测试阶段,而是一种可以用于单元测试、集成测试、系统测试和验收测试各个测试过程的测试技术。
回归测试是为了保证对软件修改后,没有引人新的错误而重复进行的测试。


使用测试工具的目的:提高软件测试的质量和工作效率
手工测试:
优点:简单
缺点:可能引入人为的输入错误,尤其在数据量大的情况下;另外大量重复性的手工测试可能成 本较高;没有办法对组件进行隔离的测试,从而导致发现问题和解决问题的成本都太高。

自动化测试:把以人为驱动的测试行为转化为机器执行的一种过程。
优点:能执行更多、更频繁的测试;能执行一些采用手动测试比较困难或不可能进行的测试;能更好地利用资源;能将任务自动化;具有一致性和可重复性的特点,而且测试更客观,提高了软件的信任度。

自动化测试的过程:自动化测试需求分析、测试计划、自动化测试框架的搭建、测试用例设计、测试、评估。

按照自动化测试的成熟度模型,自动化测试可被划分为5个级别:
一、录制和回放
二、录制、编辑和回放
三、编程和回放:测试脚本语言
四、数据驱动的测试:测试数据真实
五、关键字驱动的自动化测试:测试用例从工具中分离

自动化测试的局限:
不能完全代替人工测试、对软件质量的依赖性较大、不能保证100%的测试覆盖率、需要更长的时间去分析和隔离所发现的缺陷。


测试管理工具:
TestDirector、TestManager、TrackRecord/ QADirector、TestCenter、开源工具有TestLink,Bugfree、Bugzilla

功能测试工具:
IBM Rational Robot、WinRunner、QTP、IBM Rational Functional Tester

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值