信息系统测试课件信息系统测试第05讲

上传人:E**** 文档编号:90657230 上传时间:2019-06-14 格式:PPT 页数:49 大小:265.50KB
返回 下载 相关 举报
信息系统测试课件信息系统测试第05讲_第1页
第1页 / 共49页
信息系统测试课件信息系统测试第05讲_第2页
第2页 / 共49页
信息系统测试课件信息系统测试第05讲_第3页
第3页 / 共49页
信息系统测试课件信息系统测试第05讲_第4页
第4页 / 共49页
信息系统测试课件信息系统测试第05讲_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《信息系统测试课件信息系统测试第05讲》由会员分享,可在线阅读,更多相关《信息系统测试课件信息系统测试第05讲(49页珍藏版)》请在金锄头文库上搜索。

1、第3章 软件测试技术,3.1结构化系统测试技术 3.1.1人工测试技术 3.1.2黑盒测试技术 3.1.3白盒测试技术 3.1.4静态分析技术 3.1.5动态测试技术 3.2面向对象系统测试技术 3.2.1面向对象测试基础 3.2.2面向对象测试内容,3.1结构化系统测试技术,3.1.1人工测试技术 人工测试是一种不依赖于计算机的白盒测试技术。 人工测试通过人工手段对代码进行审查和运行,主要包括软件审查、代码审查和代码走查。,3.1.1人工测试技术,早在20世纪70年代Weinberg在计算机程序设计心理学一书中就指出采用人工方法阅读程序的必要性。经验表明,人工测试能相当有效地查找错误。 因此

2、,为了有效的保证软件质量,在一个软件的开发过程中应至少使用一种或多种人工测试技术。,人工测试的主要方法:,1.软件审查(software review) 主要进行文档审查。 2.代码审查(code inspections) 主要进行代码审查。 3.人工走查(walkthroughs) 主要进行代码审查和人工运行程序。,人工测试技术的重要性:,经验表明,使用人工测试方法平均能够发现接近40%的逻辑设计和编码错误。,人工测试技术的重要性:,由于人工测试技术在检查某些编码错误时,有着特殊的功效,它常常能够找出机器测试不易发现的错误。人工测试至今仍是一种行之有效的测试方法。,1.代码审查(code i

3、nspections),代码审查的对象: 源程序代码。 代码审查的方式: 召开代码审查会。,代码审查会,参加人员: 45人 主持人:1人 被审查代码的程序员:12人 其它人员(领域或程序专家):23人 会议时间:23个小时,代码审查的步骤:,制定计划; 预审; 会议准备; 召开代码审查会; 返工; 复审。,1)会议准备,在会议开始之前,组织者把被审查的程序清单和设计规范分发给小组的其他成员,要求他们在会议之前熟悉这些材料。,2)召开会议,1请程序员逐个语句地讲述程序的逻辑结构。其间大家提出问题加以追究,以断定是否存在错误。 2根据常见程序错误检查清单分析程序。 3组织者要确保讨论有效地进行,并

4、使参加者集中精力发现错误,而不是改正错误。,3)返工,1.把已查出的错误清单交给程序员。 2.组织者对问题的修复时间和优先级就应做出安排, 3.程序员根据上述安排返工(修复代码)。,4)复审,在这些错误得到修复之后,需要重新召开代码审查会或进行单独审查来复审这个程序。,代码审查的目的:,发现的问题主要有三种: 遗漏 功能遗漏。 多余 冗余代码。 错误 数据错误,逻辑错误。,常见程序错误检查清单:,数据引用错误; 数据说明错误; 计算错误; 比较错误; 控制流错误; 接口错误; 输入/输出错误; 其它检查。,1)数据引用错误,l 用了未赋值的变量吗? l 数组下标越界吗? l 有定义未引用问题吗

5、? l 指针运算正确吗? l 字符串越界吗? l 地址或下标运算中有“差1”错误吗?,用了未赋值的变量吗?,Dimension *expression (Input ,数组下标越界吗?,const int LUNITNAME = 10, BUFFSIZE = 256, MAXUNIT = 10; class Input char bufBUFFSIZE; int pos; int last; void skipSpace (); public: int getline (); char getToken (Dimension* ,数组下标越界吗?,char Input: :getToken (

6、Dimension*,有定义未引用问题吗?,Dimension *expression (Input ,指针运算正确吗?,public: static const char *unitname; Length (double d = 0.0, int plain = 0 ) value = d; virtual Dimension* clone (double v, int plain = 0) return new Length (v, plain); virtual const char* getBase () return ,2)数据说明错误,l 所有变量都被说明了吗? l 缺省属性使用

7、得正确吗? l 数组与字符串的初始化正确吗? l 变量的长度、类型、存贮类指定得正确吗? l 初始化与存贮类一致吗? l 有相似的变量名吗?,所有变量都被说明了吗?,Dimension *term (Input ,缺省属性使用得正确吗?,char uptolow (chat low) char up; /If(low=97 ,3)计算错误,l 有对非算术变量进行运算吗? l 有混合运算吗? l 有不同长度的变量之间的运算吗? l 运算的中间结果有无上溢或下溢? l 有用零作除数的情况吗? l 变量值是否超过有效范围? l 运算符优先级用得是否正确? l 整数除法运算是否正确?,运算的中间结果有

8、无上溢或下溢? 有用零作除数的情况吗? 整数除法运算是否正确?,Dimension* Time: : operator/ (Dimension* d) if (d-getBase ( ) = = ,4)比较错误,l 有不同类型变量之间的比较吗? l 有混合类型变量的比较吗? l 比较关系正确吗? l 布尔表达式正确吗? l 运算符优先级使用的是否正确? l 能否正确处理布尔表达式?,有不同类型变量之间的比较吗?,char uptolow (chat low) char up; float bottom=97.0,top=122.0; If(low=bottom ,比较关系正确吗?,char u

9、ptolow (chat low) char up; /If(low=97 ,5)控制流错误,l 多路转移越界吗? l 每一个循环是否终止? l 程序能否终止? l 由于入口条件的原因,是否有循环不被执行的情况? l 可能的“循环失败”处理是否正确? l 有“差1”迭代错误吗? l 有非穷举的判断吗?,每一个循环是否终止?, int Count =0; for (;) buf =getline(); count+; if(count=100) exit(1); ,6)接口错误,l 实参与形参的个数是否相同? l 实参与形参的属性是否匹配? l 实参与形参的单位是否匹配? l 调用库函数所用的参

10、数的个数、属性和次序是否正确? l 引用了与当前入口无关的参数吗? l 只读变量被修改了吗? l 全程变量在各模块中定义一致吗?,实参与形参的个数是否相同?,定义: int max(int i,int j) If(Ij)return i; else return j; 引用: Result=Max(10,20,300); ,7)输入/输出错误,l 文件属性是否正确? l 文件打开是否正确? l 格式说明与I/O语句是否一致? l 缓冲区大小与记录大小是否匹配? l 使用了未打开的文件吗? l 文件结束条件处理了吗? l I/O错误处理了吗?,文件属性是否正确?,#include main()

11、( char c; /FILE *fp; int fd; /fp = fopen(“my_file.txt”,”r”); fd = open(“my_file.txt”,”r”); ,文件打开是否正确?,#include main() ( char c; FILE *fp; While(fp = fopen(“my_file.txt”,”r”)!=NULL); ,8)其它检查,l 是否遗漏了功能? l 有错误警告和提示信息吗?,2.人工走查(walkthroughs),人工走查和代码审查的区别在于,人工走查要通过人工的方式模拟运行程序,并检查程序运行的结果与预期结果的差异。,2.人工走查(wa

12、lkthroughs),代码走查的对象: 源程序代码。 代码走查的方式: 召开代码走查会。,人工走查会,参加人员: 45人 主持人:1人 被审查代码的程序员:12人 测试员:1人 其它人员(领域或程序专家):12人 会议时间:23个小时,人工走查的步骤:,制定计划; 预审; 会议准备; 召开代码走查会; 返工; 复审。,1)会议准备,在会议开始之前,组织者把被审查的程序清单和设计规范分发给小组的其他成员,要求他们在会议之前熟悉这些材料。,2)召开会议,1请程序员逐个语句地讲述程序的逻辑结构。其间大家提出问题加以追究,以断定是否存在错误。 2根据常见程序错误检查清单分析程序。 3. 由测试员根据

13、程序员的说明,对原程序进行人工运行,并与其他与会者一起讨论和比较结果。 4组织者要确保讨论有效地进行,并使参加者集中精力发现错误,而不是改正错误。,3)返工,1.把已查出的错误清单交给程序员。 2.组织者对问题的修复时间和优先级就应做出安排, 3.程序员根据上述安排返工(修复代码)。,4)复审,在这些错误得到修复之后,需要重新召开代码审查会或进行单独审查来复审这个程序。,人工走查的目的:,通过人工模拟运行程序的方式,检查程序运行结果与预期结果的差别,试图发现程序中潜在的错误或缺陷。,3.代码审查和人工走查的区别,相同之处: 1.代码审查和人工走查技术都需要召开一个审查会,在会中由一组人员来阅读程序。 2.两者也都要求参加者作一些预备工作。 3.会议的目的是发现错误,但不寻找纠错的方法。,3.代码审查和人工走查的区别,不同之处: 代码审查只需人工阅读程序。 人工走查除人工阅读程序外,还要人工运行程序,比较预期结果与实际结果的区别。,本讲到此结束,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号