- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 单元测试;思维导图 ; 基本单元必须具备一定的基本属性,有明确的规格定义,以及包含与其他部分接口的明确定义等,从软件工程的角度来说,具有功能的独立性、符合高内聚和低耦合的特性,并且能够清晰地与同一程序中的其他单元划分开来。 对于结构化的编程语言而言,程序单元通常是指程序中定义的函数或子程序,单元测试就是指对函数或子程序所进行的测试。对于面向对象的编程语言而言,程序单元通常指特定的一个具体的类或相关的多个类,单元测试主要是指对类的测试。 通常而言,单元测试是在软件开发过程中要进行的最低级别的测试活动,或者说是针对软件设计的最小单位即程序模块、函数、类或方法所进行的正确性检验的测试工作,其目的在于发现每个单元内部可能存在的错误或缺陷。 ; 在单元测试活动中,软件的独立单元是在与程序的其他部分相隔离的情况下进行测试,主要工作分为两个步骤:人工静态检查(静态测试)和动态执行跟踪(动态测试)。前者主要是保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性,并尽可能地发现程序中可能存在的错误或缺陷。后者就是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误或缺陷。 一般情况下应该由程序员完成单元测试工作,并且在提交产品代码的同时也提交测试 代码。当然,为了确保软件质量,测试部门可以对其测试工作做一定程度的抽样测试和审核, 必要时可以由测试团队专门进行单元测试。; 单元测试的目标就是验证开发人员所编写的编码是否产生预期结果、是否符合设计的要求, 最终确保单元符合需求。同时,代码的质量、可复用性、代码的可维护性及代码的可扩展性的检查也是单元测试的目标。符合需求的单元代码通常应该具备以下性质:正确性、清晰性、 规范性、一致性、高效性、可复用性等。 ? 正确性:代码逻辑必须正确,能够实现预期的功能。 ? 清晰性:代码必须简明、易懂,注释准确没有歧义。 ? 规范性:代码必须符合企业或部门所定义的共同规范,包括命名规则???代码风格等。 ? 一致性:代码必须在命名上(如:相同功能的变量尽量采用相同的标识符)、风格上都保持统一。 ? 高效性:代码不但要满足以上性质,而且需要尽可能减少代码的执行时间。 ? 可复用性:代码尽量做到可复用、标准化,便于以后重用。; 由于一个模块、函数、类或类中的一个方法(Method)并不是一个能单独运行的独立程序, 在进行测试时需要同时考虑该单元和外界的接口,因此要用到一些辅助模块来模拟与所测模块相连的其他模块。一般把这些辅助模块分为两种: (1) 驱动模块(driver):其作用相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实际测试结果。驱动模块的作用为: ? 接受测试输入 ? 对输入进行判断 ? 将输入传给被测单元,驱动被测单元执行 ? 接受被测单元执行结果,并对结果进行判断 ? 将判断结果作为用例执行结果并输出测试报告; (2) 桩模块(stub):其代替所测模块调用的子模块。桩模块可以进行少量的数据操作,不需要实现子模块的所有功能,但要根据需要来实现或代替子模块的一部分功能。桩模块是一次性模块,主要是为了配合调用它的父模块工作。 通过开发驱动器或(和)桩,被测试模块和与它相关的驱动模块或(和)桩模块共同构 成了一个“测试环境”,如图所示。; 为了确保可以高质量地完成单元测试,在设计桩模块和驱动模块时最好多考虑一些环境因素,如开发环境及测试工具的集成、系统时钟、文件状态(假如,单元模块需要从外部读入数据文件,文件的位置、格式等必须按照要求准备完毕)、单元加载地点、甚至外部设备,以及与实际环境相同的编译器、操作系统、计算机等。 在面向对象的系统中,一般以类为测试单元,有时也会以类内方法作为单元。对于包 或子系统而言,可以设计一个测试模块类来做驱动模块,用于测试包中所有的待测试类。最好不要在每个类中用一个测试函数的方法来测试跟踪类中所有的方法。; 单元测试的主要过程如下: (1)详细设计说明书(规约)通过评审。 (2)编制单元测试计划(测试经理)。 (3)编制子系统单元测试计划(如果需要的话)(开发组)。 (4)编写测试代码并开发单元测试用例(开发组)。 (5)代码审查(开发组或测试组)。 (6)测试用例评审(开发组或测试组)。 (7)测试执行(开发组)。 (8)缺陷提交(开发组)。 (9)缺陷跟踪(开发组或测试组)。 (10)测试报告及评审(开发组或测试组)(未通过回到第(4))。; 做好单元测试,提高单元测试的质量,仅仅了解单元测试的技术还远远不够,选择合 适的单元测试策略也至关重要。单元测试的各个组件不是孤立的,是整个系统的组成部分, 单元测
文档评论(0)