软件测试

一、软件测试的五大要素和两大目标

要素:质量,人员,资源,流程,技术

目标:提高测试覆盖率,提升测试效率

二、软件测试的目的

1)发现缺陷,提高质量

2)验证是否满足需求(功能需求、性能需求、可靠性需求)

3)建立软件质量信心

三、软件测试遵循的原则

1)测试显示缺陷的存在,但不能证明系统不存在缺陷

2)穷尽测试是不可能的

3)软件测试应尽早进行

4)缺陷具备群集特性(如果一个模块中我们发现了越多的缺陷,说明这个模块有越多的缺陷没被发现)

5)测试杀虫悖论(测试用例、测试方法应该不定期的评审、修改,测试用例和测试方法一直不变会发现不了新的缺陷)

6)二八原则(80%的时间和资源用在20%的重点模块)

7)测试活动依赖于测试背景

四、测试的分类

 人工测试:个人复查,抽查和会审
 机器自动测试:

1.按照是否关系到软件内部结构具体实现角度划分:

  A.白盒测试B.黑盒测试 C.灰盒测试 
      

2.按阶段分:

软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试

   a) 单元测试:详细设计文档。对软件中的最小可验证单元进行检查和验证。比如对Java中的类和方法的测试

         单元测试的原则:

  •       尽可能保证各个测试用例是相互独立的
  • 一般由代码的开发人员实施,用以检验所开发代码的功能复合自己的设计要求

单元测试的益处

  • 能尽早发现缺陷
  • 有利于重构
  • 简化集成(保证最小单元模块大的稳定性和正确性,简化后面的集成测试)
  • 文档(减少文档的存在)
  • 用于设计(设计思路体现在单元测试)

    b) 集成测试:概要设计文档。主要测试模块与模块之间的接口的关系

  • 主要实施方案:Big Bang、自定向下、自底向上、核心系统集成、高频集成


    c) 系统测试:系统设计文档。安全,性能,压力,功能,回归
    
    d) 验收测试:alpha测试和beta测试(个人复查,抽查和会审)

α测试: 测试人员用用户提供的数据,而不是模拟数据进行测试;测试整个系统,以保证其达到可以交付使用的状态。(内部人员)
β测试: 指将软件安装在一些潜在的客户处,由客户们根据实际使用情况将遇到的问题 报告出来的测试方法。


3.按状态分:

静态测试:无需执行被测程序,检查文档和代码来测试
互审,走查,会议

动态测试:通过运行被测程序,检查运行结果与预期结果的差异

4.测试执行的方式分:

     手工测试:专门的测试人员从用户视角验证软件是否满足用户需求

 如:众包测试、探索式测试

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

 

       自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查

如:单元测试、接口测试、性能测试

  • 优点:高效率、速度快、高复用性、覆盖率容易度量、准确、可靠、不知疲劳
  • 缺点:机械、发现缺陷率低、一次性投入较大

5.按测试模式分:

1)瀑布模型

项目计划 ——需求分析—— 软件设计—— 程序开发 ——软件测试 ——集成维护

 

2)敏捷测试

Agile Testing --- 遵循敏捷宣言的一种测试实践

强调从客户角度进行测试,重点关注迭代测试新功能,尽早测试,强调持续反馈,预防缺陷比较重要

 

3)基于脚本的测试 --- SBT

scripted - based Testing

 

4)基于风险的测试 --- RBT

Risk - based Testing,基于对软件失效的风险评估以此指导测试计划、设计、执行、结果评价的软件测试类型

质量风险、管理风险

5)探索式测试(ET)

完全抛开测试脚本的测试

五、软件测试的结束标志

1)全部测试用例回归测试都执行完成

2)未修改bug都被确认或置为应有状态。暂缓修改的问题都有详尽的解释。

3)测试报告编写完成

4)测试收尾工作结束

5)测试总结完成

6)项目处于试运行或上线阶段。继续关注产品试运行出现的问题,并及时录入bug管理系统。

六、测试用例

1.测试用例通常包括哪些内容?

用例编号、测试环境、用例标题、输入数据、预期结果等

2.怎样的测试用例是好的测试用例?

  • 用例覆盖程度——覆盖率最大化。  
  • 用例是否已经达到工作量最小化
  • 用例的分类以及描述是否足够清晰
  • 用例是否表明了测试目的
  • 测试用例的易于维护性

七、软件缺陷

定义,满足5个条件之一(所有软件问题都称为缺陷)
– 软件未达到产品说明书中已标明的功能
– 软件出现了产品说明书中指明不会出现的错误
– 软件功能超出了产品说明书指明的范围
– 软件未达到产品说明书虽未指出但应达到的目标
– 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效不好。

八、正交实验法

 

行数\因素数123
1000
2001
3010
4111

         


 

 

 

 

  行数:4        因素数:3            水平数:2(0和1)

  • 行数 = 因素数*(水平数 - 1)+ 1
性能测试软件在一些超负荷情况下的运行情况,包括压力测试和负载测试 。
可靠性测试为了评估产品在规定的寿命期间内,在预期的使用、运输或储存等所有环境下,保持功能可靠性而进行的活动,侧重的应该是各种不同使用环境的可靠性
回归测试修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。新引入的变化没有给现有软件造成破坏


九、


  1.桩模块(Stub)
模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。在自顶向下的集成过程中尤其有效

 2.软件测试主要工作内容
   验证(verification)和确认(validation)

3.人员及负责内容
   测试设计人员:主要负责设计测试用例以及设计测试过程
   测试经理:制定测试计划
   测试经理组织召集开发和测试的相关人员:评估测试活动

 4.代码评审

也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动,一般由 **程序员**担任

 

CMMI

CMMI将能力成熟度分为5个级别:初始级,已管理级,已定义级,量化管理级,优化级。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值