软件测试(一)

软件测试的分类
  1.按测试阶段分类
    1).单元测试
    2).集成测试
    3).系统测试
    4).验收测试
  2.测试手段的分类
    1).根据测试对象的可见度:黑盒测试、 白盒测试
    2).根据状态:静态测试、动态测试
    3).执行方式:手工测试、自动化测试
一. 单元测试:对软件中的最小可测试单元进行检查和验证。
1. 单元测试原则:
   1). 尽可能保证各个测试用例是相互独立的。
   2). 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
2. 单元测试的益处:
   1). 尽早发现缺陷;
   2). 有利于重构  
   3). 简化集成    
   4). 文档 
   5). 用于设计                                                
3. 单元测试限制:
    1).不可能覆盖所有的执行路径,发现所有路径的错误 
    2).每一行代码 一般需要3~5行测试代码才能完成单元测试,存在投入和产出的一个平衡
二. 集成测试:在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动
1. 集成测试的主要实施方案:
      1). Bigbang、自顶向下、自底向上(常用)、核心系统集成、高频集成
2.单元和集成区别:
      1). 测试对象不同(单元:软件基本单元;集成:模块与子系统)
      2). 测试依据不同(单元:软件详细设计;集成:概要设计)
      3). 测试方法不同 (集成:接口;单元:单元的类)
三. 系统测试:是将经过集成测试的软件,作为计算机系统的一个部分与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件的问题
1. 关注点:
      1). 关注系统本身的使用、关注系统与其他系统间的连通、关注系统在不同压力下的表现、关注系统在真实环境下的表现
2. 系统测试和集成测试
      1). 测试对象不同:
           集成:由通过了单元测试的各个模块集成起来的构件;
           系统:除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统。
      2). 测试时间:集成测试介于单元测试和系统测试之间,系统测试在集成测试之后
      3). 测试内容:集成:各个单元模块之间的接口 系统:整个系统完整的功能
      4). 测试角度:集成:偏于技术;系统:偏于业务
四.  验收测试:
1. 确定系统是否满足验收标准
2. 用户验收测试和运行验收测试、合同和规范验收、alpha测试(开发者环境)、beta测试(用户环境)

一、黑盒测试:
1、不考虑内部结构(只测功能,输入——输出)
2、优点:
(1)容易实施;
(2)更贴近用户的使用角度;
缺点:
(1)测试覆盖率较低(不到代码量的40%);
(2)复用率低,维护成本高;
3、主要测试什么:
(1)是否有不正确或者遗漏的功能;
(2)在接口上,输入是否能正确的接受?能否输出正确的结果?
(3)是否有数据结构错误或外部信息(如数据文件)访问错误?
(4)性能是否能够满足要求
4、系统测试用到黑盒测试较多;
5、设计方法
(1).等价类划分:把典型的数据划分成几类,进行测试。
(2).边界值分析法:关注等价类划分法里面每个类型的边界值。
(3).错误推测法:基于经验直觉推测可能出现错误的地方。
(4).因果图法:关注产品的说明书,根据说明书输入输出生成因果图,根据因果图进行判定 。
(5).正交试验分析法:
(6).状态迁移图法:根据产品的状态编写测试用例。 
(7).流程分析法:根据产品的流程路径编写测试用例。
二、白盒测试()1、逻辑结构2、逻辑单位:
 (1)语句覆盖:保证每条语句执行一次
 (2)分支(判定):保证每条分支至少执行一次
 (3)条件:条件表达式,至少计算一次
 (4)条件组合:所以不同条件下的组合情况
 (5)路径:程序中,每个可能的路径至少执行一次
3、优点:
 
(2)检测代码中的每条分支和路径;
(3)揭示隐藏在代码中的错误;
(4)对代码的测试比较彻底;
缺点:
(1)昂贵;
(2)无法检测代码中遗漏的路径和数据敏感性错误;
(3)不能直接验证需求的正确性(从代码来验证的)
4、测试方法:
(1)代码检测法(代码和设计的一致性)
(2)静态结构分析法(内部结构的分享)
(3)静态质量度量法(质量的标准)
(4)逻辑覆盖法:语句、条件、条件组合、判定、路径、条件判定
(5)基本路径测试法(控制流图)
三、灰盒测试
1、介于黑、白盒测试之间,关注输出对于输入的正确性,同时也关注内部表现;

四、静态测试
1、无须执行程序,看文档或者代码;
2、方式:互审(相互)、走查(小组)、会议

五、动态测试
1、运行程序,检查运行结果与预期结果的差异;

六、手工测试
1、由专门的测试人员从用户的视角验证,更适用针对深度的测试和强调主观判断的测试;
2、众包测试、探索式测试;

七、自动化测试
1、使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查;
2、单元测试、接口测试、性能测试;

手工测试:
优点:易发现缺陷;容易实施;创造性、灵活性;
缺点:覆盖量化难;重复测试效率低;不一致性、可靠性低、人力资源依赖;

自动化测试:
优点:高效率、速度快;高复用性;覆盖率容易度量;准确、可靠;不知疲劳;
缺点:机械、发现缺陷率低;一次性投入较大;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值