文档详情

软件测试过程方法.ppt

发布:2017-05-03约1.72万字共141页下载文档
文本预览下载声明
软件测试技术 4.1 软件测试过程方法概述 4.2 软件测试的过程简介 4.3 单元测试过程技术 4.3.1 单元测试的基本概念 一、单元测试的含义 单元测试是在软件开发过程中要进行的最低级别的测试活动,或者说是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。 对软件的基本组成单元进行的测试,检验程序最小单位有无错误。一般在编码之后,由开发人员完成。 二、单元的含义 单元是软件开发中的最小的独立部分,具有一些基本属性,可清晰的与同一程序中的其他单元划分开来。 没有精确的概念,可以小到一条语句,也可以大到多个模块的组合; 传统上,认为一个函数、子过程、菜单、一个界面、一个类是一个单元; 单元的最显著的特征就是可以作为一个整体; 例如:C语言中的单元可以是函数或者子过程;C++语言中的单元通常是类。 三、单元测试步骤与分工 在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,主要工作分为两个步骤:人工静态检查和动态执行跟踪。前者是尽可能地发现程序中没有发现的错误,后者是跟踪比较实际结果与预期结果来发现错误。 单元测试的分工大致如下:一般由开发组在开发组组长监督下进行,保证使用合适的测试技术,根据单元测试计划和测试说明文档中制定的要求,执行充分的测试;由编写该单元的开发组中的成员设计所需要的测试用例,测试该单元并修改缺陷。 四、单元测试的目标(P101) 检查代码实现是否符合设计 不能检查设计是否正确 尽早发现错误 Microsoft applications 10-20 defects/KLOC during unit testing 0.5 defects/KLOC after release 性价比最好 五、单元测试误区 1、单元测试是一种浪费时间的工作 2、单元测试只能证明代码做了什么 3、我是个很棒的程序员, 我是不是可以不进行单元测试? 4、集成测试能捕捉到所有的Bug 5、单元测试的成本效率不高 目前状况: 实施效果非常好,但是实施阻力比较大(主要是人员和管理因素),一般只在关键的程序单元中实施 有比较系统的理论和方法,但也依赖于系统的特殊性和开发人员的经验 有大量的辅助工具,开发人员也经常自己开发测试代码和测试工具 主要使用白盒测试和静态分析,也使用黑盒测试; 二、单元测试的出发点 1、判断得到的结果是否正确? 因为,对于测试而言,首要的任务就是察看一下所期望的结果是否正确,即对结果进行验证。 2、分析能否使用反向关联检查? 在实际程序中,有一些方法可以使用反向的逻辑关系来验证它们。 3、分析是否能使用其他手段来交叉检查一下结果? 一般而言,对某个值进行计算会有一种以上的算法,但我们会因考虑到运行效率或其他方面的原因而选择其中的一种。 4、分析是否可以强制一些错误发生? 5、分析出错处理是否正确? 一个好的设计应能预见各种出错条件,并进行适当的出错处理,即预设各种出错处理通路。 4.3.3 单元测试与系统集成测试区别 一、单元测试与集成测试区别 单元测试与集成测试的主要区别在于测试的对象不同。单元测试对象是实现具体功能的单元,一般对应详细设计中所描述的设计单元。集成测试是针对概要设计所包含的模块以及模块组合进行的测试。 单元测试所使用的主要测试方法是基于代码的白盒测试。而集成测试所使用的主要测试方法是基于功能的黑盒测试。 因为集成测试要在所有要集成的模块都通过了单元测试之后才能进行,也就是说在测试时间上,集成测试要晚于单元测试,所以单元测试的好坏直接影响着集成测试。 单元测试的工作内容包括模块内程序的逻辑、功能、参数传递、变量引用、出错处理、需求和设计中有具体的要求等方面测试。集成测试的工作内容主要是验证各个接口、接口之间的数据传递关系、模块组合后能否达到预期效果。 虽然单元测试和集成测试有一些区别,但是二者之间也有着千丝万缕的联系。目前集成测试和单元测试的界限趋向模糊。 二、单元测试与系统测试区别 单元测试与系统测试的区别不仅仅在于测试的对象和测试的层次的不同,最重要的区别是测试性质不同。在单元测试过程中,单元测试的执行早于系统测试,测试的是软件单元的具体实现、内部逻辑结构以及数据流向等。系统测试属于后期测试,主要是根据需求规格说明书进行的,是从用户角度来进行的功能测试和性能测试等
显示全部
相似文档