打字程序白盒测试.doc
《打字程序白盒测试.doc》由会员分享,可在线阅读,更多相关《打字程序白盒测试.doc(29页珍藏版)》请在沃文网上搜索。
1、目 录 摘要.1 引言.1 第一章 白盒测试研究.2 1.1 软件测试概述.2 1.2白盒测试.3 1.3代码测试.4 1.3.1静态测试.4 1.3.2动态测试.5 1.3.3接口测试.6 1.4白盒测试六种覆盖方法.7 1.5主流白盒测试工具.10 1.5.1Parasoft白盒测试工具集.10 1.5.2Compuware白盒测试工具集.10 1.6测试管理工具.11 第二章 项目分析与规划测试.12 2.1项目分析.12 2.2主要功能模块.12 2.3 测试环境配置.13 2.4 测试思路与测试方案设计.13 第三章 系统白盒测试实例的实现.15 3.1测试的目的.15 3.2测试项
2、.15 3.3通过的准则.15 3.4测试步骤.15 3.4.1静态测试.16 3.4.2动态测试.16 3.5测试实施.16 3.5.1接口测试.16 3.5.2数据流测试.20 3.5.3基本路径测试.23 3.5.4导出测试用例.24 3.5.5设计测试用例.24 3.8 测试总结.25 3.8.1软件测试的误区.25 3.8.2测试项目中的常见问题及处理方法.28 3.8.3测试的提高.29 总结与展望.31 致谢.32 参考文献.33 打字程序白盒测试摘要 软件开发和使用的历史已经留给了使用者很多由于软件缺陷而导致的巨大财力、物力损失的经验教训。这些经验教训迫使软件开发者们必须添加一
3、个相应的流程,并在此流程中采取强有力的检测措施来检测未发现的隐藏的软件缺陷,也就是软件测试。 软件测试的核心是测试思维,你的思维能深入到什么程度,测试就能做到什么程度,本次课题旨在训练我们的测试思维,同时通过本次的课题实例掌握测试流程与技巧,为我们成为真正的测试人员打下坚实的基础。 随着计算机软件的规模越来越大,软件测试成为了软件质量保障的关键环节,软件测试自动化也成为了软件测试领域所无法逾越的发展阶段。 本文将使用白盒测试技术对打字练习程序进行测试,通过设计测试方案,对程序进行系统的单元测试,收集测试数据,对测试数据进行分析等手段,最终生成相关资料及最终测试报告,详细介绍及探讨软件测试技术和
4、白盒测试实例的设计与实现。 本文的展开将通过以下三个部分: 第一部分:白盒测试及黑盒测试技术的相关介绍,市场上主流测试管理工具的对比分析。 第二部分:本文相关项目的案例分析和测试规划,打字练习程序白盒测试的测试思路和测试方案设计 第三部分:打字练习程序白盒测试的具体实现细则 关键字:黑盒测试,白盒测试,测试管理,测试桩,测试点 引言 信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的
5、顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在一些关键应用 (如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御和核电站安全控制系统等) 中使用质量有问题的软件,还可能造成灾难性的后果。 软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变
6、的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。 有鉴于此,本课题将基于白盒测试作为主要研究方向,本文将以打字练习程序作为对象,对软件测试(重点白盒测试)进行研究,以美国Mercury公司生产的TD软件为工具进行测试用例的管理 本文将通过对对打字练习程序进行白盒测试,对代码,接口等测试进行研究,以实现软件测试在实际项目中的应用,并深刻的理解白盒测试,及白盒测试在测试中所占地位 第一章 白盒测试研究 1.1 软件测试概述 软件测试就是在软件交付用户使用或投入运行前,对软件需求规格说明、设计
7、规格说明和编码的最终复审,是软件质量保证的关键步骤。 软件测试是为了发现错误而执行程序的过程。 软件测试在软件生命周期中横跨两个阶段:通常在编写出每一个模块之后就需要对它做必要的测试(称为单元测试)。编码和单元测试属于软件生命周期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,如集成测试、系统测试、性能测试和配置测试等,这是软件生命周期的另一个独立阶段,即测试阶段。 软件测试的目的: 测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行;好的测试用例在于发现至今未发现的错误;成功的测试是发现了至今未发现的错误的测试;好的测试工程师应该做到不仅发现问题,还能够帮助开
8、发人员分析问题; 软件测试的原则: 应把“尽早和不断地进行软件测试”作为软件开发者的座右铭,实践证明单元测试能够尽早发现问题,减少后期测试的错误量。可以采用Junit和Jtest来辅助进行单元测试;测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三部分组成;应当避免由程序员检查自己的程序。(指后期系统测试阶段,不包括单元测试);测试用例的设计要确保能覆盖所有可能路径。在设计测试用例时,应当包括合理的输入条件和覆盖所有可能路径不合理的输入条件。不合理的输入条件是指异常的,临界的,可能引起问题的输入条件;充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该程序中已发现的错
9、误数目或检错率成正比。应该对错误群集的程序段进行重点测试;严格执行测试计划,排除测试的随意性。测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准;应当对每一个测试结果做全面的检查;妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 软件测试的对象:软件测试并不单纯等同于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格
10、说明、详细设计规格说明以及源程序,都应该是软件测试(评审)的对象。 在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。 1.2白盒测试由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何
11、运作的。 白盒的测试用例需要做到: (1)保证一个模块中的所有独立路径至少被使用一次 (2)检查内部数据结构以确保其有效性 白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。 白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。 白盒测试的实施步骤: 测试计划阶段:根据需求说明书,制定测试进度 测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。 测试执行阶段:输入测试用例,得到测试
12、结果。 测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。 白盒测试的方法:总体上分为静态方法和动态方法两大类。 静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试 白盒测试的优缺点 优点:迫使测试人员去仔细思考软件的实现;可以检测代码中的每条分
13、支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 总的来说,白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。 那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一
14、个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。 1.3代码测试 1.3.1静态测试 执行代码静态测试应注意以下方面:同一程序内的代码书写是否为同一风格;代码布局是否合理、美观;程序中函数、子程序块分界是否明显;注释是否符合既定格式;注释是否正确反映代码的功能;变量定义是否正确(长度、类型、存储类型);子程序(函数和方法)接受的参数类型、大小、次序是否和调用模块相匹配合;函数的返回值类型是否正确;程序中是否引用了未初始化变量;数组和字符串的下标是否为整数;数组和字符串的下标是否在范围内(不“越界”);进行数组的检
15、索及其它操作中,是否会出现“漏掉一个这种情况”;是否在应该使用常量的地方使用了变量(例: 数组范围检查);是否为变量赋予不同类型的值;赋值是否符合数据类型的转换规则;变量的命名是否相似;是否存在声明过,但从未引用或者只引用过一次的变量;在特定模块中所有的变量是否都显式声明过;是否可以理解为该变量具有更高的共享级别;是否为引用的指针分配内存;数据结构在函数和子程序中的引用是否明确定义了其结构;计算中是否使用了不同数据类型的变量;计算中是否使用了不同的数据类型相同但长度不同的变量;赋值的目的变量是否小于赋值表达式的值;数值计算是否会出现溢出(向上)的情况;数值计算是否会出现溢出(向下)的情况;除数
16、是否可能为零;某些计算是否会丢失计算精度;变量的值是否超过有意义的值;计算式的求值的顺序是否容易让人感到混乱;比较是否正确;是否存在分数和浮点数的比较;精度问题是否会影响比较;每一个逻辑表达式是否都得到了正确表达;逻辑表达式的操作数是否均为逻辑值;程序中的BeginEnd和DoWhile等语句中,End是否对应;程序、模块、子程序和循环是否能够终止;是否存在永不执行的循环;是否存在多循环一次或少循环一次的情况;循环变量是否在循环内被错误地修改;多分支选择中,索引变量是否能超过可能的分支数; 该情况是否能够得到正确处理;全局变量定义和用法在各个模块中是否一致;是否修改了只作为输入用的参数;常量是
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 打字 程序 测试