-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx

上传人:王** 文档编号:855683 上传时间:2024-01-30 格式:DOCX 页数:10 大小:24.14KB
下载 相关 举报
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第1页
第1页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第2页
第2页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第3页
第3页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第4页
第4页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第5页
第5页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第6页
第6页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第7页
第7页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第8页
第8页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第9页
第9页 / 共10页
-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
资源描述

《-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx》由会员分享,可在线阅读,更多相关《-软件测试课件第3章软件测试方法静态测试与动态测试PPT内容-.docx(10页珍藏版)》请在优知文库上搜索。

1、”软件测试课件第3章软件测试方法静态测试与动态测试PPT内容”1、第3章软件测试方法(一)静态测试与动态测试3静态测试技术概述静态测试是不执行被分析的程序,而是通过对模块源代码进行研读、找出其中的错误或可疑之处,收集一些度量数据。静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等。静态测试的查错和分析功能是其他方法所不能替代的,可以采纳人工或者计算机帮助静态测试手段进行检测。代码检查主要检查代码和设计的全都性,代码对标准的遵循,可读性,代码规律表达正确性,代码结构合理性等方面;发觉程序中担心全、不明确和模糊部分,找出程序中不行移植部分;发觉违反程序编写风格问题。其中包括变量

2、检查、命名和类型审查、程序规律审查、程序语法检查和程序2、结构检查等内容。包括桌面检查、代码审查和走查等3.1静态测试技术概述桌面检查桌面检查是一种传统的检查方法,由程序员自己检查编写的程序。由于程序员熟识自己的程序和程序设计风格,桌面检查由程序员自己进行可以节约许多检查时间。桌面检查需要首先运行拼写检查器、语法检查器、句法检查器等进行字面检查,现在大多数集成开发环境集成了这些相应的工具关心程序员在编写代码的同时就留意这些可能存在的缺陷。代码检查3.1静态测试技术概述Eg:第28行:返回数据类型应当为int,写成了Int;第33行:缺少标点符号,丁;第37行:返回的关键字return拼写错误;

3、第41行:关键字this”,写成了that3、。代码检查3.1静态测试技术概述桌面检查代码审查代码审查是由若干程序员和测试人员组成一个审查小组,通过阅读、争论和争议,对程序进行静态分析的过程。代码审查分为两步:1.小组负责人提前把设计规格说明书、掌握流程图、程序文本以及有关要求、规范等分发给小组成员,作为审查的依据;2.小组成员在充分阅读这些材料后,召开程序审查会,在会上首先由程序员逐行讲解程序规律,在此过程中程序员或其他小组成员可以提出问题绽开争论,审查错误是否存在。代码检查3.1静态测试技术概述重要性激活结果检查项总计命名重要Y通过命名规章是否与所采纳的规范保持全都?是否遵循了最小长度最多

4、信息原则?重要Y通过has/can/i4、S前缀的函数是否返回布尔型?解释重要Y通过解释是否较清楚且必要?重要Y通过简单的分支流程是否已经被解释?Y不通过距离较远的是否已经被解释?Y不通过非通用变量是否全部被解释?重要Y不通过函数是否已经有文档解释?(功能、输入、返回及其他可选)特别用法是否被解释?声明、空白、缩进Y通过每行是否只声明白一个变量?(特殊是那些可能出错的类型)重要Y通过变量是否已经在定义的同时初始化?重要Y通过类属性是否都执行了初始化?Y通过代码段落是否被合适地以空行分隔?Y通过是否合理地使用了空格使程序更清楚?Y通过代码行长度是否在要求之内?Y通过折行是否恰当?代码检查3.1静

5、态测试技术概述Java代码审查检查表语句5、/功能的分布/规模Y通过包含复合语句的是否成对消失并符合规范?Y不通过是否给单个的循环、条件语句也加了?Y通过if/if-else/if-elseif-else/do-while/switch-case语句的格式是否符合规范?Y通过单个变量是否只做单个用途?重要Y通过单行是否只有单个功能?(不要使用;进行多行合并)重要Y通过单个函数是否执行了单个功能并与其命名相符?Y通过操作符和操作符的应用是否复合规范?规模重要Y通过单个函数不超过规定行数?重要Y通过缩进层数是否不超过规定?重要Y通过是否已经消退了全部警告?重要Y通过常数变量是否声明为final?重

6、要Y不通过对象使用前是否进行了检查?重6、要Y不通过局部对象变量使用后是否被复位为NULL?重要Y通过对数组的访问是否是平安的?(合法的index取值为0,MAX_SIZE-1)。重要Y通过是否确认没有同名变量局部重复定义问题?Y通过程序中是否只使用了简洁的表达式?重要Y通过是否已经用()使操作符优先级明确化?重要Y通过全部推断是否都使用了(常量二变量)的形式?是否消退了流程悬挂?重要Y不通过是否每个if-elseif-else语句都有最终一个else以确保处理了全集?重要Y通过是否每个switch-case语句都有最终一个default以确保处理了全集?Y通过for循环是否都使用了包含下限不

7、包含上限的形式?(k=0;kMAX)重要7、XML标记书写是否完整,字符串的拼写是否正确?Y不通过对于流操作代码的特别捕获是否有finally操作以关闭流对象?退出代码段时是否对临时对象做了释放处理?重要Y通过对浮点数值的相等推断是否是恰当的?(严禁使用=直接推断)代码检查3.1静态测试技术概述Java代码审查检查表牢靠性(函数)重要Y通过入口对象是否都被进行了推断不为空?重要Y通过入口数据的合法范围是否都被进行了推断?(尤其是数组)重要Y通过是否对有特别抛出的方法都执行了try.catch爱护?重要Y通过是否函数的全部分支都有返回值?重要Y通过int的返回值是否合理?(负值为失败,非负值胜利

8、)Y通过对于反复进行了Mt返回值推断是8、否定义了函数来处理?关键代码是否做了捕获特别处理?重要是否确保函数返回CC)RBA对象的任何一个属性都不能为null?重要Y通过是否对方法返回值对象做了null检查,该返回值定义时是否被初始化?重要Y通过是否对同步对象的遍历访问做了代码同步?重要Y通过是否确认在对Map对象使用迭代遍历过程中没有做增减元素操作?重要Y通过线程处理函数循环内部是否有特别捕获处理,防止线程抛出特别而退出?原子操作代码特别中断,使用的相关外部变量是否恢复从前状态?重要Y通过函数对错误的处理是恰当的?可维护性重要Y通过实现代码中是否消退了直接常量?(用于计数起点的简洁常数例外)

9、是否消退了导致结构模糊的连续赋值?(如a=(9、b=d+c)Y通过是否每个return前都要有日志记录?Y通过是否有冗余推断语句?(如:if(b)returntrue;elsereturnfalse;)是否把方法中的重复代码抽象成私有函数?代码检查3.1静态测试技术概述代码检查常见错误表走查走查与代码审查基本相同,其过程分为两步:1.把材料先发给走查小组的每个成员,仔细讨论程序,然后开会;2.开会的程序与代码审查不同,不是简洁的读程序和对比错误检查表进行检查,而是让与会者充当计算机,即首先由测试组成员为所测程序预备一批有代表性的测试用例,提交给走查小组,走查小组开会扮演计算机角色,让测试用例沿

10、程序规律运行一遍,随时记录程序的跟踪10、,供分析和争论用。代码检查3.1静态测试技术概述多次拷贝字符串:测试所不能发觉的一个错误是生成不行变(immutab对象的多份拷贝。不行变对象是不行转变的,因此不需要拷贝它。最常用的不行变对象是String。假如你必需转变一个String对象的内容,你应当使用StringBUffer。下面的代码可以正常工作:Strings=newString(Texthere);但是,这段代码性能差,而且没有必要这么简单。可以用以下的方式来重写上面的代码:Stringtemp=Texthere;Strings=newString(temp);但是,这段代码包含额外的S

11、tringo更好的代11、码为:Strings=Texthere;代码检查3.1静态测试技术概述Java代码的走查与审查中常见错误:没有克隆(Clone)返回的对象:封装(encapsulation)是面对对象编程的重要概念。但是Java为打破这种封装供应了便利Java允许返回私有数据的引用(reference)。代码检查3.1静态测试技术概述JaVa代码的走查与审查中常见错误:检查new操作的结果是否为nullJava编程新手有时候会检查new操作的结果是否为null。可能的检查代码为:检查虽然没有错误,但却没有必要。CC+程序员在开头写JaVa程序的时候经常会这么做,这是由于检查CC+中m

12、alloc(12、)的返回结果是必要的,不这样做就可能产生错误。但在JaVa中,new操作不允许返回null,假如真的返回null,很可能是虚拟机崩溃了,这时候即便检查返回结果也是无济于事。代码检查3.1静态测试技术概述Java代码的走查与审查中常见错误:用二替代equals在JaVa中,有两种方式检查两个数据是否相等:通过使用=操作符,或者使用全部对象都实现的equals方法。原子类型(int,float,Char等)不是对象,因此他们只能使用二操作符,如下所示:对象更简单些,二操作符检查两个引用是否指向同一个对象,而equals方法则实现更特地的相等性检查。代码检查3.1静态测试技术概述J

13、ava代码的13、走查与审查中常见错误:没有正的确现equals,hashCode,或者clone等方法:方法equals,hashCode,和CIOne是由java.IangQbject供应的缺省实现。但是,这些缺省实现在大部分时候毫无用处,因此很多类掩盖其中的若干个方法以供应更有用的功能。而当继承一个掩盖了若干个这些方法的父类时,子类通常也需要掩盖这些方法。代码检查3.1静态测试技术概述Java代码的走查与审查中常见错误:通过代码检查法可以获得软件组成的重要基本因素,例如变量标识符、过程标识符、常量等,组合这些基本因素就可以得到软件的基本信息,包括:标号交叉引用表,变量交叉引用表,子程序、

14、宏和函数表,等14、价表,常数表。通过这些软件的基本信息可以实现以下功能:L直接从表中查出说明和使用错误,如循环层次表、标号交叉引用表和变量交叉引用表;2.为用户供应帮助信息,如子程序、宏和函数表、等价表和常数表;3.用来做错误猜测和程序简单度的计算,如操作符合操作数表等。代码检查3.1静态测试技术概述代码检查常用检查项代码检查项目包括检查变量的交叉引用表,检查标号的交叉引用表,检查子程序、宏和函数表,等价性检查,常量检查,标准检查,风格检查,比较掌握流,选择、激活路径,对比程序说明,充分文档等。代码检查3.1静态测试技术概述代码检查常用检查项3.1静态测试技术概述检查变量的交叉引用表,重点检

15、查未说明变15、量和违反了类型规定的变量,还要对比源程序,逐个检查变量的引用、变量的使用序列、临时变量在某条路径上的重写状况,局部变量、全局变量与特权变量的使用;检查标号的交叉引用表,验证全部标号的正确性,检查全部标号的命名是否正确,转向指定位置的标号是否正确;检查子程序、宏和函数表,调用每次调用和所调用位置是否正确,确定每次调用的子程序、宏和函数是否存在,检验调用序列中调用方式与参数挨次、个数、类型上的全都性;等价性检查,检查全部等价变量类型的全都性,解释所包含的类型差异;标准检查,用标准检查工具软件或手工检查程序中违反标准的问题;风格检查,检查发觉程序在设计风格方面的问题;代码检查常用检查

16、项比较掌握流,比16、较由程序员设计的掌握流图和由程序生成的实际掌握流图,查找和解释每个差异,修改文档并修正错误;选择、激活路径,在程序员设计的掌握流图上选择路径,再到实际掌握流图上激活这条路径,假如选择的路径在实际掌握流图上不能被激活,则源程序可能存在错误;对比程序说明,阅读程序源代码,逐行进行分析思索,比较实际的代码和期望的代码,从它们的差异中发觉程序的错误和问题;充分文档,代码检查的文档是一种过渡性文档,不是公开的正式文档,通过编写文档,也是对程序的一种下意识的检查和测试,可以关心程序员发觉更多的错误,管理部门也可以通过检查文档,了解模块质量、完全性、测试方法和程序员力量。静态结构分析静态结构分析主要是以图的17、形式表现程序的内部结构,供测试人员对程序结构进行分析。静态结构分析是一种对代码机械性的、程式化的特性进行分析的方法。常用的关系图主要有函数调用关系图和模块掌握流图。函数调用关系图函数调用关系图列出全部函数,用连线表示调用关系,通过应用程序各函数之间的调用关

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 软件测试

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!