zoukankan      html  css  js  c++  java
  • 测试过程

    什么是单元测试?

    单元测试是针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作,

    单元测试的目的是检测软件模块对《详细设计说明书》的符合程度。

    什么是集成测试?

    集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装称为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;

    集成测试的目的是检测软件模块对《概要设计说明书》的符合程度。

    什么是系统测试?

    系统测试是将已经集成好的系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试工作;

    系统测试的目的在于通过与《需求规格说明书》作比较,发现软件与系统需求定义不符合或与之矛盾的地方。

    单元测试、集成测试和系统测试的比较

    测试方法不同

    单元测试属于白盒测试范畴;

    集成测试属于灰盒测试范畴;

    系统测试属于黑盒测试范畴。

    考察范围不同

    单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等;

    集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能;

    系统测试主要测试整个系统相对于需求的符合度。

    评估基准不同

    单元测试的评估基准主要是逻辑覆盖率;

    集成测试的评估基准主要是接口覆盖率;

    系统测试的评估基准主要是测试用例对需求规格的覆盖率。

    回归测试

    软件在测试或其他活动中发现的缺陷经过修改后,应该进行回归测试(Regression Testing)。目的是验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能。回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试。

    回归测试的策略包括:

    完全重复测试

    选择性重复测试:覆盖修改法(针对修改的部分)、周边影响法(针对修改部分和修改的扩散影响)、指标达成法(如修改代码100%覆盖,与修改相关接口60%覆盖)

    回归测试流程:(适用于单元测试、集成测试和系统测试)

    在测试策略制定阶段,制定回归测试策略

    确定需要回归测试的版本

    回归测试版本发布,按照回归测试策略执行回归测试

    回归测试通过,关闭缺陷跟踪单(问题单)

    回归测试不通过,缺陷跟踪单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试

    回归测试的自动化

    回归测试的自动化包括测试程序的自动运行、自动配置,测试用例的管理和自动输入,测试的自动执行,测试信息与结果的自动采集,测试结果的自动比较和结论的自动输出。

    验收测试:

    在通过了内部系统测试及软件配置审查之后,就可以开始验收测试。验收测试是以用户为主的测试。

    软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果,一般使用生产实践中的实际数据进行测试。

    除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能进行确认。

    验收测试根据合同、《需求规格说明书》或《验收测试计划》对产品进行验收测试。

    验收测试的结果有两种情况:

    软件功能、性能等质量特性与用户的要求一致,软件可以接受。

    软件功能、性能等质量特性与用户的要求有差距,不被用户接受。

    验收测试可以分成Alpha测试和Beta测试

    α测试

    α测试是由一个用户开发环境下进行的测试,也可以公司内部的用户在模拟实际操作环境下进行的测试。

    Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。

    α测试针对的是用户的测试 ,不能由程序员和测试员完成。

    α测试即为非正式验收测试。

    β测试

    β测试是由软件的多个用户实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。

    与α测试不同的是,β测试时开发者不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。

    只有当α测试达到一定的可靠程度时,才能开始β测试测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。

     

    测试过程模型

    V&V模型是一套切实可行的测试过程的理论依据。

    V&V即验证(Verification)和确认(Validation),具体的说,验证是否做了正确的事情,和确认是否把事情做正确了。

    验证:

    验证指保证软件正确地实现了特定功能的一系列活动。验证过程提供证据表明软件及相关产品与所有生命周期活动的要求(如正确性、完整性、一致性、准确性等)相一致;验证是否满足生命周期过程中的标准,时间和约定;验证为判断每一个生命周期活动是否已经完成,以及是否可以启动其他生命周期活动建立一个准则。

    确认:

    确认是指保证所生产的软件可追溯到用户需求的一系列活动。确认过程提供证据表明软件是否满足系统需求(指分配给软件的需求),并解决了相应的问题。

    Boehm对V&V的解释是:

    Verification:“Are we building the product right?”

    Validation:“Are we building the right product”

    双V内容为:

    需求分析-概要设计-详细设计-编码-代码审查-----单元测试计划、设计、实现-集成测试计划、设计、实现-系统测试计划、设计、实现

    -----执行单元测试-执行集成测试-执行系统测试

    CMM的全称是:Capability Maturity Model

    CMM关于过程的要素包括如下几个方面:

    角色(Roles)

    入口准则(Entry Criteria)

    输入(Inputs)

    活动(Activites)

    输出(Outputs)

    出口准则(Exit Criteria)

    评审和审计(Reviews and Audits)

    可管理和受控的工作产品(Work Products Managed and Controlled)

    测量(Measurements)

    书面规程(Documented Procedures)

    培训(Training)

    工具(Tools)

    软件测试主要包括软件系统测试、集成测试、单元测试三个大的阶段,每个大阶段包含4个小的阶段,每个小阶段有对应的输入、输出、入口和出口准则。

    软件系统测试阶段

    系统测试计划阶段、系统测试设计阶段、系统测试实现阶段、系统测试执行阶段。

         系统测试计划阶段 系统测试设计阶段 系统测试实现阶段 系统测试执行阶段
     输入

    《软件开发计划》

    《软件测试计划》

    《需求规格说明书》

    《需求规格说明书》

    《系统测试计划》

    《需求规格说明书》

    《系统测试计划》

    《系统测试方案》

    《系统测试计划》

    《系统测试方案》

    《系统测试用例》

    《系统测试规程》

    《系统测试预测试项》

     输出 《系统测试计划》 《系统测试方案》

    《系统测试用例》

    《系统测试规程》

    《系统测试预测试项》

    《系统测试预测试报告》

    《系统测试报告》

    《软件缺陷报告》

    软件集成测试阶段

         集成测试计划阶段 集成测试设计阶段 集成测试实现阶段 集成测试执行阶段
     输入

    《软件测试计划》

    《概要设计说明书》

    《概要设计说明书》

    《集成测试计划》

    《概要设计说明书》

    《集成测试计划》

    《集成测试方案》

    《集成测试计划》

    《集成测试方案》

    《集成测试用例》

    《集成测试规程》

     输出 《集成测试计划》 《集成测试方案》

    《集成测试用例》

    《集成测试规程》

    《集成测试报告》

    《软件缺陷报告》

    软件单元测试阶段

         单元测试计划阶段 单元测试设计阶段 单元测试实现阶段 单元测试执行阶段
     输入

    《软件测试计划》

    《详细设计说明书》

    《详细设计说明书》

    《单元测试计划》

    《详细设计说明书》

    《单元测试计划》

    《单元测试方案》

    《单元测试计划》

    《单元测试方案》

    《单元测试用例》

    《单元测试规程》

     输出 《单元测试计划》 《单元测试方案》

    《单元测试用例》

    《单元测试规程》

    《单元测试报告》

    《软件缺陷报告》

  • 相关阅读:
    【小程序】请求与封装
    【小程序】生命周期
    【小程序】项目结构
    【笔记】vue-cli 开发环境中跨域连接后台api(vue-resource 跨域post 请求)
    【笔记】npm 安装 vue-cli
    【笔记】css 实现宽度自适应屏幕 高度自适应宽度
    【笔记】css 1像素边框
    【笔记】让360浏览器用chrome 内核渲染你的网页
    【实践】require.js + r.js 代码打包压缩初体验
    【笔记】学校项目开发中所了解的一些浏览器之间的差异
  • 原文地址:https://www.cnblogs.com/privilege/p/11195242.html
Copyright © 2011-2022 走看看