《软件质量保证与测试(共17页).doc》由会员分享,可在线阅读,更多相关《软件质量保证与测试(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计(大作业)报告课程名称: 软件质量保证与测试 设计题目:单机版五子棋游戏的单元测试院 系: 信息技术学院 班 级: 设 计 者: 学 号: 指导教师: 设计时间: 2012.12.312013.1.6 昆明学院课程设计(大作业)任务书姓 名:院(系):专 业: 学 号:任务起止日期:2012年12月31日至2013年1月6日课程设计题目:单机版五子棋游戏的单元测试课程设计要求: 1、掌握软件测试的基本步骤和方法; 2、根据课题的要求进行上机实验调试; 3、基本掌握实际软件工程中与软件测试有关的相关文档的编制; 4、严格按时间要求进行课程设计,不迟到、不缺席、不
2、早退。工作计划及安排: 序号教 学 内 容日 期学 时时 间地 点1布置任务12月31日0.5天8:3012:00QQ群2查资料、选项目12月31日0.5天14:3016:00图书馆、Tnternet3测试、故障排除1月4、5日2天8:3012:0014:3016:00博雅楼17114书写设计报告1月6日0.5天8:3012:00博雅楼17115验收、考核1月6日0.5天14:3016:00博雅楼1711合 计4天指导教师签字 年 月 日 课程设计(大作业)成绩学号: 姓名:指导教师:课程设计题目: 单机版五子棋游戏的单元测试总结: 单元测试是所有测试活动中最早进行的一种测试,它能以最低的成本
3、发现和修复软件单元中的错误;我们应有计划地执行单元测试,并在整个软件开发的周期内对其进行维护,是单元测试可以重用;单元测试采用白盒及黑盒方法对被测单元从静态和动态两方面进行测试;在执行单元测试阶段的动态测试时,应注重建立单元测试的环境,以达到对被测试单元进行测试的目的。本次课程设计的完成情况主要是:首先分析了相关题目内容,并由此进行相关资料和书籍的查询工作。首先选定了针对单元测试的项目,由于编程能力比较差,不能在短时间内编出完整的程序,因此,当选定测试方案后,我借取了他人的一个关于单机版五子棋的的软件为测试对象,并对其程序、相关文件做了一定的测试,意在用更多的时间来完成和熟悉本次设计的任务软件
4、测试。通过本次课程设计,对这学期所学软件质量保证与测试有了总结性的学习,同时对软件缺陷的危害及软件测试的重要性有深刻的理解,软件测试有时反映了“防大于治”的道理。指导教师评语:成绩:填表时间:指导教师签名:课程设计(大作业)报告一、 单元测试概述1、 单元测试的概念1.1单元测试是对软件基本组成单元的测试。 (1)在传统的结构化编程语言如C语言中,单元一般是模块,也就是函数或子过程; (2)在象C+中, 单元是类或类的方法; (3)在Ada语言中,单元可为独立的过程、函数或Ada包; (4)在第四代语言(4GL)中,单元对应为一个菜单或显示界面。1.2多个被测模块之间的单元测试可同时进行,以提
5、高单元测试效率。1.3单元测试一般应该由编程人员完成,有时测试人员也加入进来,但编程人员仍会起到主要作用。1.4单元测试的依据是软件的详细设计描述、源程序清单、编码标准等。2、 单元测试的目的2.1验证代码能否达到详细设计的预期要求。2.2发现代码中不符合编码规范的地方。2.3准确定位发现的错误,以便排除错误。3、 单元测试的优点3.1由于单元测试是在编码过程中进行的,若发现了一个错误,不管是从做回归测试的角度,还是对错误原因理解的深刻性的角度,修复错误的成本远小于集成测试阶段,更是小于系统测试阶段。3.2在编码的过程中考虑单元测试问题,有助于编程人员养成良好的编程习惯,提高源代码质量。4、
6、单元测试的测试方法4.1在单元测试阶段,应使用白盒测试方法和黑盒测试方法对被测单元进行测试,其中以使用白盒方法为主。4.2在单元测试阶段以使用白盒测试方法为主,是指在单元测试阶段,白盒测试消耗的时间、人力、物力等成本一般会大于黑盒测试的成本。5、 单元测试的步骤5.1单元测试的实施应遵循一定的步骤,力争做到有计划、可重用。5.2单元测试的步骤如下: (1)计划单元测试; (2)设计单元测试; (3)实现单元测试; (4)执行单元测试; (5)单元测试的结果分析并提交测试报告。6、 单元测试的环境构成6.1在单元测试时,如果模块不是独立的程序,需要辅助测试模块,有两种辅助模块: (1)驱动模块(
7、Driver) (2)桩模块(Stub)6.2人们在进行单元测试时尽量避免开发驱动模块和桩模块。尤其应避免开发桩模块,因为驱动模块开发的工作量一般少于桩模块。6.3若采用自底向上的方式进行开发,底层的单元先开发并先测试,可以避免开发桩模块,采用这种方法测试上层单元时,也是对下层单元的间接测试,但当下层单元被改动后,则需要执行回归测试判断其上层单元是否需要修改。6.4当不得不开发驱动模块及桩模块时,人们力求它们的简单以提高工作效率。但过于简单的驱动模块和桩模块会影响单元测试的有效性,因而,对被测单元的彻底测试有时会被推迟到集成测试阶段完成。7、 单元测试的用例设计7.1单元测试的内容 单元测试的
8、对象是软件设计的最小单位模块或函数,单元测试的依据是详细设计描述。 7.2测试对象 (1)模块接口 (2)局部数据结构测试 (3)路径测试 (4)错误处理测试 (5)边界测试 7.3单元测试用例的设计思路 (1)为被测单元运行设计测试用例 (2)为正向测试设计测试用例 (3)为逆向测试设计测试用例 (4)为满足特殊需求设计测试用例 (5)为代码覆盖设计测试用例8、 单元测试主要方法8.1人工静态分析8.2自动静态分析8.3人工动态测试8.4自动动态测试二、 单机版五子棋游戏概述1、 五子棋游戏介绍五子棋起源于中国古代的传统黑白棋种之一。现代五子棋日文成为“连珠”,英译为“Reniu”,亦有“连
9、五子”、“五子连”、“串珠”、“五目”等多种称谓。五子棋不仅能增强思维能力,提高智力,并且变化多端,非常有趣味性和消遣性,为大多人喜爱。2、 单机版五子棋系统介绍2.1系统概述该游戏软件采用 Java 语言设计,在Windows 系统为玩家提供五子棋游戏人机对战的基本功能。玩家可以通过鼠标在棋盘的相应位置下子,一方为白色,另一方为黑色,先下的为黑子(主场)。游戏过程中,只要有一人先连成五个棋子,不论横、竖或斜,就会在屏幕上显示是谁赢了比赛,也可以是平局收场,从而可以进行下一场比赛。在比赛过程中,如果一方需要悔棋,先得通过对手的同意才可以。 2.2系统运行环境 (1)硬件环境。本系统适用于那种I
10、nter386 以上计算机,内存容量为128M,应配备键盘、鼠标、显示器等外部设备。(2)软件环境。本系统的设计采用Java 编写。本游戏软件在Windows 平台下都可以运行。2.3功能需求描述(1)功能需求实现五子棋的基本功能。确保应用程序具有良好的系统性能,友好的用户界面。较高的处理效率,便于使用和维护。玩家在游戏时,可以选择谁先开始,可以悔棋一步,可以修改棋盘背景色。保存游戏结果,并进行排行。(2)设计分析 游戏界面:计算棋盘中每一条线的间距:这里的棋盘是15*15。棋盘总宽度和高度为300像素,每格20个像素,个边界10个像素。保存之前下过的棋子:通过一个二维数组保存之前下过的所有棋
11、子。电脑下子:电脑下子前对当前棋盘格局进行评分,当前棋盘格局的分数等于“当前棋盘中空棋位分数的最大值”。当前棋盘中空棋位分数等于“在该空棋位放上棋子后所构成棋子排列局面的分数,分数取值的大小顺序分别是成五、活四、双三和不构成以上三种情况的最佳走法”。判断游戏胜负:依据五子棋的基本游戏规则。判断是否有同一颜色的棋子连成5 个。判断当前所下的棋子,这个棋子是否和它相连的棋子构成5 连。处理鼠标响应:鼠标响应包括鼠标点击菜单、按钮的响应和鼠标点击棋盘相应位置,完成下子功能的响应。 (3)程序设计说明 数据结构:使用一个 15*15 的二维数组 Table1515 (15*15 是五子棋棋盘的大小),
12、数组的每一个元素对应棋盘上的一个交叉点,用0表示空位、1代表己方的子、2代表对方的子;这张表也是今后分析的基础。 盘面分析填写棋型表: 电脑下子: 胜负判断:某方形成五子连即获胜;若黑棋走出双三、双四或长连即以禁手判负。三、 单机版五子棋的单元测试概述1、 测试需求1.1测试要求软件测试是保证软件产品质量的重要手段。在项目测试过程中,测试组需要在项目不同阶段定义相应的任务,包括测试技术、用例设计、执行测试和测试报告等,以充分保证项目测试的完整性和充分性。单机版五子棋游戏系统的测试包括单元测试、集成测试和系统测试三个主要部分。整个测试过程要求严格遵守测试流程。测试过程以项目内部测试为主,尽可能多
13、的发现各类缺陷,并尽最大可能保证系统的稳定性、健壮性、可重复性和兼容性。 1.2测试范围 (1)测试对象 测试对象包括程序、相关文件、安装手册、使用手册等; (2)需要测试的产品功能 系统的基本功能; 系统的安装、卸载; 系统的性能。2、 测试任务本次测试主要为单元测试,有测试人员编写测试计划、测试方案、测试用列设计和测试报告。 2.1制定测试计划 (1)确定测试需求 根据需求文档收集和组织测试需求信息,确定测试需求; (2)制定测试策略针对测试需求定义测试类型、测试方法以及需要的测试工具等;(3)建立测试通过准则根据项目实际情况为每一个层次的测试建立通过准则;(4)确定资源和进度确定测试需要
14、的软硬件资源、人力资源及测试进度;(5)评审测试计划根据同行评审规范对测试计划进行同行评审。 2.2设计测试 设计测试的目的是为每一个测试需求确定测试用例集,并且确定执行测试用例的执行过程。 (1)设计测试用例对每一个测试需求,确定测试用例。对每一个测试用例确定其输入、操作和预期输出结果,并确定用例的测试环境配置。 (2)开发测试过程 根据界面原型为每个测试用例定义详细的测试步骤,为每个测试步骤定义详细的测试结果验证方法。为测试用例准备输入数据,编写测试过程文档。 (3)设计驱动程序或桩 设计单元测试、集成测试需要的驱动程序和桩程序。 2.3实施单元测试由开发人员执行单元测试的目的是验证单元的
15、内部结果以及单元实现的功能。执行单元测试:按照测试过程运行测试脚本自动执行单元测试或手工执行单元测试。记录单元测试结果:将单元测试结果作详细记录,并将测试结果提交给相关组。回归测试:对修改后的单元执行回归测试。3、 测试清单 分阶段对应不同测试设计项和测试执行项,在需求阶段主要侧重设计功能测试用例,建立按业务流程和系统功能分类的测试内容,下为本次测试清单: 四、 单元测试具体测试 下面对五子棋主界面类(FiveStone 类)中各方法进行单元测试。FiveStone类各方法功能说明见下表。1. 单元测试计划1.1单元测试策略 FiveStone 类单元测试策略1.2测试内容在进行测试计划时,首
16、先我们应该根据软件设计文档来评估测试内容和范围,然后根据工作量来进行单元测试的计划,测试内容如下: 1.3测试环境 硬件:CPU:Intel 1.86GHz,内存:1G软件:Windows XP(SP2),Eclipse3.2.0,JDK1.6.7测试工具:JUnit 4.0,EMMA,Ant,CheckStyle2. 单元测试设计与执行据详细设计规格说明说,建立单元测试环境,完成测试用例设计和测试脚本开发。在设计测试用例之前,对个各测试函数确定具体的测试项和测试方法。2.1代码规范检查针对本项目开发的要求,自定义 CheckStyle 编码规范,文件名为:FiveStoneStyle.xml
17、,然后对FiveStone 类代码进行代码规范检查。 单元测试用例 U_FiveStone_012.2静态代码分析 单元测试用例 U_FiveStone_022.3测试public void maopao(int x) (1)程序代码 (2)测试 静态分析 对代码进行逻辑分析,发现程序中存在下列问题。a)for (int i = 0; i 10; i+)语句中,循环次数为常量10,最好修改为x.length。b)在异常处理中(语句:catch (Exception e) ),捕获异常未给出提示信息,不满足实际需要 动态测试a) 打开游戏界面,玩游戏,游戏结束后,检查 score.txt 文件中
18、的成绩表,发现没有存储当前的成绩。b) 清除文件中原有的成绩表,重新玩游戏,游戏结束后,检查 score.txt 文件,发现没有存储当前的成绩。c) 删除此文件,重新玩游戏,游戏结束后,程序未创建一个新的score.txt文件。3. 控制流图 game_win_1()程序控制流图 4. 测试用例设计4.1首先采用基路径方法进行测试。(1)基本路径计算圈复杂度:(a)流图中区域的数量对应于圈复杂度;从控制流图中可以很直观的看出,其区域数为8。因此其圈复杂度为8。(b)通过公式:V(G)=E-N+2 来计算。E 是流图中边的数量,在本例中E=21,N 是流图中结点的数量,在本例中,N=21,V(G
19、) = 21-15+2 =8。(c)通过判定结点数计算V(G)=P+1,P 是流图G 中判定结点的数量。本例中判定节点有7 个,即P=7,V(G)=P+1=7+1=8。找出基本路径:path1:1,2,6,7,11,12,13,15;path2:1,2,3,6,7,11,12,13,15;path3:1,2,3, 4, 6,7,11,12,13,15;path4:1,2,3, 4, 5,2,6,7,11,12,13,15;path5:1,2,3, 4, 5,2,6,7,8,11,12,13,15;path6:1,2,3, 4, 5,2,6,7,8,9,11,12,13,15;path7:1,2
20、,3, 4, 5,2,6,7,8,9,10,7,11,12,13,15;path8:1,2,3, 4, 5,2,6,7,8,9,10,7,11,12,14,15;以上路径是循环0 次或1 次的情况,对于循环多次,起路径长度将增加。 4.2测试用例设计 game_win_1( )的测试用例5. 单元测试报告在测试执行时,我们需要在测试用例设计的前提下、平台上进行。测试方法包括自动化的、手工的测试。本案列的软件自动化测试平台包括jdk1.6.2、JUnit4.0等。最后对部分测试的结果进行统计并生成测试执行报告和缺陷记录报告。测试执行报告包括测试用例标本。版本、通过情况、缺陷标示、测试执行时间等内
21、容,其中最重要的是要明确测试用例的执行状态。如果测试未通过,则必须给出测试的缺陷记录。在自动化测试中,通过工具可以简化这部分工作很多自动化工具可以自动将测试结果生成报表。五、 程序调试与运行 调试 运行六、 测试工具计算机一台,jdk1.6.2、JUnit4.0测试平台七、心得体会本次课程设计时间短暂,在老师的督促和鼓励下基本完成任务,通过几天的课程设计,让我明白了软件测试的重要性,对软件测试的方法及常用工具有了进一步的了解。同时,我也发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏的,理论联系实际的能力还是比较弱的。在今后我应该在多看书的同时还要加强实践的联系,才能进一步提高自己的测试的能力。 七、参考文献 【1】郑人杰.计算机软件测试技术.清华大学出版社;【2】王健、苗勇.软件测试员培训教材.电子工业出版社;【3】古乐、史九林.软件测试技术概论.清华大学出版社;【4】周予滨、姚静.软件测试.机械工业出版社;【5】邓波 黄丽娟 曹青春等/译.软件测试自动化.机械工业出版社 【6】新语/译.有效软件测试.清华大学出版社 专心-专注-专业
限制150内