【软件工程】--------软件测试

测试目的

测试是程序的执行过程,目的在于发现错误:

一个好的测试用例在于能发现至今未发现的错误

一个成功的测试用例是发现了至今未发现的错误

注:任何程序都会有错误,即使当下可能没错,但是运行环境不同可能会对程序错误识别,产生未知错误,因此一定要多次测试,测试合格后方能投入使用

测试原则

1,尽早不断测试,不要认为程序没有错误
2,测试用例由测试输入数据和对应预期输出两部分(在设计时就要考虑,根据软件需求规格说明书为标准)
3,程序员避免检查自己的程序,测试开发两套人员,且测试人员水平高于开发人员
4,设计测试用例,要考虑不合理的输入条件和合理的输入条件
5,注意测试中的群体现象,错误群集,附近可能也会有错
6,测试要保持测试记录,时刻记录问题

测试流程

在这里插入图片描述
上图所示:
输入测试信息流-------------软件配置,测试配置,测试工具进行测试,对产生的测试结果进行分析,并且将分析结果与预计结果(即软件需求规格说明书的预期结果)进行对比,此时此刻,一方面根据分析生成出错率数据,并进行可靠性分析,对程序的可靠性进行预测,另一方面要对错误进行排错,拍错后,要对程序进行再测试,重复前面的结果分析步骤,对错误进行多次排查,直到没有错误,最后生成改成的软件,测试完成。

怎样测试

测试详细步骤:单元测试→集成测试→确认测试
单元测试:源程序代码+详细设计说明书
集成测试(组装测试):详细设计说明书+概要设计说明书
确认测试(需求测试):需求分析说明书+概要设计说明书
在这里插入图片描述

组装测试:

方式:
一次性组装
优点:时间短,速度快
缺点:容易错,而且不容易找到错误位置
在这里插入图片描述
增殖式组装
优点:每次测试加入 一个模块,测试严格,不易错
缺点:测试时间长,效率低
在这里插入图片描述

需求测试(多用黑盒测试)

在这里插入图片描述
验收测试

用户验收,用户参加测试用例的测试
开发人员,QA(质量保证)人员参加
开发总结报告

系统测试

在确认测试完成后,进行的两种测试:
α测试:模拟现场环境进行,开发者到现场,但是只负责记录情况
β测试:模拟现场环境,开发者不到现场,开发者无法控制现场环境,用户记录错误问题等,比较严格的测试。
α测试和β测试完成后,进行最后一次改进,然后投入使用

扫描二维码关注公众号,回复: 9875270 查看本文章

测试方法

白盒测试结构测试,逻辑驱动

对逻辑路径进行测试,不同测试点,检查程序执行情况,针对模块执行情况,模块独立性,逻辑条件,个例等进行测试

逻辑覆盖(一种白盒测试方法)

不严格的覆盖测试:
语句覆盖:设计多个测试用例,使每个执行语句测试一次,覆盖路径最低
判定覆盖:每个判断的真假值都测试一次,覆盖路径稍好
条件覆盖:每个条件的可能取值都至少执行一次, 覆盖路径教多

严格的覆盖测试:
判定-条件覆盖:找出独立路径(适当转换),每个条件的所有可能取值执行一次,同时判断每个条件的取值至少执行一次。
条件组合覆盖:把条件列出来,然后进行组合,各种情况执行一次
路径覆盖:覆盖程序中所有可能的路径

测试路径的选择

条件测试路径选择:
程序判定多于一个时,形成的分支结构可分为两类:

嵌套型分支结构,有N个判定点,则需要N+1个测试用例
连锁性分支结构,有N个判定节点,需要2的N次方测试用例
在这里插入图片描述
循环测试路径选择:

四中不同类型:
简单循环:0次,1次,2次,多次,比最大次数多一次或少一次,需要进行检查初识值
嵌套循环:按简单模式处理(内层),外推到外层循环,保证内层典型值,外层最小值(简单模式),进行分别测试
连锁循环:无联系,按简单循环处理;若彼此有联系,按嵌套循环处理
非结构循环:不提倡,可以先把其变成结构化流程图
在这里插入图片描述
黑盒测试功能测试,数据驱动

等价类划分:

有效等价类,(输入是合理的值,产生正确的结果)
无效等价类,(输入不合理的值,产生相应错误的处理)

等价类划分原则:

1、输入条件规定了取值范围======== 确定一个有效两个无效
2、输入值为集合=======确定一个有效一个无效
3、输入条件为一个布尔量,则有效无效各一个
4、输入数据为数据的一组值,则需要对每个输入值分别处理
5、输入数据必须遵守的规则,可以建立一个有效(符合规则),多个无效(不同角度违反规则)

边界值分析(数量较多)

边界处往往是错误发生最多的,(进行无效等价类选取)

遵循原则:
1、规定取值范围,则在取值范围附近进行测试
2、输入规定了数据个数,对最小,最大,个数,比最大大一,比最小小一等测试用例。
3、针对规格说明中的每个输出条件使用前面的1和2原则
4、程序规格说明中,输入输出域是个有序的集合,应选取有序集的第一个和最后一个元素作为测试用例

两种方法的区别(一般联合两种方法使用)

1、边界值并非随便选,而是必须位于边界附近
2、边界分析考虑输出条件,有效等价类不考虑

错误推测

列举出可能出现的错误,然后编测试用例进行检查,
注:只能作为补充的测试用例,不能作为主要的,只能用于其他方法的补充

因果图

输入条件有各种组合,有各种输出结果,划分输入输出条件的组合,最终因果图形成判定表,最后写出测试用例

步骤
1、输入输出条件(原因结果),赋予标识符
2、找出其中关系,画出因果图
3、原因与原因,原因与结果之间不可能组合的情况,用记号标明约束限制条件
4、因果图转化判定表
5、判定表的每一列作为依据,设计测试用例
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
(1)两个原因只能有一个成立
(2)ABC三个至少一个必须成立
(3)AB中有一个必须有一个成立
(4)当A出现时,b必须也出现
(5)a是1时,b必须是0 ,b为1时,a的值不定

测试内容在这里插入图片描述

测试步骤

要用一些辅助模块去测试

驱动模块和桩模块(提前设计好)

如果多个功能,要先测各个功能的小模块,最后再进行被测模块整体测试

在这里插入图片描述

测试种类

功能测试: 大部分错误发生在这里
可靠性测试:主要测试系统可靠性,通过平均失效时间等进行测试
强度测试(敏感性测试): 不正常乃至发生故障情况下,
性能测试: 系统响应时间,吞吐量等
恢复测试: 人为模拟故障,检验恢复后,是否能正常使用
启动/停止测试:人为关机开机进行检验数据能否有效保存,属于破坏性测试
配置测试:检查计算机系统内设备或各种资源之间的分配错误,
安全性测试(保密性测试):模拟各种不安全软件的入侵,
可使用性测试:使用的方便性,和合理性,用户使用,满足用户的需求习惯
可支持性测试:修复错误需要最短时间,
安装测试:找安装错误
过程测试:大系统中,按照一定规程,可能出现的问题,操作步骤,按钮,开关顺序等
互连测试:两个或多个系统之间的互连性
兼容测试:同层级版本之间,和与低版本之间是否兼容
容量测试:满负荷测试,能力最高达到的程度,
文档测试:检查文档的正确性,检查修改文档的描述

系统调试

调试的步骤:
1、从错误的表现形式,确定出错位置,
2、研究有关部分程序,找错误原因
3、修改设计和代码,纠错,
4、重复进行暴露错误的原始测试或相关测试,即(进行回归测试)

调试方法:
1、强行排错;使用较多,不需要过多思考,比较省脑筋,效率比较低
2、回溯法调试;返现错误,分析出错征兆,确定位置
3、归纳法调试;大量收集数据,进行归纳整理,从线索分析,通过彼此关系,找出错误,通常用3W1H
在这里插入图片描述
4、演绎法调试,从现有定理出发,提出可能出错的假设,然后对其进行验证排除,剩下就是产生错误原因
在这里插入图片描述

调试原则
1、确定错误性质和位置
2、改正错误,
3、修改后一定要做回归测试,修改时尽量少改动源代码
4、最后完成测试报告

发布了64 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/YaraRen/article/details/89646421