HNUST软件测试复习重点

1.软件测试正反观点

Bill Hetzel观点:正
测试是试图证明软件是正确的
优点:能够引导程序按照预期的设想运行而建立足够的信心。
缺点:难以发现程序隐藏的错误。

Myers观点:反
测试不应该着眼于验证软件是工作的。相反,应该用逆向思维去发现尽可能多的错误。
测试是为了发现错误而执行一个程序或系统的过程,不是为了证明软件无错。
优点:能够发现不易发现的问题,使测试更具意义。
缺点:可能使测试人员容易忽视软件产品的某些基本需求或客户的实际需求,测试活动可能会存在一定的随意性和盲目

利弊之分:人类的活动是有高度的目的性的。如果测试的目的是为了证明软件没有错误,人们就会在测试的时候,刻意选择一些易于通过的测试数据,不利于找出软件的问题。相反如果测试的目的是为了证明软件的错误,人们就会刻意的选择一些难以通过的测试的测试数据,这样的测试结果更有意义,对软件的提高有更大的帮助。

一方面通过测试来保证质量,另一方面又要改进测试方法和软件测试的效率,软件测试就是在这两者之间的平衡

2.软件测试和开发的关系

测试活动在开发之后,测试与开发同步进行,最后再进行总的测试;没有开发就没有测试,开发提供测试的对象;软件开发和软件测试都是软件生命周期中的重要组成部分;不同的软件开发模型中,测试所处位置不同。

3.软件测试与质量保证的关系

软件测试和软件质量是对立统一的,软件测试既是找bug的,又能保证软件质量。对软件进行充分的测试才能够有效的保证软件质量,对软件产品进行充分测试,找出其中的缺陷。

4.软件测试的定义

软件就是一系列的活动,这些活动是为了评估一个程序或软件系统的特性或能力,并确定其是否达到了预期结果。①验证软件功能执行的正确性②目的是验证软件是否符合事先定义的要求③测试活动是以需求定义、软件测试的结果为依据

5.软件测试和质量保证的关系和区别

既包含又交叉的关系。质量保证是一项管理工作,侧重于对流程的评审和监控,而测试是一项技术性的工作,侧重对产品进行评估和验证

6.软件缺陷的定义

①从产品内部看,软件缺陷是软件产品开发和维护过程中所存在的错误、毛病等各种问题。
②从产品外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

6.1什么是软件缺陷

①软件未实现产品说明书要求的功能。
② 软件出现了产品说明书提到不应该的错误。
③ 软件实现了产品说明书未提到的功能。
④软件未实现产品说明书未提到但应实现的目标。
⑤软件难以理解、不易使用、运行缓慢等问题。

7.软件缺陷的判定标准

1)软件未达到需求说明书的功能
2)软件出现了需求说明书指明不会出现错误的地方
3)软件的功能超出需求说明书知名的范围
4)软件出现了需求说明书虽未指明,而应该达到的目标
5)软件测试人员认为软件难以使用,效率低下,或者用户体验不好

8.软件缺陷产生的原因

1)需求解释、记录或定义错误
2)设计文档说明存在错误或者拼写错误
3)编码说明、程序代码有误
4)硬件或者软件系统上存在错误

9.软件测试的分类

1)按测试层次分类
①底层测试:单元测试
高可靠性的单元是组成可靠系统的坚实基础,单元测试在质量保证活动中举足轻重。

②接口层次:集成测试,完成系统内单元之间接口和单元基层为一个完整系统的测试
在单元测试的基础上,按照设计要求不断进行集成而进行的相应测试,目的是发现单元之间的接口问题,如接口参数类型不匹配、接口数据在传输中丢失、数据误差不断基类等问题。
一次性集成方式。首先对各个单元分别进行测试,然后再把所有的单元组装在以前进行测试,最终得到要求的软件系统。
渐增式集成方式。首先对某两三个单元进行测试,然后将这些单元逐步集成为较大的系统。

③系统层次:系统测试,针对已集成的软件系统进行测试

④用户/业务层次:验收测试,验证是否为用户真正所需的产品特性,验收测试关注用户环境、用户数据,而且用户也参与测试过程中
验收测试的目的是向业务用户表明系统能够像预定要求那样工作,验证软件的功能和性能及其他特性是否与用户的要求一致。

2)按测试目的分类

①功能测试:也称正确性测试,验证每个功能是否按照事先定义的要求那样正常工作。
②性能测试:评测与分析系统在不同负载(如并非用户、连接数、请求数据量等)条件下的系统运行情况、性能指标等。
③安全性测试:测试系统在应对非授权的内部/外部访问、故意损坏时的系统防护能力。
④兼容性测试:测试在系统不同运行环境(如网络、硬件、第三方软件等)环境下的实际表现,也包括共存、互操作的验证。
⑤可靠性测试:检验系统是否能保持长期稳定、正常地运行,如确定正常运行时间,即平均失效时间。可靠性测试包括强壮性测试和异常处理测试。可恢复性测试也归为可靠性测试,侧重在系统崩溃、硬件故障或其他灾难发生之后,重新恢复系统和数据的能力。
⑥易用性测试:也称为用户体验测试,检查软件是否容易理解、使用方便和流畅、界面美观、交互友好等。
⑦回归测试:为保证软件中新的变化(如增加的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。满足用户需求的原有功能不应该因为代码变化而出现任何新的问题。

3)按照测试方法或测试方式分类

①根据测试过程中被测试软件是否被执行,软件测试可分为静态测试或动态测试
动态测试是在程序或系统运行时进行测试
静态测试无须运行程序或系统,如需求评审、设计评审、代码评审和代码分析

V(Verificantion **验证)&V(Validation 有效性确认)**软件测试可以看作针对软件产品(包括阶段性成功、半成品)的验证和有效性确认“两类活动构成统一体。

(1) 验证Verification 即检验软件是否已正确地实现了产品规格说明书所定义地系统功能和特性。验证过程提供证据表明软件相关产品与所有生命周期活动地要求(如正确性、完整性、一致性和准确性等)相一致,相当于以让眼见产品设计规格说明书为标准进行软件测试的活动。验证是否满足生命周期过程中的标准、实践和约定,验证判断每个生命周期活动的是否已经完成,以及是否以启动其他生命周期活动建立一个基准。

(2)有效性确认Validation 要能保证所生产的软件可追溯到用户需求的一系列活动。确认过程提供证据表明软件是否真正满足客户的需求,一切从客户出发,理解客户的需求,对软件需求定义、设计进行怀疑,发现需求定义和茶农设计中的问题。这主要通过各种软件评审活动来实现,包括让客户参加评审、测试活动。

(3)区别
验证是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产需求;但设计规格说明书本身可能就存在问题,有效性测试就是检验产品功能的有效性,即是否满足用户的真正需求。

②根据是否针对系统的内部结构和具体实现算法来完成测试,软件测试可分为白盒测试和黑盒测试
白盒测试需要了解系统的内部结构和具体实现来完成测试
基本准则:
(1) 在执行测试时,先考虑代码行和分支被覆盖;
(2) 再考虑完成所有逻辑条件分别为真值(true)和假值(false)的测试;
(3) 如果有更好的质量要求,测试对象流程图中所有独立路径至少被运行一次;
(4) 检查内部数据结果,注意上下文的影响,以确保其测试的有效性
黑盒测试把测试对象看成一个整体,关注其外部的输入/输出、周围条件和限制

③按照测试是否由软件工具来完成测试工作,软件测试可分为手工测试和自动化测试
手工测试是指通过测试人员手工操作来完成软件测试工作的方法
自动化测试是通过计算机运行测试工具和测试脚本自动完成软件测试工作的方法。

④精准测试:结合代码依赖性分析、测试覆盖分析,基于受影响的代码进行精准的范围划定而进行最优化的回归测试。

⑤模糊测试:基于模糊控制器生成数据或基于数据变异算法进行的半随机的测试,比随机测试更有效率。

⑥蜕变测试:一种用来缓解“测试准则问题”的软件测试技术,给出可能缺乏预期输出的原始测试用例,一个或多个用来验证系统或等待实现函数的必要属性(称蜕变关系)的后续测试用例可以被构造出来。

⑦基于模型的测试:先基于需求分析构建出测试模型,然后基于模型生成相应的测试数据或测试用例,该测试是比较彻底的自动化测试。
主动测试:测试人员主动向被测试对象发送请求或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。(不适用产品在线测试)
被动测试:软件产品运行在实际环境中,测试人员不干预产品的运行,而是被动的监控产品的运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出的数据。(适用性能测试和在线监控)
在这里插入图片描述
在这里插入图片描述

10.怎样理解软件质量和软件缺陷的对立统一关系

软件质量是产品或服务所满足明示或暗示需求能力的固有特性和特征的集合。缺陷则指系统所需要实现的某种功能的失效或违背。所以从定义上来讲,两者相互对立。通过发现缺陷可以提高产品质量,而找出缺陷发生的根本原因,或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的问题,将有效提高后续产品质量。从这个角度来讲,两者相互统一。
对立:缺陷越多,表明质量越差,
统一:找到的缺陷越多,从而修复缺陷,提高软件质量

11.代码评审

1)代码走查
设计者和程序员引导小组部分成员通读编码,其他成员提出问题并对有关技术、风格、可能的错误、是否有违背开发标准/规范的地方进行评论。
2)正式会议审查
用逐步检查源代码中有无逻辑或语法错误的办法来检查故障。会议工作有
① 编程组阐明程序逻辑,此过程中可由程序员或测试小组成员提出问题,追踪缺陷是否存在。
② 利用通用缺陷检查表来分析讨论。主持人负责引导讨论沿着建设性方向进行,其他人集中注意力发现缺陷
③ 记录所有已确定的缺陷,会议后形成《评审报告》。报告中必须写明错误的位置、类型、影响范围和原因等,评审报告需要交给程序编写者并同时存档。
④ 审查小组根据代码审查的错误记录来评估程序,决定是否还需要重新进行审议。

12.驱动程序和桩程序

驱动程序:也称为驱动模块,用以模拟被测模块的上级模块,能够调用被测模块。在测试过程中,驱动模块接收测试数据,调用被测模块并把相关的数据传送给被测模块。
桩程序:也称桩模块,用以模拟被测模块工作过程中所调用的下层模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,如打印入口和返回,以便于检查被测模块与其下级模块的接口。

13.回归测试

当发现一些严重的缺陷需要修正时,会构造一个新的软件包或新的软件补丁包;测试不仅要验证被修复的软件缺陷是否真正被解决,而且要保证以前所有运行正常的功能依旧保持正常,而不要受到这次修改的影响。回归测试就是为了发现回归缺陷而进行的测试。

目的: 验证缺陷得到了正确的修复,同时对系统的变更,没有影响以前的功能

14.性能测试

使用特定的测试工具来模拟超长的数据量或其他各种负载,检测系统的各项性能指标是否合格的过程。

15.安全性测试

安全性测试就是全面检验软件在需求规格说明规定的防止危险状态措施的有效性和在每一个危险状态下的反应,对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案进行针对性测试,并对安全性关键的软件单元和软件部件单独进行加强的测试,以确定其满足安全性需求。软件安全性测试一般为两种:
(1) 安全功能测试:数据机密性、完整性、可用性、不可否认性、身份验证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理等
(2) 安全漏洞测试:从攻击者的角度,以发现软件的安全漏洞为目的。安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷或弱点。

16.兼容性测试

软件可靠性测试,也称为软件可靠性评估,指根据软件系统可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征量。
兼容性包括软件兼容性、数据共享兼容性、硬件兼容性三个方面。软件兼容性测试是指验证软件之间是否正确地交互和共享信息,包括同步共享、异步共享,还包括本地交互、远程通信交互。

17.可靠性测试

可靠性是产品在规定的条件下和规定的事件内完成规定功能的能力,他的概率度量称为可靠度。软件的可靠性与软件缺陷有关,也与系统输入和系统使用有关。软件可靠性是软件系统在规定时间内及规定的环境条件下,完成规定功能的能力。可靠性主要包含以下三个要素:

(1) 规定的时间。软件可靠性只是提心在其运行阶段,所以将“运行时间”作为“规定的时间”的度量。
(2) 规定的环境条件。环境条件指软件的运行环境,涉及软件系统运行时所需的各种支持要素,如硬件、操作系统、其他支持软件、输入数据格式和范围以及操作规程等。不同环境下软件的可靠性是不同的。规定的环境条件主要是描述软件系统运行时计算机的配置情况以及对输入数据的要求,并假定其他一切因素都是理想的。
(3) 规定的功能。软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行剖面会有区别,则调用的子模块就不同(即程序路径选择不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。

18.易用性测试

易用性概念
软件易用性是软件质量体系中一个重要的质量特性。
1.在各个标准体系中都有关于软件易用性的定义描述。
(1)关于易用性的描述都是围绕着“用户对于产品的使用感受”这个中心展开的。
(2)易用性体现了用户在使用过程中所实际感受到的产品质量。
2.软件的易用性是由软件的人机交互界面来集中体现。
(1)界面的布局设计、操作逻辑与流程、交互信息的显示、帮助和索引文档…用户对于这些元素学习、理解、操作的容易程度就是软件产品的易用性。
评价软件的易用性通常有一下七个要素
标准和规范、直观性、实用性、正确性、舒适性、灵活性、一致性

19.边界值分析法

边界值分析法(Boundary Value Analysis,BVA)的测试用例来自于等价类的边界,是等价类划分法的补充。根据边界值划分法,等价类分析法中的测试数据不是选取等价类中的典型值或任意值,而是应当选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据。

使用边界值分析法设计测试用例,首先应该确定它的边界。

20.等价类划分法

等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的。

21.判断表方法

以表格的形式来组合多个条件,通过判定表可以综合考虑多个条件的输入和输出结果之间的关系
条件桩: 所有可能出现的条件,例如上例中,有两个条件:是否欠费、是否开机
动作桩: 所有可能出现的值,例如上例中,有四个值:欠费、不欠费、开机、不开机
条件项: 这是条件桩中的一个或者多个

等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的。

21.判断表方法

以表格的形式来组合多个条件,通过判定表可以综合考虑多个条件的输入和输出结果之间的关系
条件桩: 所有可能出现的条件,例如上例中,有两个条件:是否欠费、是否开机
动作桩: 所有可能出现的值,例如上例中,有四个值:欠费、不欠费、开机、不开机
条件项: 这是条件桩中的一个或者多个
动作项: 这是动作桩中的一个或者多个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值