软件测试大作业.doc_第1页
软件测试大作业.doc_第2页
软件测试大作业.doc_第3页
软件测试大作业.doc_第4页
软件测试大作业.doc_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云南大学软件学院期末课程报告Final Course ReportSchool of Software, Yunnan University个人成绩序号学号姓名成绩123456学期:2012 秋季学期 课程名称: 软件测试技术 任课教师: 代 飞 组长姓名: 联系电话: 年 级: 作业截止时间:2012年12月27日评分标准指标内容分值指标内涵及评估标准单元测试20对程序代码进行详尽、准确分析,设计测试用例合理对程序代码进行较准确地分析,设计测试用例较合理对程序代码进行一般地分析,设计测试用例一般对程序代码分析较差,设计测试用例不合理集成测试15对设计文档进行详尽、准确分析,设计测试用例合理对设计文档进行较准确地分析,设计测试用例较合理对设计文档进行一般地分析,设计测试用例一般对设计文档分析较差,设计测试用例不合理功能测试20对产品规格说明书进行详尽、准确分析,设计测试用例合理对产品规格说明书进行较准确分析,设计测试用例较合理对产品规格说明书进行一般地分析,设计测试用例一般对产品规格说明书分析较差,设计测试用例不合理非功能测试15根据产品规格说明书,对系统进行性能测试、压力测试、容量测试、安全性测试、可靠性测试、容错性测试等。报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差小组成员及分工学号姓名角色电话详细工作介绍签名软件测试技术成绩考核表(每人填一份)年级: 本人所做工作及排名: 统筹全局,复查文档,单元测试,调整测试程序 排名1 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语软件测试技术成绩考核表(每人填一份)年级本人所做工作及排名: 单元测试程序及文档,集成测试,协助审查测试程序 排名2 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语软件测试技术成绩考核表(每人填一份)年级: 本人所做工作及排名: 代码复杂度测试、集成测试、测试总结和结果分析 排名3 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语软件测试技术成绩考核表(每人填一份)年级: 本人所做工作及排名: 功能测试及文档撰写 排名4 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语软件测试技术成绩考核表(每人填一份)年级:本人所做工作及排名: 功能测试及文档撰写 排名5 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语软件测试技术成绩考核表(每人填一份)年级: 本人所做工作及排名: 审查文档,调整文档格式,审查测试程序 排名6 指标内容分值指标内涵及评估标准得分技术路线的可行程度10合理可行,具体且有创新合理可行,具体基本合理可行不够合理或不够具体程序或系统设计思路10程序或系统思路非常清晰、运行正确程序或系统思路基本清晰、运行正确程序或系统思路清晰、环境配置错误无法运行程序或系统思路不清晰,程序无法运行小组成员的工作量(每个人分别打分)15高出平均要求工作量的15%以上高出平均要求工作量达到平均要求工作量低于平均要求的工作量理论知识应用水平15用理论知识对程序设计方法、思路和代码进行详尽、准确地分析和总结用理论知识对程序设计方法、思路和代码进行较准确地分析和总结理论知识应用一般理论知识差达到预期目标的程度10完全达到基本达到无法预见未能达到团队合作精神10很强的团队合作精神合作情况良好合作情况一般合作不好,各自为政报告撰写质量(30分)5报告非常完整报告比较完整完整程度一般报告不完整5逻辑结构清晰逻辑组织较好逻辑组织一般逻辑不清5内容非常丰富内容较丰富内容一般内容欠缺5文字表达非常好文字表达较好文字表达一般文字表达差,意思不明了5图表制作非常专业化图件制作良好图件制作一般图件制作效果差5整体效果很好整体效果良好整体效果一般整体效果差综合得分(满分100分)评语56目录第1章 测试概述21.1 编写目的21.2 项目背景和简介21.3 项目的产品规格说明书(Specification)31.3.1 需求概述31.3.2 需求规格51.3.3 CSCI能力需求71.3.4 保密性需求81.3.5 CSCI环境需求91.3.6 计算机资源需求91.4 项目的设计文档91.4.1课程资源操作子系统91.5 测试范围121.6 测试环境与配置12第2章 测试用例设计132.1 单元测试132.1.1代码复杂度测试132.1.2单元测试的用例设计162.2 集成测试的用例设计362.3 功能测试的用例设计422.3.1教师资源模块422.3.2教室信息录入功能432.3.3时间段信息录入功能442.3.4课程信息录入功能452.4 非功能测试的用例设计46第3章 测试总结493.1 测试用例执行结果493.1.1黑盒测试中对于类的测试结果493.2.2集成测试结果513.2 测试问题解决523.3 测试结果分析53第4章 综合评价544.1软件能力544.1.1 功能性544.1.2 易用性544.1.3 可靠性544.1.4 兼容性544.1.5 安全性544.2建议55第1章 测试概述1.1 编写目的本报告为软件工程课程的大作业排课系统的测试报告,目的在于总结测试阶段的测试以及分析测试结果,找出系统存在的BUG,以期系统符合软件工程课程的大作业需求。1.2 项目背景和简介(1)排课表是一个学校日常教学工作和其他各项活动的指挥调度表。它不仅是学生和教师日常课程的依据,对学校其他工作的统一安排也有直接影响。高校排课工作是执行教学计划、实现学校培养目标的重要一环,是学校教学教务管理工作中最基本而又非常重要的一项,它是学校建立稳定的教学秩序的最根本的保证,是学校贯彻教育方针、培养合格人才的具体体现,并对学生的学习效果和课堂的教学质量有直接的影响。它不仅可以从侧面反映出学校领导的办学思想,也能体现出学校教育教学管理的能力和水平。在高校的各项教学管理工作中,排课一直是最基本的、最重要的工作,其实质就是给教学计划中设置的课程安排合适的时间和地点,保证整个教学工作能够顺利的进行;同时,排课工作也是一项很复杂的工作,排课是一个NP问题,就是始终找不到一个最优的方法能够解决问题,因为这个问题涉及了多种因素进行组合规划,有教师、学生的因素,也有教室的因素。尤其在目前各高校规模不断扩大,教学资源面临紧张,教室总数不足的前提下,排课工作问题更为突出。(2)随着计算机技术的飞速发展,特别是计算机的应用已普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展,许多人还停留在以前的手工排课方法,这在很大程度制约了开学前的教学任务开展,降低了工作效率。为了适应现在社会人们高度强烈的时间观念,利用计算机实现高校排课系统势在必行,对于各大高校来说,利用计算机支持学校管理员排课,是适应现在学校的制度要求、推动学校管理走向科学化、系统化、规范化的必要条件,从而达到提高高校管理效率的目的,给同学和老师带来方便。(3)本系统使用JAVA语言,使用eclipse工具进行编写。1.3 项目的产品规格说明书(Specification)1.3.1 需求概述目标:(1)高校排课系统开发意图高校扩招导致的课程量增大及排课数据量的加大,放大了原始手动排课的弊端。通常采用手工的方法进行,这大大加大了手工劳动的工作量,而且影响排课效率,对于既定的课程,如果需要修改,往往需要花费很大的时间进行调整,所以需要一套可用的高校排课系统,使得排课系统效率化,方便随时的调整与更新。(2)高校排课系统目标本系统的目标在于根据所在学校的课程实际情况排课,提高学校排课的效率,方便学校对课程的编排和管理,减少排课的人力,根据教师和学生的需求排出满足多数人要求的课程表,提高学校教务信息化管理的程度。1)短期目标实现教师、教室、课程的管理排课冲突排除;提升工作效率。2)最终目标实现教务管理信息化、网络化;.实现教学管理系统化;实现学院管理信息化;提升学院的管理竞争力;为我校竞争进入全国前50强做贡献。3)高校排课系统作用范围高校排课系统的短期使用对象是软南大学软件学院,更进一步对象希望是应用到整个校园。4)高校排课系统与其它软件关系高校排课系统是一个独立的软件,可能需要与已有的软件系统存在数据共享与接口关系,其它内容全部自含。运行环境:软件环境:兼容当前主流的操作系统windows XP/7。硬件环境:Pentium 4 3.0GHZ以上处理器,内存512MB以上。用户的特点:(1)操作人员软件学院内部管理电脑化,操作人员有着丰富的计算机操作与管理的经验,能满足系统平台的建设并由此产生符合软件系统操作所要求的适应性和可操作性。(2)维护人员软件学院的专业教师、技术维护人员具备较高的软件开发水平,熟悉学院教学教务的业务流程,能够配合承担软件开发者提供最直接的业务和技术支持,能够独立维护系统出现的一些简单的问题。(3)软件使用频度高校排课系统作为高校期初必备的业务操作系统,因此使用频度将比较频繁,特别是排课过程与课程的调整过程将非常频繁的发生。约束条件:(1)开发时间4个月,该系统的完成期限为2013年1月。(2)系统运行寿命的最小值系统运行寿命的最小值应为3年。(3)法律和政策方面限制该系统的开发和运行完全按照有关法律法规进行,绝不逾越。(4)可利用的信息和资源互联网上的相关的开源及免费资源和涉及该系统的算法,以及其他类似可参考的系统。(5)时间特性要求响应时间要求:对于管理人员输入的用户信息应该在人们所能接受的等待时间来确定,通常为2-5 s。更新处理时间要求:用户输入数据后,对于该操作人员输入的数据处理时间应该是毫秒级的。数据的转换和传输时间的要求也应该在人们的接受的等待时间内。(6)灵活性在设计界面结构和数据结构是应留有对以后扩充系统功能的余地,如可以在每个数据字段上设计多个自定义字段。(7)输入输出要求对输入的数据的输入媒体应是文字形式,若对于浮点类型的数来说,其数值范围应该进行约束。输入格式应与规定表的格式相对应,以减少输入格式的设计难度。1.3.2 需求规格软件系统对象结构如图1.1所示,总体功能如图1.2所示。教务管理人员计算机辅助排课系统查询课表管理数据编辑课表打印信息打印机图1.1对象结构图排课系统课程资源操作查看课表打印课表手动排课课程资源录入信息排列课程资源删除排课冲突检查冲突解决课程信息录入时间段信息录入教室信息录入教师信息录入课程时间删除时间段信息删除教室信息删除教师信息删除图1.2总体功能图描述约定:数据字典(data dictionary):有关对问题域重要的数据元素、结构和属性的定义的集合。数据流图(data flow diagram):一种分析模型,它描绘了过程、数据集合、端点、以及它们之间的流,这种流表现了业务过程或软件系统的行为特点。实体-关系图(entity-relationship diagram):一种分析模型,它确认了一对实体之间的逻辑关系。业务规则(business rule):定义或约束业务某些方面的政策、原则、标准或规则。用例(use case):描述了执行者与系统之间逻辑上相关的可能交互集,系统的输出为执行者提供了价值。用例可以包含多个场景。规格说明(specification):将系统需求以结构化的、共享的和可管理的形式编写成文档的过程,同样,产品也要经过这一过程。1.3.3 CSCI能力需求系统总体功能描述:项目小组开发的排课系统致力于通过对现有课程资源(教师资源、教室资源、时间段资源和课程资源)进行操作,系统对课表进行冲突检查,并通过人工对冲突的处理排出互不冲突的课表,课程资源子系统为排课子系统提供输入数据工期处理,因此,排课系统由课程资源子系统和手动排课子系统,另外,系统提供了附加功能:对生成课表的查看以及与外部打印机接口的交互实现课表的打印功能。手动排课子系统:手动排课系统是通过对课程资源子系统中各类资源的操作,人为对数据进行组合,系统对人为地组合数据进行冲突检查,最终排出无冲突的课表。手动排课子系统功能包括排课、冲突检查和冲突解决模块,三大模块之间是紧密联系的。排课模块:人为选择各类课程资源,并人为地自由组合,得到一个课表,但不能保证没有冲突。冲突检查:一旦课表生成,系统就会对课表进行检查,并对冲突进行说明,系统中包含的冲突包含教室冲突、教师冲突、时间段冲突或三者之间的组合。冲突解决:系统给出冲突状况,人为对课表进行修改。查看课表子功能:查看课表子功能是在课表经系统处理之后基本确定的前提下查看现有条件下的课表情况。课表表现形式以图表的形式体现。打印课表子功能: 打印课表的子功能依赖于课表排好之后的课表,在此基础上可以打印出排好的课表(此项为可选实现)。1.3.4 保密性需求 保密性是指不允许未经授权的用户存取数据。一般要求对用户的身份进行标识与鉴别,并采取相应的存取控制策略以保证用户仅能访问授权数据,同一组数据的不同用户可以被赋予不同的存取权限。同时,还应能够对用户的访问操作进行跟踪和审计。此外,还应该控制用户通过推理的方式从经过授权的已知数据获取未经授权的数据,造成信息泄漏。本系统已经针对此做了设计,而关键因素在于系统管理员能否保证数据库的安全同时数据库的存放也较为关键,不可让无关人员访问。 为防止人员、环境潜在的威胁,我们采用密码匹配的方法,对匹配次数进行限制。并在用户输入密码后,进行验证码匹配,同样对匹配次数进行限制。 采取的保密措施:建立操作规程: 将操作过程或流程规范化,并形成指导运行管理人员工作的操作规程,操作规程作为正式文件处理。 操作过程记录 对运行管理人员按照操作规程执行的操作过程形成相关的记录文件,可能是日志文件,记录操作的时间和人员、正常或异常等信息。 安全事件上报 根据安全状态分析报告分析可能的安全事件,对接报的安全事件进行分析,明确安全事件等级、影响程度以及优先级等,按照安全事件报告程序上报安全事件,确定是否应对安全事件启动应急预案。 安全事件处置 对于应该启动应急预案的安全事件按照应急预案响应机制进行安全事件处置。对未知安全事件的处置,应根据安全事件的等级,制定安全事件处置方案,包括安全事件处置方法以及应采取的措施等;并按照安全事件处置流程和方案对安全事件进行处置。 安全事件总结和报告 一旦安全事件得到解决,对于未知的安全事件进行事件记录,分析记录信息并补充所需信息,使安全事件成为已知事件,并文档化;对安全事件处置过程进行总结,制定安全事件处置报告,并保存。 1.3.5 CSCI环境需求计算机硬件需求 该软件的计算机软件配置项CSCI运行的计算机硬件需求为: CPU:core i3或者以上配置 内存:1G或以上 显卡:显存512M或以上计算机操作系统需求 该软件的计算机软件配置项CSCI运行的计算机操作系统需求为: 目前仅支持的操作系统为Windows平台,包括Windows XP/7。1.3.6 计算机资源需求计算机硬件需求 处理器:CPU core i3或以上配置 内部存储器:内存1G或以上 外部存储器:硬盘内存320G或以上 输入/输出设备:键盘、鼠标、显示器等基本设备计算机软件需求 操作系统:Windows XP/Windows 7 数据库管理系统:Microsoft SQL Sever 2008 测试软件:findbugs-1.3.9 java (java代码检查工具) Meter Apache (基于java的压力测试工具) 开发软件:Eclipse -SDK-4.21.4 项目的设计文档1.4.1课程资源操作子系统课程资源子系统由四大模块构成,课程资源模块、教师资源模块、教室资源模块、时间段模块,功能上实现对各资源的录入、删除和信息排列功能。1)课程资源模块数据块包含课程的性质代号、课程代号、授课教师、学时等内容,课程性质代号是指课程所属的门类,课程代号是指课程的编号,授课教师采用标示其姓名的方式是课表更加直观,学时供排课者合理非配课时。在数据操作上,一要实现对课程资源的录入,用户通过一定的录入渠道,录入课程资源的相关信息值,作为排课的资源信息,录入的资源要保存;二要实现对课程资源的删除,用户可以选择性的对录入的信息进行删除操作;另外,为方便用户查看,系统还要实现对所录入信息的排列,使信息更加直观。2)教师资源模块数据块包含教师的姓名,教师的代号和其职称,姓名属性更加直观,代号属性使数据处理更加方便。数据操作上,一要实现对教师资源的录入;二要实现对教师资源的删除,用户可以选择性的对录入的信息进行删除操作;另外,为方便用户查看,系统还要实现对所录入信息的排列,使信息更加直观。3)教室资源模块数据块包含教室相关信息如教室编号和容量,教室编号提供了分配教室的惟一标识。数据操作,一要实现对教室资源的录入;二要实现对教室资源的删除,用户可以选择性的对录入的信息进行删除操作;另外,为方便用户查看,系统还要实现对所录入信息的排列,使信息更加直观。4)时间段资源模块时间段资源用于人为定义该校的上课时间段,一要实现对时间段资源的录入;二要实现对时间段资源的删除,用户可以选择性的对录入的信息进行删除操作;另外,为方便用户查看,系统还要实现对所录入信息的排列,使信息更加直观。由上面四个模块我们在分析后得到我们排课系统最终的功能构成模块,我们的排课系统可以对课程资源模块、教师资源模块、教室资源模块、时间段模块,功能上实现对各资源的录入、删除和信息排列功能。课程资源子系统的功能构成图如图1.3所示。课程资源操作课程资源删除信息排列课程资源录入教师信息删除教室信息删除课程信息录入时间段信息录入教室信息录入教师信息录入课程时间删除时间段信息删除图1.3 系统功能构成图课程资源子系统中数据删除操作的流程图如图1.4所示。结束是是否删除?资源查询资源存在删除数据提示错误信息开始否图1.4 数据删除操作的流程图1.5 测试范围测试主要依据产品规格说明书和设计文档对系统进行测试,包括单元测试、集成测试、功能测试和系统测试,具体测试内容、测试目的和测试所用的工具和方法如表1.1所示。表1.1 测试内容表测试类型测试内容测试目的测试方法和工具单元测试1、 代码复杂度测试2、 判断代码覆盖情况检验代码的复杂度及精简性集成测试功能测试1、检验排课系统是否在功能上能完成对于数据库内容的添加修改删除功能。2、检验排课系统能否按照需求完成对于课程的安排。排课系统能否完成所需求的功能。采用黑盒测试,进行手工测试非功能性测试代码的完整性,精简性对代码的进一步完善使用白盒测试1.6 测试环境与配置表1.2 测试环境及配置资源名称/类型配 置测试PCInter(R) Pentium(R) CPU P6000 1.87GHz 1.87GHz应用服务器数据库管理系统SQL2000集成开发环境eclipse代码检测工具JUnit单元测试工具;check负载性能测试工具Jmeter2.3.4第2章 测试用例设计2.1 单元测试2.1.1代码复杂度测试一个程序的代码复杂度越高则越容易出现错误并且难以维护,相反降低复杂度后程序易于维护,并且出现复杂错误的几率也会下降。这里使用软件SourceMonitor检查sortclass项目内的代码复杂度。用SourceMonitor载入项目后的结果如图2.1,图2.2所示:图2.1 代码复杂度结果1图2.2代码复杂度结果2该项目的文件数为:47个代码行数为:8891纯代码行数:4751分支比率为:9.4%注释比率为:20.1%最大复杂度为:25最大深度为:8平均深度为:2.31平均复杂度为:2.20Classroom类的度量细节如图2.3所示,可以查看到该类中各方法的复杂度,分支语句数,最大深度。从左下角的图中可知,该类的注释比率不达标。图2.3 Classroom类的度量细节图Conflict类的度量细节如图2.4所示,由图中所知该类的注释比率不够,其他比如平均复杂度,平均深度等都在标准范围内。图2.4 Conflict类的度量细节图Course类的度量细节如图2.5所示,由该图所知,该类的注释比率,方法与类的比都不符合标准,不过复杂度和深度都符合标准。图2.5 Course类的度量细节图SchedCourse类的度量细节如图2.6所示,从图中所知该类复杂度较高,平均深度也比较高,总体代码比较复杂。图2.6 SchedCourse类的度量细节图CRTime类的度量细节如图2.7所示,由图中所知该类的平均复杂度,平均深度等都符合标准,总体复杂度不高,但是注释量仍然不大。图2.7 CRTime类图2.1.2单元测试的用例设计(1)测试代码流程图,如图2.8所示图2.8 测试代码流程图测试代码: public boolean equals(Object obj) if (!(obj instanceof TimeSlot) return false; TimeSlot slot2 = (TimeSlot) obj; boolean result = false; if (start.equals(slot2.start) & stop.equals(slot2.stop) & daysEqual(daysOfWeek, slot2.daysOfWeek) return true; return false; (2)语句覆盖语句覆盖保证程序中的每条语句至少能够执行一次,在所选的测试程序中有两个判定条件,为保证每条预计至少一次吗,保证M为真(执行完即结束),M为假,N为真,M为假,N为假。语句覆盖代码:import static org.junit.Assert.*;import junit.framework.TestCase;import org.junit.Test;public class StatementCoverage extends TestCase public void testEquals() throws CRTimeException boolean daysOfWeek1 = false, false, true, false, false, false, false,false ;CRTime crtimeStart1 = new CRTime(150); CRTime crtimeStart2 = new CRTime(0);CRTime crtimeEnd1 = new CRTime(220);CRTime crtimeEnd2 = new CRTime(200);TimeSlot timeslot1 = new TimeSlot(daysOfWeek1, crtimeStart1, crtimeEnd1);TimeSlot timeslot2 = new TimeSlot(daysOfWeek1, crtimeStart2, crtimeEnd2);assertEquals(false, timeslot1.equals(crtimeEnd1);assertEquals(true, timeslot1.equals(timeslot1);assertEquals(false,timeslot1.equals(timeslot2);public static void main(String args) junit.textui.TestRunner.run(StatementCoverage.class);得到结果,如图2.9所示。图2.9 语句覆盖测试结果(3)判定覆盖或分支覆盖判定覆盖或分支覆盖保证程序中的每个分支至少执行一次,根据程序的流程图可知,程序代码有三个分支构成,因此需要三个测试用例。import static org.junit.Assert.*;import junit.framework.TestCase;import org.junit.Test;public class BranchCoverage extends TestCase public void testEquals() throws CRTimeException boolean daysOfWeek1 = false, false, true, false, false, false, false,false ;CRTime crtimeStart1 = new CRTime(150); CRTime crtimeStart2 = new CRTime(0);CRTime crtimeEnd1 = new CRTime(220); CRTime crtimeEnd2 = new CRTime(200);TimeSlot timeslot1 = new TimeSlot(daysOfWeek1, crtimeStart1, crtimeEnd1);TimeSlot timeslot2 = new TimeSlot(daysOfWeek1, crtimeStart2, crtimeEnd2);assertEquals(false, timeslot1.equals(crtimeEnd1);assertEquals(true, timeslot1.equals(timeslot1);assertEquals(false,timeslot1.equals(timeslot2);public static void main(String args) junit.textui.TestRunner.run(BranchCoverage.class);结果如图2.10所示。图2.10 判定覆盖或分支覆盖结果(4)条件覆盖条件覆盖保证当判定式中含有多个条件时,要求每个条件的取值均得到检验。import static org.junit.Assert.*;import junit.framework.TestCase;import org.junit.Test;public class ConditionCoverage extends TestCase public void testEquals() throws CRTimeException boolean daysOfWeek1 = false, false, true, false, false, false, false,false ;boolean daysOfWeek2 = false, false, false, true, false, false, false,false ;CRTime crtimeStart1 = new CRTime(100); CRTime crtimeStart2 = new CRTime(50);CRTime crtimeEnd1 = new CRTime(210); CRTime crtimeEnd2 = new CRTime(200);TimeSlot timeslot1 = new TimeSlot(daysOfWeek1, crtimeStart1, crtimeEnd1);TimeSlot timeslot2 = new TimeSlot(daysOfWeek2, crtimeStart2, crtimeEnd2);assertEquals(false, timeslot1.equals(crtimeEnd1);assertEquals(true, timeslot1.equals(timeslot1);assertEquals(false, timeslot1.equals(timeslot2);public static void main(String args) junit.textui.TestRunner.run(ConditionCoverage.class);结果如图2.11所示。图2.11条件覆盖结果(5)判定-条件覆盖判定-条件覆盖使得判定中每个条件的所有可能取值至少满足一次,同时使每个分支也至少执行一次。import static org.junit.Assert.*;import junit.framework.TestCase;import org.junit.Test;public class BranchConditionCoverage extends TestCase public void test() throws CRTimeException boolean daysOfWeek1 = false, false, true, false, false, false, false,false ;CRTime crtimeStart1 = new CRTime(150); CRTime crtimeStart2 = new CRTime(60);CRTime crtimeEnd1 = new CRTime(220); CRTime crtimeEnd2 = new CRTime(200);TimeSlot timeslot1 = new TimeSlot(daysOfWeek1, crtimeStart1, crtimeEnd1);TimeSlot timeslot2 = new TimeSlot(daysOfWeek1, crtimeStart2, crtimeEnd2);assertEquals(true, timeslot1.equals(timeslot1);assertEquals(false, timeslot1.equals(crtimeEnd1);assertEquals(false,timeslot1.equals(timeslot2);public static void main(String args) junit.textui.TestRunner.run(BranchConditionCoverage.class);结果如图2.12所示。图2.12判定-条件覆盖结果(6)条件组合覆盖条件组合覆盖使得每个条件表达式中的每个项的所有可能至少出现一次,且每个条件表达式的判定结果也至少出现一次。import static org.junit.Assert.*;import junit.framework.TestCase;import org.junit.Test;public class Conditioncombinationcoverage extends TestCase public void testEquals() throws CRTimeException

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论