null第 3部分
软件测试技术第 3部分
软件测试技术本部分课程目标本部分课程目标测试技术的基本概念
测试技术的使用技巧
测试技术的应用范围软件测试技术的分类软件测试技术的分类静态黑盒测试
动态黑盒测试
静态白盒测试
动态白盒测试静态与动态静态与动态静态——只是检查和审阅
动态——运行和使用软件黑盒与白盒黑盒与白盒黑盒:软件测试人员只需知道软件要做什么即可,无法看到盒子中是如何运行的。
白盒:软件测试人员可以访问程序员的代码,并通过检查代码来测试,可以看到盒子里面。静态黑盒测试静态黑盒测试对产品说明书进行高级审查
设身处地为用户着想
研究现有的标准和
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
审查和测试同类软件静态黑盒测试静态黑盒测试测试标准:
1、公司惯用语和约定
2、行业要求
3、国家标准
4、硬件和网络标准
5、图形用户界面(GUI)。产品描述属性检查清单产品描述属性检查清单完整
准确
精确
一致
合理
代码无关
可测试产品描述用语检查清单产品描述用语检查清单是否有绝对、肯定和切实认定的叙述,针对其设计用例。
比较模糊的用语。某些、有时·····
功能清单是否有等等、诸如此类、依此类推,无法测试的词汇。
在性能上不确定的说法。
隐藏大量需要说明的功能
如果·····那么·····(没有否则)。
产品说明案例分析产品说明案例分析 ◆ 国产电子软件的巅峰之作,包含12本权威词典、32本专业词典,最新收录原汁原味的美语英汉双解词典:《美国传统词典》; ◆ 强大的网络功能,定时更新最新词库、词霸界面、随时下载功能插件; ◆ 国际顶尖的TTS语音全程技术,彻底实现单词乃至整篇文章的流畅朗读; ◆ 新增“生词本”功能,是您学习英语的好帮手;
智能的即指即译功能,可在任意窗口下实现中英文对译。
静态黑盒测试的小结静态黑盒测试的小结标准
产品描述属性检查
产品描述用语检查动态黑盒测试——边界值分析动态黑盒测试——边界值分析边界值测试的基本原理:
错误更可能出现在输入变量的极值附近.
失效极少由两个(或多个)缺陷的同时发生引起的。
Min、min+、nom、max-和max。动态黑盒测试——边界值测试 动态黑盒测试——边界值测试 如果函数F实现了一个程序,则输入两个变量x1 和 x2会有一些边界:
a≤ x1≤ b
c ≤ x2≤ d
区间[a,b]和[c,d]是x1 和 x2的值域。动态黑盒测试——边界值分析动态黑盒测试——边界值分析动态黑盒测试——边界值分析动态黑盒测试——边界值分析动态黑盒测试——边界值分析动态黑盒测试——边界值分析边界的数据类型可能是:
数值 速度
字符 地址
位置 尺寸
数量
动态黑盒测试——边界值分析动态黑盒测试——边界值分析边界值类型的描述:
第一个/最后一个 最小值/最大值
开始/完成 超过/在内
空/满 最短/最长
最大/最小 最高/最低
相邻/最远动态黑盒测试——次边界值分析动态黑盒测试——次边界值分析次边界条件:
有些边界条件在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查。这样的边界条件称为次边界条件或者内部边界条件。如2的乘方和ASCⅡ。软件中的2的乘方软件中的2的乘方部分的ASCⅡ制表部分的ASCⅡ制表动态黑盒测试——边界值分析动态黑盒测试——边界值分析边界值分析的特点和局限性
对于一个n变量函数,边界值分析会产生4n+1个测试用例。
边界值的取值取决于变量本身的性质。
边界值分析对布尔变量没有什么意义。
边界值分析假设变量是完全独立的。动态黑盒测试——健壮性测试动态黑盒测试——健壮性测试健壮性测试是边界值分析的一种简单扩展动态黑盒测试—最坏情况测试动态黑盒测试—最坏情况测试最坏情况测试用例动态黑盒测试—
健壮最坏情况测试动态黑盒测试—
健壮最坏情况测试健壮最坏情况测试用例动态黑盒测试——练习动态黑盒测试——练习1、写出三角形问题的边界值分析测试用例
2、写出NextDate函数的最坏情况测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例写出佣金问题的输出
边界值分析测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例动态黑盒测试—
佣金问题的测试用例边界值测试的小结边界值测试的小结这类测试方法是基于一种假设:输入的变量是真正独立的。
这些方法的区别是:正常值与健壮值;单缺陷与多缺陷。动态黑盒测试—等价类测试 动态黑盒测试—等价类测试 等价分配:是指分步骤地把过多(无限)的测试案例减小到同样有效的小范围的过程。
等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试。
在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。这些组是等价区间。动态黑盒测试—等价类测试动态黑盒测试—等价类测试弱一般等价类测试用例动态黑盒测试—等价类测试动态黑盒测试—等价类测试强一般等价类测试用例
动态黑盒测试—等价类测试动态黑盒测试—等价类测试弱健壮等价类测试用例
动态黑盒测试—等价类测试动态黑盒测试—等价类测试强健壮等价类测试用例
动态黑盒测试—等价类测试动态黑盒测试—等价类测试写出三角形问题的输入等价类和输出等价类
写出NextDate函数的输入等价类
写出佣金问题的输入和输出等价类
Windows文件名可以包含除了、/:*?“〈〉。文件名长度是1-255个字符。写出文件名创建测试用例。
三角形问题—弱强一般等价类测试用例三角形问题—弱强一般等价类测试用例三角形问题—弱健壮等价类测试用例三角形问题—弱健壮等价类测试用例三角形问题—强健壮等价类测试用例三角形问题—强健壮等价类测试用例等价类测试的小结等价类测试的小结 等价类测试的弱形式不如对应的强形式的测试全面。
如果错误条件非常重要,则进行健壮性的测试是合适的。
如果输入数据以离散值区间和集合定义,则等价类测试是合适的。
在发现合适的等价类关系之前,可能需要进行多次尝试。动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试在所有功能测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。
决策表很适合描述不同条件集合下采取行动的若干组合的情况。
动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试M1={月份:每月有30天};
M2={月份:每月有31天};
M3={月份:此月是2月};
D1={日期:1≤日期≤28};
D2={日期:日期=29};
D3={日期:日期=30};
D4={日期:日期=31};
Y1={年:年是闰年};
Y2={年:年不是闰年}。
动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试M1={月份:每月有30天};
M2={月份:每月有31天};
M3={月份:此月是2月};
D1={日期:1≤日期≤28};
D2={日期:日期=29};
D3={日期:日期=30};
D4={日期:日期=31};
Y1={年:年=2000};
Y2={年:年是闰年};
Y3={年:年是平年}。
动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试M1={月份:每月有30天};
M2={月份:每月有31天,12月除外};
M3={月份:此月是12月};
M4={月份:此月是2月};
D1={日期:1≤日期≤27};
D2={日期:日期=28};
D3={日期:日期=29}
D4={日期:日期=30};
D5={日期:日期=31};
Y1={年:年是闰年};
Y2={年:年不是闰年}。
动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试动态黑盒测试—
基于决策表的测试写出NextDate函数的决策表测试用例基于决策表的测试的小结 基于决策表的测试的小结 决策表技术适用于具有以下特征的应用程序:
If-then-else逻辑很突出
输入变量之间存在逻辑关系。
涉及输入变量子集的计算。
输入与输出之间存在因果关系。
很高的圈复杂度。
迭代会有所帮助,第一次不见得会成功。动态黑盒测试—基于正交阵列动态黑盒测试—基于正交阵列动态黑盒测试—基于正交阵列动态黑盒测试—基于正交阵列Web浏览器(Netscape 6.2、IE6.0、Opera 4.0)
插件(无、RealPlayer、MediaPlayer)
应用服务器(IIS、Apache、Netscape Enterprise)
操作系统(Windows2000、Windows NT、Linux)动态黑盒测试—基于正交阵列动态黑盒测试—基于正交阵列动态黑盒测试—其他动态黑盒测试—其他即席测试
随机测试
半随机测试
探测性测试动态黑盒测试的小结动态黑盒测试的小结边界值分析法
等价类测试
决策表测试
正交阵列测试
随机类测试静态白盒测试静态白盒测试 静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。
好处:
尽早发现软件缺陷。
为黑盒测试员提供思路。静态白盒测试静态白盒测试审查是正式、严格、具有深度的技术评审,以便尽可能准确地确定问题之所在。
审查过程的目的:
在软件开发过程中尽可能早地发现问题。
确保对需要重做部分达成一致意见。
验证任何重做部分满足预先定义的准则。静态白盒测试静态白盒测试一次审查一般需要5人至7人,这些角色是:
主审员:协调本次审查并主持讨论。
责任人:负责被审查的产品。
讲解员:在审查会上讲解被审查的产品。
审查员:审查产品。
记录员:记录在审查会议上讨论的问题。
经理:责任人的管理者。静态白盒测试静态白盒测试选择要审查的代码模块的准则:
对于正确操作产品起关键作用的模块。
复杂度较高的模块
与过去发生错误率较高的模块功能类似的模块。
相对较新的或缺乏经验的软件程序师编写的模块。静态白盒测试静态白盒测试为什么要坚持编码标准和规范?
可靠性。
可读性/维护性
移植性
静态白盒测试静态白盒测试大多数计算机语言和信息技术的国家和国际标准可以通过以下途径获得:
国际工程
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
(IEC):www.iec.org
国际标准化组织(ISO):www.iso.ch
信息技术标准国家委员会(NCITS):www.ncits.org
计算机械联合会(ACM):www.acm.org
电子电气工程学会(IEEE):www.ieee.org静态白盒测试静态白盒测试通用代码审查清单
数据引用错误;
数据声明错误;
计算错误;
比较错误;
控制流程错误;
子程序参数错误;
输入/输出错误;
其他检查。
静态白盒测试静态白盒测试数据引用错误
是否引用了未初始化的变量?
数组和字符串的下标是整数值吗?
是否在应该使用常量的地方使用了变量?
变量是否被赋予不同类型的值?
为引用的指针分配内存了吗?
一个数据结构是否在多个函数或者子程序中引用,在每一个引用中明确定义结构了吗?静态白盒测试静态白盒测试数据声明错误
所有变量都赋予正确的长度和类型了吗?
变量是否在声明的同时进行了初始化?
存在声明过、但从未引用或者只引用过一次的变量吗?
在特定模块中所有变量都显示声明了吗?静态白盒测试静态白盒测试计算错误
计算中是否使用了不同数据类型的变量?
计算中是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?
在数值计算过程中是否可能出现溢出?
除数/模是否可能为零?
变量的值是否超过有意义的范围?
对于包含多个操作数的表达式,求值的次序是否混乱,运算优先级对吗?静态白盒测试静态白盒测试比较错误
比较得正确吗?
存在分数或者浮点值之间的比较吗?如果有,精确问题会影响比较吗?
每一个逻辑表达式都正确表达了吗?逻辑计算如期进行了吗?求值次序有疑问吗?
逻辑表达式的操作是逻辑值吗?静态白盒测试静态白盒测试控制流程错误
如果程序包含begin…end和 do …while 等语句组,end是否对应?
程序、模块、子程序和循环能否终止?
可能存在永远不停的循环吗?
循环可能从不执行吗?
静态白盒测试静态白盒测试子程序参数错误
子程序接受的参数类型和大小与调用代码发送的匹配吗?
如果子程序有多个入口点,引用的参数是否与当前入口点没有关联?
常量是否当作形参传递,意外在子程序中改动?
静态白盒测试静态白盒测试输入/输出错误
软件是否严格遵守外部设备读写数据的专用格式?
文件或者外部不存在或者未准备好的错误情况有处理吗?
软件是否处理外部设备未连接、不可用,或者读写过程中存储空间占满等情况?静态白盒测试静态白盒测试同行审查
仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行。保证审查的高效率,注意审查的4个关键要素:
确定问题;遵守规则;
审查准备;编写报告。静态白盒测试的小结静态白盒测试的小结代码评审
同行审查
检查单动态白盒测试动态白盒测试 动态白盒测试是指利用查看代码功能和实现方式得到的信息来确定哪些要测试,哪些不要测试,如何开展测试。
动态白盒测试的另一个常用名称是结构测试,因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试。动态白盒测试——路径测试动态白盒测试——路径测试 结构性测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义。
由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量。动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试动态白盒测试——路径测试定义
DD-路径是程序图中的一条链,使得:
情况1:由一个节点组成,内度=0。
情况2:由一个节点组成,外度=0。
情况3:由一个节点组成,内度≥2或外度≥2。
情况4:由一个节点组成,内度=1并且外度=1。
情况5:长度≥1的最大链。动态白盒测试——路径测试动态白盒测试——路径测试结构性测试覆盖指标结构性测试覆盖指标语句覆盖:选择足够的测试用例是程序中每个可执行语句至少执行一次
判定覆盖(分枝覆盖) :选择足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值
条件覆盖:设计若干测试用例,执行被测程序后是每个判定中每个条件的可能值至少满足一次结构性测试覆盖指标结构性测试覆盖指标判定/条件覆盖:判定/条件覆盖要求设计足够的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次并且每个判定本身的结果(真/假)也至少出现一次
条件组合覆盖:执行足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,显然满足条件组合覆盖的测试用例一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”
路径覆盖:设计足够的测试用例要求覆盖程序中所有可能的路径语句覆盖语句覆盖1 PRINT “Hello you”
2 PRINT “The date is:”;Date&
3 PRINT “The time is:”;Time&
4 END
判断覆盖(分枝覆盖)判断覆盖(分枝覆盖)1 PRINT “Hello you”
2 IF Date=“01-01-2000”THEN
3 PRINT “Happy New Year”
4 END IF
5 PRINT “The date is:”;Date
6 PRINT “The time is:”;Time
7 END
条件覆盖条件覆盖1 PRINT “Hello you”
2 IF Date=“01-01-2000”AND Time=“00:00:00”THEN
3 PRINT “Happy New Year”
4 END IF
5 PRINT “The date is:”;Date
6 PRINT “The time is:”;Time
7 END动态白盒测试—基路径测试动态白盒测试—基路径测试动态白盒测试——基路径测试动态白盒测试——基路径测试动态白盒测试——循环测试动态白盒测试——循环测试简单循环
其循环的最大次数为n
测试:
跳过整个循环
只循环一次
循环两次
循环m次其中m
本文档为【SoftwareTestingOverview3】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。