付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5讲 白盒测试-I回顾3-1等价类划分:根据需求说明将输入范围细分,再从分出的每一个区域内选取一个有代表性的数据等价类划分步骤:先考虑输入数据的数据类型,再考虑数据范围,画出示意图,区分等价类,为每一个等价类编号,然后从一个等价类中选择测试数据构造测试用例设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类设计一个新的测试用例,使其只覆盖一个无效等价类回顾3-2边界值分析:是等价类划分的补充,选择等价类边界的测试用例,既适用于输入条件边界,也适用于输出域的边界边界值测试,一般选取边界值和正好超出边界值一个单位的值来测试因果图法:适合输入条件比较多的情况,考虑所有输入条件的排列组合因果
2、图法步骤:先找出所有输入、输出条件,并编号,再分析输入条件之间的关系,画出输入条件的排列组合,然后编写测试用例回顾3-3决策表法:又称判定表驱动法,能把复杂的问题按各种可能的情况一一列举出来,简单易理解,也可避免遗漏,但不能表达重复执行的操作,如循环结构错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法 ,注意积累与分享 目标理解白盒测试概念了解白盒测试工具了解白盒测试方法掌握静态白盒测试方法为什么要进行白盒测试 不是所有软件错误的根源都可以追溯到某个唯一原因,一个bug 常常是由多个因素共同导致的,如下图所示: 假设此时开发工作已结束,程序送交到测试
3、组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的执行路径没有同时经过x=0和y=5/x进行测试,显然测试工作似乎非常完善,测试用例覆盖了所有执行语句,也没有被 0 除的错误发生。白盒测试称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作 把测试对象看做一个透明的盒子基于一个应用代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件与黑盒测试的区别:“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试,把测试对象看做一个黑盒子
4、白盒测试工具白盒测试方法静态测试和动态测试 逻辑覆盖法基本路径测试法静态白盒测试 静态白盒测试在不执行程序的情况下有条理地仔细审查软件设计、体系结构及代码,从而找出软件缺陷的过程方法:代码检查法静态结构分析法静态质量度量法好处:尽早发现软件缺陷为黑盒测试员在接受软件测试时设计和应用测试用例提供思路程序代码检查检查目标:产生正确性、清晰性、规范性、一致性和高效性的合格代码检查范围:业务逻辑、算法效率、代码风格,编程规则检查方法:互查(Peer-To-Peer)、走查(Walk-Through)、会议评审(Inspection)代码检查规则代码评审中选择要检查的代码模块的准则:对于正确操作产品起关
5、键作用的模块复杂度较高的模块与过去发生错误率较高的模块功能类似的模块相对较新的或缺乏经验的软件程序师编写的模块代码标准和规范坚持编码标准和规范的理由:可靠性。可读性/维护性移植性编码标准和规范的组成:标题标准解释说明示例大多数计算机语言和信息技术的国家和国际标准:国际工程协议(IEC): 国际标准化组织(ISO): 信息技术标准国家委员会(NCITS): 计算机械联合会(ACM): 电子电气工程学会(IEEE): 代码检查清单数据引用错误。数据声明错误。计算错误。比较错误。控制流程错误。子程序参数错误。输入/输出错误。其他检查数据引用错误是否引用了未初始化的变量数组和字符串的下标是否是整数值是
6、否在应该使用常量的地方使用了变量变量是否被赋予不同类型的值是否为引用的指针分配内存了一个数据结构是否在多个函数或者子程序中引用,在每一个引用中是否明确定义结构数据声明错误所有变量是否都赋予正确的长度和类型变量是否在声明的同时进行了初始化,是否正确初始化并与其类型一致是否存在声明过、但从未引用或者只引用过一次的变量在特定模块中所有变量是否都显式声明,如果没有,是否可以理解为该变量与更高级别的模块共享计算错误计算中是否使用了不同数据类型的变量,例如将整数与浮点数相加计算中是否了解和考虑到编译器对类型或长度不一致的变量的转换规则,例TC的int和VC的int在数值计算过程中是否可能出现溢出除数/模是
7、否可能为零变量的值是否超过有意义的范围,例如,可能性的计算结果是否小于0%或者大于100%对于包含多个操作数的表达式,求值的次序是否混乱,运算优先级是否正确,是否需要加括号使其清晰比较错误比较是否正确是否存在分数或者浮点值之间的比较,如果有,精确问题是否会影响比较每一个逻辑表达式是否都正确表达,逻辑计算是否如期进行,求值次序是否有疑问逻辑表达式的操作是否是逻辑值,例如,是否包含整数值的整型变量用于逻辑计算中控制流程错误如果程序包含beginend和 do while 等语句组,end是否对应程序、模块、子程序和循环能否终止是否是死循环循环是否可能从不执行如果程序包含像switch.case语句
8、这样的多个分支,索引变量是否会超出可能的分支数目,如果超出,该情况能否正确处理子程序参数错误程序接受的参数类型和大小与调用代码发送的是否匹配如果子程序有多个入口点,引用的参数是否与当前入口点没有关联常量是否当作形参传递,意外在子程序中改动子程序是否更改了仅作为输入值的参数每一个参数的单位是否与相应的形参匹配输入/输出错误软件是否严格遵守外部设备读写数据的专用格式文件或者外部不存在或者未准备好的错误情况有处理软件是否处理外部设备未连接、不可用,或者读写过程中存储空间占满等情况同行审查仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行。保证审查的高效率,注意审查的4个关键要素:确定
9、问题遵守规则审查准备编写报告静态白盒测试示例2-1#includemax(float x,float y)float z; z=xy?x:y;return z;main() float a,b; int c; scanf(“%f,%f”,&a,&b); c=max(a,b); printf(“Max is %dn”,c);子函数没有返回值的类型精度丢失程序没有注释。注释是程序中很重要的一部分,一般注释语句最好占到代码总函数的1/51/4。注释包括程序的基本信息如作者、版本号、创建日期等,以及主要功能模块的含义。建议修改:1.main函数没有返回值类型和参数列表,建议改为void main(vo
10、id);2.1行代码只定义一个变量。建议将”float a,b;”分为两行定义;3.程序适当加些空行,使程序结构更清晰。静态白盒测试示例2-2#includevoid iszero(int m)if(m!=0) printf(“%d”,m);else printf(“%d”,l);void main(void) int a5; int i=0; printf(“请输入5个整数”); for(i=0;i=5;i+) scanf(“%d”,&ai); c=iszero(ai); 数组访问越界程序没有注释。建议修改:程序适当加些空行,使程序结构更清晰。ifelse语句没有缩进for循环体内语句没有缩进总结静态白盒测试被证实是早期发现软件缺陷最有效的方法,但这是一项需要大量准备工作才能有成效的任务,但许多研究表明花费的时间与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 早产儿护理学习平台APP
- 第18课《在长江源头各拉丹冬》课件
- 医师查房制度
- 护理部全年工作展望
- 湖南省邵阳市新宁县乡镇联考2024-2025学年八年级下学期期末物理试题
- 2026年医疗AI算法开发保密协议
- 护理法律法规与政策
- 处理旧东西协议书范本
- 2026年诉讼核查合同(1篇)
- 早产儿照护教程手机版
- 砌砖墩子施工方案
- 设计成果保密保证措施
- 城市消防站建设标准建标152-2021doc
- 铝合金模板技术规程
- 钢筋混凝土管配筋图
- 四川省中小流域暴雨洪水计算
- 铜及铜合金的焊接
- 聚甲醛工艺简介课件
- 《公共基础知识》2023年事业单位考试湖南省长沙市宁乡县全真模拟试题含解析
- 四年级国测模拟卷(B卷)
- YY/T 1845-2022矫形外科用手术导板通用要求
评论
0/150
提交评论