欢迎来到天天文库
浏览记录
ID:45379726
大小:4.20 MB
页数:97页
时间:2019-11-12
《软件测试过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四部分软件测试过程4.1软件测试的复杂性分析4.2软件测试方法与策略4.3单元测试4.4集成测试4.5系统测试4.6测试后的调试4.1软件测试的复杂性分析1、无法对程序进行完全测试(1)测试所需要的输入量太大(2)测试的输出结果太多(3)软件实现的途径太多(4)软件规格说明没有一个客观标准2、测试无法显示潜在的软件缺陷和故障——通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。3、存在的故障现象与发现的故障数量成正比——结论:应当对故障集中的程序段进行重点测试Return软件测试的复杂性分析(续)4、不能修复所有的软件故障——原因:没有足够的进行修复;
2、修复的风险较大;不值得修复;可不算做故障的一些缺陷;“杀虫剂现象”。——结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复。5、软件测试的代价——工作原则:就是如何将无边无际的可能性减小到一个可以控制的范围,以及如何针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,使得测试工作量不多也不少,既能达到测试的目的,又能较为经济。软件测试的复杂性分析(续)软件缺陷故障数量测试工作量测试中测试后测试费用遗漏缺陷数目优化测试量图4-1测试工作量和软件缺陷数量之间的关系4.2软件测试方法与策略4.2.1静态测试与动态测试4.2.2黑盒测试
3、与白盒测试4.2.3软件测试过程Return软件测试策略什么是软件测试策略?——是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。软件测试策略包含的特征:(1)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。(2)不同的测试技术适用于不同的时间点。(3)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。(4)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。软件测试充分性准则对任何软件都存在有限的充分测试集合。如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。
4、这一特性称为单调性。即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为非复合性。即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为非分解性。软件测试的充分性应该与软件的需求和软件的实现都相关。软件越复杂,需要的测试数据就越多。这一特性称为复杂性。测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为回报递减率。4.2.1静态测试与动态测试1、静态测试静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行
5、,也可以借助软件工具自动进行。静态测试方法也可利用计算机作为对被测程序进行特性分析的工具,但与人工测试方式有着根本区别。另一方面,因它并不真正运行被测程序,只进行特性分析,这又与动态方法不同。所以,静态方法常常称为“分析”,静态测试是对被测程序进行特性分析方法的总称。静态测试与动态测试(续)代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面。代码检查的具体内容:变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等。代码检查的优点:在实际使用中,代码检查比动态
6、测试更有效率,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷;代码检查看到的是问题本身而非征兆。代码检查的缺点:非常耗费时间,而且代码检查需要知识和经验的积累。静态测试与动态测试(续)静态结构分析静态结构分析主要是以图形的方式表现程序的内部结构。例如函数调用关系图、函数内部控制流图。其中:——函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;——控制流图显示一个函数的逻辑结构,由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。静态测试与动态测试(续)代码质量度量软件质量包括六个方面:功能性、可靠性、易用
7、性、效率、可维护性和可移植性。软件的质量是软件属性的各种标准度量的组合。针对软件的可维护性,目前业界主要存在三种度量参数:Line复杂度、Halstead复杂度和McCabe复杂度。其中Line复杂度以代码的行数作为计算的基准。Halstead以程序中使用到的运算符与运算元数量作为计数目标(直接测量指标),然后可以据以计算出程序容量、工作量等。McCabe复杂度一般称为圈复杂度,它将软件的流程图转化为有向图,然后以图论来衡量软件的质量。静态测试与动态测试(续)静态测试阶段的任务:(1)检查算法的逻辑正确性。(2)检
此文档下载收益归作者所有