软件测试课程设计报告书(共24页).doc
《软件测试课程设计报告书(共24页).doc》由会员分享,可在线阅读,更多相关《软件测试课程设计报告书(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上大学课 程 设 计 说 明 书课程名称 软件测试技术课程设计 题 目 CppCheck测试 院 系 信息工程学院 班 级 计科131 学生姓名 指导教师 日 期 2016.7.5 课程设计任务书课程设计题目CppCheck测试姓名学号1专业班级计算机组别组长同组成员 指导教师课程设计目的通过本课程设计,深刻理解和掌握软件测试的基本方法、基本技术和常用测试工具,熟练掌握测试用例的设计,同时进一步提高学生对于复杂程序的编写能力,为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础。课程设计环境硬件:装有windows操作系统的计算机软件:CppChe
2、ck课程设计任务和要求任务要求:1理解CPPCheck软件的基本功能和特征;2. 掌握软件测试方法在CPPCheck测试中的运用;3完成CPPCheck相关任务模块测试用例的设计;4实现CPPCheck的核心功能的测试;5撰写测试CPPCheck软件的相关文档;6撰写出符合要求的课程设计报告。参考文献1.郑人杰,软件测试技术,清华大学出版社2.徐仁佐,软件可靠性技术,清华大学出版社3.林宁、孟庆余,软件测试使用指南,清华大学出版社4.古乐、史九林,软件测试技术概论,清华大学出版社时 间 进 度 安 排序号起止日期工 作 内 容15.4学生熟悉题目背景,选题25.5-6.3CppCheck测试需
3、求分析36.4-6.9CppCheck测试设计46.10-6.15CppCheck测试56.16-6.22撰写上交课程设计报告任课教师: 时间:2016.7.5目录专心-专注-专业课程设计报告文档一任务的描述1.1目标测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。一是对质量或可接受性做出判断:通过测试给出所测系统总体质量现状,譬如满足工件的出
4、入口标准,达到发布要求,遗留缺陷或者风险二是发现问题,而且尽可能早一些,并确保其得以修复:目的是要发现问题,就需要使用不同的方法类型进行测试,尽可能早的发现问题,就是尽快的参与测试,并提高测试的效率和有效性,使严重的问题尽早被发现;确保缺陷得以修复,需要说明的是不是所有的缺陷都可以被修复的,那么我们要在提交缺陷单的时候自己首先已经有一个尺度,哪些是必须解决的,哪些是有时间可以解决的,那些是可以推迟到下个版本,哪些是无法解决但是要提出来的,跟自己的团队磨合久了,测试人员心理这个尺度应该是很清楚的,再则就是注意与开发之间的沟通技巧和专业度,特别在国内团队,随意性比较大,某个缺陷的解决很可能是因为开
5、发心情好或者跟开发者交情好,或者开发觉得你够专业。三是改进测试过程或者软件开发过程:通过测试,对一些测试数据的度量和报告,对团队合作上一些问题的发现和总结,可以反过来为测试过程和开发过程的改进提供依据,从而促进团队朝着更积极有效的方向发展。总之要做到以最少的人力、物力、时间找出软件潜在的错误和缺陷。1.2测试对象介绍:1.2.1 概述:Cppcheck是一种C/C+代码缺陷静态。不同于C/C+编译器及其它分析工具,Cppcheck只检查编译器检查不出来的bug,不检查语法错误。1.2.2介绍:cppcheck 是一个静态代码检查工具,支持c, c+ 代码;作为编译器的一种补充检查,cppche
6、ck对产品的源代码执行严格的逻辑检查。 执行的检查包括:1. 自动变量检查2. 数组的边界检查3. class类检查4. 过期的函数,废弃函数调用检查5. 异常内存使用,释放检查6. 内存泄漏检查,主要是通过内存引用指针7. 操作系统资源释放检查,中断,文件描述符等8. 异常STL 函数使用检查9. 代码格式错误,以及性能因素检查1.2.3 基本使用: 首先下载安装,例如我的是安装在C:CpptestCppcheck 目录下,要使用它必须先转到该路径下:1.检查一个文件:cppcheck filepath例如,我检查一个file1.c的文件代码,在命令工具中可以输入:D:CpptestCppc
7、heckcppcheck file1.c 来审查。2.检查一个文件夹中的所有文件: cppcheck filspath例如,我检查files文件下的所有文件:C:CpptestCppcheckcppcheck files3. 格式化输出内容格式:C:CpptestCppcheckcppcheck -enable=all -template=vs C:files.c 2C:Cpptesterr.txt-template=vs 就是指定以vs这种格式输出,还可以自定义输出格式, 1.2.4 高级使用:1.xml 输出a.使用方式:cppcheck -xml-version=2 foo.cppb.e
8、rror的组成元素:id:error的idseverity:error的性质(error、warning.)msg:error的具体信息(短格式)verbose:error的信息(长格式)c.location的组成元素:file:含有相对或者绝对路径的文件名line:行数msg:消息描述 2.改良输出结果cppcheck -template=vs path (Visual Studio 兼容模式)cppcheck -template=gcc path (Gcc兼容模式)cppcheck -template=file,line,severity,id,message3.输出过滤器(选特定的错误信
9、息输出)命令行模式:cppcheck -suppress=memleak:src/file1.cpp src/使用文件模式(将过滤规则存到文件中)cppcheck-suppressions suppressions.txt src/1.3. 任务描述: 1理解CPPCheck软件的基本功能和特征;2. 掌握软件测试方法在CPPCheck测试中的运用;3完成CPPCheck相关任务模块测试用例的设计;4实现CPPCheck的核心功能的测试;5撰写测试CPPCheck软件的相关文档;6撰写出符合要求的课程设计报告。各种注册的check子类及ruleC+ codecppcheck系统结构图: Sot
10、ting tokensCppcheck核心代码解析错误输出检查错误报告输出ErrorLogger参数分析1.4运行环境:硬件:装有windows操作系统的计算机测试工具:CppCheck Quick Test Professional VC+6.01.5条件与限制:条件:被测试代码的路径必须是全英文,内存要动态分配限制:只能执行C/C+源代码,该软件只能进行静态检测二测试设计21测试阶段的选择:2.1.1单元测试(1)定义:单元测试(又称为模块测试)是针对的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元
11、就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。(2)单元测试任务包括:1模块接口测试;2模块局部数据结构测试;3模块边界条件测试;4模块中所有独立执行通路测试;5模块的各条错误处理通路测试。1、 单元的基本属性:1.明确的功能 2.可定义的规格 3.与其他单元接口的清晰划分2、 单元测试的目的: 在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。1.验证代码是与设计相符合的;2.发现设计和需求中存在的错误;3.发现在编码过程中引入的错误。(和设计不相符或和设计相符,但是由于编码疏漏引起)3、 单元测试关注的重点:1.出错处理、2.单元接口、3.局部数据结构、4.独立路
12、径、5.边界条件 4、 单元测试的主要关注点:1.参数的属性、顺序、个数是否与LLD一致2.不能修改只做输入用的形参,否则可能导致数据的错误修改3.约束条件是否通过形参来传送5、驱动和桩的功能: 1. 驱动单元:被测函数的主函数,能接受输入数据,输出实际测试结果2.桩单元:用来代替所测单元调用的子单元6、单元测试策略:孤立的测试策略、自顶向下、自底向上的单元测试策略1) 孤立的测试策略: 方法:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。 优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。 缺点:桩函数和驱动
13、函数工作量很大,效率低。2) 自顶向下的单元测试策略: 方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。 优点:可以节省驱动函数的开发工作量,测试效率较高。 缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。3) 自底向上的单元测试策略: 方法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被测试过的模块做桩模块。以此类推,直到测试完所有模块。 优点:可以节省桩函数的开发工作量,测试效率较高。
14、缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大的影响。4、 单元测试的四个阶段: 测试计划:完成单元测试计划; 测试设计:完成单元测试方案; 测试实现:完成单元测试用例、单元测试规程、单元测试脚本及数据文件; 测试执行:执行单元测试用例,修改发现的问题并进行回归测试,提交单元测试报告。2.1.2集成测试1. 集成测试的目的:确保各组件组合在一起后能够按照既定意图写作运行,并确保增量的行为正确(属于灰盒测试)1) 验证接口是否与设计相符2) 发现设计和需求中存在的错误2. 集成测试关注的重点:单元间的接口、集成后的功能3. 集成测试的层次:模块内集成、子系统内集成、子系统
15、间集成4. 集成测试策略:1) 大爆炸集成2) 自顶向下集成3) 自底向上集成4) 三明治(混合式)集成5) 基干集成6) 分层集成7) 基于功能的集成8) 基于消息的集成9) 基于进度的集成10) 基于风险的集成2.1.3系统测试(System Testing):系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。1. 系统测试目的:1) 通过与需求做比较
16、,发现与系统定义不符合或与之矛盾的地方2) 系统测试的用例应根据需求分析说明书来设计,并在实际使用环境下运行2. 系统测试对象1) 软硬件集合在一起的系统2) 验证时应尽可能模拟实际的运行环境与条件3. 系统测试常用类型:功能、性能、压力、容量、安全性、GUI、可用性、安装、配置、异常(恢复性)、备份、健壮性、文档、在线帮助、网络、稳定性测试22测试方法的选择:同行评审的概念 :同行评分是一种依据程序整体质量,可维护性、可扩展性、易用性和清晰性对匿名的 程序进行技术评价的技术。改技术的目的是为程序员提供自我评价的手段。 2、实施过程: 选出一名程序员来担任这个评分过程的管理员,管理员又会挑选出
17、大约220名参与者,保持匿名,这些参与者否应具有相似的背景要求每名参与者都挑选出两个由自己编写的程序以供评审。其中的一个程序应是参与者自认为能代表其自身能力的最好的作品,而了另一个则是参与者自认为质量较差的作品。 当所有程序都收集完毕后,就将这些程序随即分发给参与者。没名参与者拿到4个程序进行评审,其中的两个是“最好”的程序,另外两个则是相对“较差”的程序,单评审人自己并不知道。每名参与者没评审一个程序得花费30分钟,评审完后填写一张评价表。所有4个程序都评审完后,参与者对4个程序的相对质量进行分级。评价表要求评审人用从17的分值对诸如下面的问题进行回答: 1)程序是够易于理解?2)高层次的设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 课程设计 报告书 24
限制150内