/**这只是一个学渣期末突击复习,大佬忽略即可
感谢各位大佬的帖子博客,就当回报社会。希望帮助到后来者
加粗为重点
**/
一、总述
为啥会出现,软件测试,因为开发的软件总是有问题
软件测试:为了发现错误而执行的过程。(不能证明程序无错)
需求分析 | 确定测试步骤,确定需求是否恰当,生成功能测试用例。确定需求是否恰当 |
设计 | 确定设计信息是否足够,准备结构和功能的测试机用例,确定设计的一致性 |
编码 | 为单元测试产生结构和功能测试的测试用例。 |
测试系统 | 测试应用系统 |
安装 | 系统投入生产 |
维护 | 修改缺陷并重新测试 |
软件测试模型:
v模型:在分析设计完成后进行,单元—>集成->系统—>验收测试
W模型:在V的基础上,各开发阶段同步进行测试
H模型:将测试独立出来
软件测试分类:
(从不同的角度有不同的结果)
测试方式:静态测试和动态测试
测试实施组织:开发方(α),用户(β),第三方(独立测试)
测试方法:白盒测试,黑盒测试
测试过程:单元测试,集成测试,验收测试,验收测试
(此外还有个按测试目的分的,有功能健壮性,性能等,比较多就不列举了,我学渣记不住)
二、测试基本技术
白盒测试:
(顾名思义,容易理解,白盒我们可看到它的内部构造,对我们来说内部结构是透明的,根据内部结构去测试)
包括静态测试,程序插桩技术,逻辑覆盖,基本路径测试法
逻辑覆盖:(1)语句覆盖:让每条语句至少执行一次
(2)判定覆盖:每个判断的真分支和假分支至少执行一次
(3)条件覆盖:让每个判定的每个条件每个可能取值至少执行一次
(4)条件/判定覆盖:让每个判断的每个条件的所有可能取值和每个可能的判断结果至少执行一次
(相当于2+3,求各个判断的所有可能条件取值组合至少执行一次)
(5)条件组合覆盖:让每个判断的所有可能条件取值组合至少执行一次
基本路径测试法:
程序环路复杂性计算:
(1)程序环路复杂性即为 控制流图的区域数
(2)E为控制流图边数,N为图的结点数,V(G)=E-N+2
(3)P为判定结点数,V(G)=P+1
黑盒测试:
(顾名思义,黑色的盒子我们看不到内部盒子,通过输入输出去检验)
一般分为功能测试和非功能测试
功能测测试:等价类划分,边界值分析法,错误推测法,因果图法,判定表驱动
非功能测试:强度测试,性能测试,安全测试,安装与卸载测试,配指测试,兼容性测试等
三、测试用例设计
测试用例的的特性:有效性,避免盲目性,可维护性,可复用性
测试阶段 | 测试类型 | 执行人员 |
单元测试 | 模块功能测试 | 开发人员、开发+测试结合 |
集成测试 | 接口,路径,部分功能测试 | 开发+测试,测试 |
系统测试 | 功能 ,兼容,性能,用户界面,安全性,强度,可靠性等测试 | 测试 |
验收测试 | 文档测试,测试相关文档 | 测试,可能包含用户 |
四、软件测试过程
单元测试:
(1)对软件设计最小单元-模块进行测试
( 2)主要针对语法,格式,逻辑
(3)主要任务:接口测试,局部数据结构测试,独立路径执行路经测试,各种错误处理,边界条件测试
(常用方法有人工静态检查,设计测试用例比较结果)
(4)通常由开发设计人员来完成
集成测试:
(1)在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试
(2)主要任务: 将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失;
将各个子功能组合起来,检查能否达到预期要求的各项功能;
一个模块的功能是否会对另一个模块的功能产生不利的影响;
全局数据结构是否有问题,会不会被异常修改;
单个模块的误差积累起来,是否被放大,从而达到不可接受的
(3)实施方案:非增式测试,增式测试(自顶向下,自底向上)
(4)主以黑盒,辅以白盒
系统测试
(1)通过集成测试的软件系统,与硬件、外设等组合进行测试
(2)主要采用黑盒测试
验收测试
(1)验证软件功能的正确性和需求的符合性
(2)验收测试人员未在测试组协助下,由用户代表执行
回归测试
(1)定义:软件系统被修改、扩充后重新进行的测试。
(2)保证对软件所作修改没有引入新的错误而重复进行的测试
软件缺陷定义域与种类
定义:
功能异常,使用不便,结构未做良好规划,提供功能不充分,互动不良好,性能不佳,为做好错误处理,边界错误,计算错误
一些简单题
1.不属于软件测试缺陷的是: 软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题
2.测试用例三状态:通过,未通过,未进行测试
3.软件缺陷修复代价最高的是:发布阶段
4.软件缺陷修复代价最最低的是:需求分析阶段
5.测试用例设计 ≠测试输入数据的设计
6测试用例要高效,不是越多越好
7.追求测试通常不能一步到位
8.增量集成测试:自顶向下,自底向上,混合增量测试方法
9.下列不属于回归测试的目的是:
A 检查软件的修改达到预定的目的
B 检查软件的修改不会影响软件的其他功能的正确性
C 检查改动不会带来不可预料到行为或另外的错误
D 检查修改的测试用例是否完整
10.软件测试类型按开发阶段分为:单元测试,集成测试,确认测试,系统测试,验收测试
11.单元测试通常由开发人员执行
12.经过α测试和修改的软件产品成为β版本
13.系统测试中,测试人员根据 需求分析说明书 实际测试用例
14.与测试用例无关的文档是项目开发计划
15.测试的关键问题是 如何选择测试用例
16.软件测试用例 主要输入数据和 预期输出结果组成
17.为了提高测试雄安率,正确的做法是选择发现错误可能性大的数据作为测试用例,
18.属于测试文档的有:测试计划,测试用例,测试报告
19.逻辑覆盖标准中,查错能力最强的是 条件组合覆盖,最弱的是语句覆盖
20.使用白盒测试时,确定测试数据应根据 程序内部逻辑 和指定的覆盖标准
21.白盒和黑盒的主要区别是:白盒测试侧重程序结构,黑盒测试侧重于功能
22.黑盒测试中,着重检查输入条件组合的方法是 因果图
23.在边界值分析中,等价类中的等价值 通常不用来做数据测试
24.测试程序时,不可能遍历所有可能输入数据,而只能选择一个子集进行测测试,最好选择的方法是 划分等价类
25.软件测试的原则有:
(1)程序最好别让编写该程序的人员自己测试
(2)所有测试是建立在用户需求之上
(3)注意测试中的群集现象(2--8原则)
26.简述增式集成测试的自顶向上和自顶向下两种测试方法
自顶向下的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发桩模块。在集成过程中,可以采用宽度优先或深度优先的策略向下推进。
自底向上的集成是从最底层模块(即叶子结点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。在从下而上的集成测试环境中,需对那些未经集成测试的模块开发驱动模块。
27.自动化测试的优点和与面临的问题
优点:产生可靠系统,改进测试工作质量,提高测试工作效率
问题:无法进行主观判断,在不同的系统平台或硬件平台可能会受影响,对测试人员的要求比较高