《软件工程》-软件测试

【前言】
软件测试的目的和原则
软件测试的过程和策略
软件测试用例设计
软件测试种类
程序调试
【内容】
1.软件测试目的
(1)测试是程序的执行过程,目的在于发现错误;
(2)一个好的测试用例在于能发现至今未发现的错误;
(3)一个成功的测试是发现了至今未发现的错误的测试。
2.软件测试的原则
(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
(2)测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
(3)程序员应避免检查自己的程序。
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
3.测试信息流
在这里插入图片描述
输入:软件配置、测试配置、测试工具
输出:测试结果分析、排错(调试)、修正后的文档再测试
4.测试过程
是依相反顺序安排的自底向上,逐步集成的过程。
在这里插入图片描述
5.测试用例设计
(1)黑盒测试和白盒测试
黑盒测试(功能测试):这种方法是把测试对象看做一个黑盒子,检查程序的功能是否符合它的功能说明。
白盒测试(结构测试):此方法把测试对象看做一个透明的盒子,对程序所有逻辑路径进行测试。
(2)逻辑覆盖
它属于白盒测试,逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。
1)语句覆盖
语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
2)判定覆盖
判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。

3)条件覆盖
条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。

4)判定-条件覆盖
判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。

5)条件组合覆盖
条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
6)路径覆盖
路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。
6.软件测试的策略
测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
在这里插入图片描述
(1)单元测试
又称模块测试,是针对软件设计的最小单位-程序模块,进行正确性检验的测试工作。
单元测试的内容
在这里插入图片描述
单元测试的步骤
测试模块时,同时要考虑他和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。
在这里插入图片描述
部分常见错误清单
(一)、模块接口检查表
1)模块接受的输入参数个数与模块的变元个数是否一致?
2)参数与变元的属性是否匹配
3)参数与变元所用的单位是否一致?
4)传递给被调用模块的变元的数目是否等于那个模块的参数的数目?
5)传递给被调用模块的变元属性和参数的属性是否一致?
6)传递给被调用模块的变元的单位和该模块参数的单位是否一致?
7)传递给内部函数的变元属性、数目和次序是否正确?
8)是否修改了知识作为输入用的变元?
9)全程变量的定义在各个模块中是否一致?
10)有没有把常数当作变量来传递?
(二)、完成外部输入/输出时的检查表
1)文件属性是否正确?
2)OPEN语句是否正确?
3)格式说明与输入/输出语句给出的信息是否一致?
4)缓冲区容量与记录长度是否一致?
5)在进行读写操作之前是否打开了文件?
6)对结束文件条件的判断和处理是否正确?
7)对输入/输出错误的处理是否正确?
8)有没有输出信息中有正文错误?
(三)、模块局部数据结构检查表
1)不正确或不一致说明?
2)错误的初始值或错误的缺省值?
3)变量名拼写错或缩写错?
4)不相容的数据类型?
5)下溢、上溢或时地址错误?
(2)组装测试
通常,把模块组装成为系统的方式有两种:
1)一次性组装方式
在这里插入图片描述
2)增殖式组装方式
a.自顶向下的增殖方式
b.自底向上的增殖方式
c.混合增殖式测试
(3)确认测试
又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。
在这里插入图片描述
1)进行有效性测试(黑盒测试)
有效性测试就是在模拟的环境(可能就是开发的环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。
2)软件配置复查
软件配置复查的目的是保证;
软件配置的所有成分都齐全;
各方面的质量都符合要求;
具有维护阶段所必需的细节;
而且已经编排好分类的目录。
(4)系统测试
系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
7.测试种类
软件测试是由一系列不同的测试组成。主要目的是对以计算机为基础的系统进行充分的测试。
(1)功能测试
功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。
(2)可靠性测试
如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。
(3)强度测试
强度测试是要检查在系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试。
(4)性能测试
性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。
(5)恢复测试
恢复测试是要证实在克服硬件故障(包括掉电、硬件或网络出错等)后,系统能否正常地继续进行工作,并不对系统造成任何损害。
(6)启动/停止测试
这类测试的目的是验证在机器启动及关机阶段,软件系统正确处理的能力。
(7)配置测试
这类测试是要检查计算机系统内各个设备或各种资源之间的相互联结和功能分配中的错误。
(8)安全性测试
安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。
(9)可使用性测试
可使用性测试主要从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。
(10)可支持性测试
这类测试是要验证系统的支持策略对于公司与用户方面是否切实可行。
(11)安装测试
安装测试的目的不是找软件错误,而是找安装错误 。
(12)过程测试
在一些大型的系统中,部分工作由软件自动完成,其它工作则需由各种人员,终端用户等,按一定规格同计算机配合,靠人工来完成。
(13)互连测试
互联测试是要验证两个或多个不同的系统之间的互连性 。
(14)兼容性测试
这类测试主要想验证软件产品在不同版本之间的兼容性 。
(15)容量测试
容量测试是要检验系统的能力最高能达到什么程度。
在使系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
(16)文档测试
这种测试是检查用文档(如用户手册)的清晰性和精确性。
8.调试
软件调试时在进行了成功的测试之后才开始的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。
调试的步骤
(1)从错误的外部表现形式入手,确定程序中出错位置;
(2)研究有关部分的程序,找出错误的内在原因;
(3)修改设计和代码,以排除这个错误;
(4)重复进行暴露了这个错误的原始测试或某些有关测试。
几种主要的调试方法
调试的关键在于推断程序内部的错误位置及原因。可以采用以下方法:
(1)强行排错
这种调试方法目前使用较多,效率较低。它不需要过多的思考,比较省脑筋。
(2)回溯法调试
这是在小程序中常用的一种有效的调试方法。
一旦发现了错误,人们先分析错误征兆,确定最先发现“症状”的位置。
(3)归纳法调试
归纳法调试的基本思想是:从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误。
收集数据的方法:
常以3W1H形式组织可用的数据:
“What”列出一般现象;
“Where”说明发现现象的地点;
“When”列出现象发生时所有已知情况;
“How”说明现象的范围和量级。
在这里插入图片描述
(4)演绎法调试
演绎法是一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。
在这里插入图片描述
9.调试原则
在调试方面,许多原则本质上是心理学方面的问题。调试由两部分组成,调试原则也分成两组。
(1)确定错误的性质和位置的原则
用头脑去分析思考与错误征兆有关的信息;
避开死胡同;
只把调试工具当做辅助手段来使用;
避免用试探法,最多只能把它当做最后手段。
(2)修改错误的原则
在出现错误的地方,很可能还有别的错误;
当心修正一个错误的同时有可能会引入新的错误。
10.测试分析报告
1.引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2.测试计划执行情况
2.1测试项目
2.2测试机构和人员
2.3测试结果
3.软件需求测试结论
4.评价
4.1软件能力
4.2缺陷和限制
4.3建议
4.4测试结论

猜你喜欢

转载自blog.csdn.net/frj0260/article/details/85014455