zoukankan      html  css  js  c++  java
  • 软件测试框架1

    一、 软件相关知识

    1.什么是软件?

    软件=程序(源程序,目的程序)+数据+文档

    备注:软件测试对象包括以上三部分

    2.IT技术部门结构组成

    1) 产品部:用户需求文档(预期结果),界面原型图

    2) 开发部:编码,得到程序(源程序,目的程序)(实际结果)

    3) 测试部:比对实际结果与预期结果之间的差别(得到程序的bug、文档的bug、数据的bug)

    4) 运维部:后期运行上线中涉及的数据维护、技术问题等。

    3.软件的生命周期(软件是怎么做出来的?)

    1) 项目计划

    2) 需求(需求规格说明书SRS)

    3) 设计(概要设计说明书+详细设计说明书)

    4) 编码(源程序,目的程序)

    5) 测试(bug)

    6) 运行上线

    (测试从需求阶段就开始介入)

    (瀑布模型中测试在编码之后介入)

    4.软件的项目组成人员

    1) 项目经理

    2) 需求分析人员

    3) 设计人员

    4) 编码人员

    5) 测试人员

    6) 运维人员

    7) 配置管理人员:

      配置项=代码+文档,整个软件研发过程中所有交付件。

    8) SQA:软件质量保障工程师

      职责:

    a) 指定规范,流程

    b) 监督项目组成人员按照流程工作,若违反,提出NC项(不符合项)

    c)检测评审项目成果,尤其是测试交付件

    5.软件研发模型/流程

    1) 瀑布模型

    100%需求——100%设计——100%编码——100%测试——投入使用

    优点:需求稳定,重复工作少,质量高

    缺点:项目周期长,成本高

    2) 螺旋模型

    50%需求——50%设计——50%编码——50%测试——首版本上线

    版本迭代,迭代周期4-8个月

    3) 敏捷模型(小版本迭代)

    20%需求——20%设计——20%编码——20%测试——首版本上线

    版本迭代,平均迭代周期1个月左右

    优点:项目周期短,小版本迭代,快速上线

    缺点:需求不稳定,重复工作多,质量下降

    6.软件缺陷引入的原因

    1) 需求:50%~60% 不重视需求导致频繁变更

    2) 设计:20%

    3) 编码:15%

    4) 其他:5%

    7. 软件缺陷的分类

    1) 遗漏:软件未实现需求中明确说明的部分

    2) 错误:软件中的实际效果与需求中描述的不一致

    3) 额外实现:软件实现了需求中未明确说明的部分

    二、测试基础

    1.软件测试的定义

    使用人工或自动化的手段来运行软件的过程,其目的在于检测他是否满足规定的需求,或是弄清楚预期结果与实际结果之间的差别

    2. 软件测试的目的

    1) 发现错误 有些错误偶发,有些错误藏很深

    2) 检测是否满足功能需求、性能需求、可靠性需求等

    3) 软件测试不能证明软件不存在缺陷

    3.软件测试的原则

    1) 所有的测试工作都应该追溯到用户需求

    2) 尽早启动测试工作,需求阶段就介入

     

    3) 穷尽测试是不可能的

    4) 测试是有风险的 遗漏

    5) 并非所有的缺陷都值得修复

    6) 杀虫剂怪事(测试用例对缺陷存在免疫能力)

    7) 帕累托法则,28法则

    80%缺陷存在于20%的核心业务模块中

    8) Bug的群集效应

    发现的缺陷越多,说明存在的缺陷越多

    A25个bug  B6个bug 增强测试谁

    9) 前进两步,后退一步

    V1.00

    5000=500fail+4500pass

    V1.01 回归测试

    (1)验证缺陷修复是否正确(执行500条用例)

    (2)重复测试

    ——完全重复测试(工作量巨大,考虑使用自动化)

    ——选择重复测试(主要选择相关功能进行重复测试)

    三、测试方法

    1.根据测试技术划分(根据是否关注程序内部结构)

    1) 黑盒测试:不需要关注程序内部结构

    2) 白盒测试:需要分析程序源代码(代码走查,写驱动,打桩)

    3) 灰盒测试:白加黑

    2.根据是否动态运行软件

    1) 静态测试:测试过程中不需要运行软件,包括代码走查、需求评审、文档测试、用例评审

    2) 动态测试:测试过程中需要运行软件

    3.根据是否使用自动化测试工具

    1) 人工测试

    2) 自动化测试

    四、测试过程

    1、 测试阶段

    1) 单元测试(UT)

      1. 测试范围:最小单位,函数或类
      2. 测试依据:详细设计说明书
      3. 测试方法:白盒测试
      4. 评估基准:逻辑覆盖,每个逻辑都测

    2) 集成测试(IT,组装测试)

      1. 测试范围:模块之间的接口,集成后的功能
      2. 测试依据:概要设计说明书(概设)
      3. 测试方法:灰盒测试
      4. 评估基准:接口覆盖

    3) 系统测试(ST)

      1. 测试范围:整个系统的功能及非功能(性能、兼容、安全、界面等等)
      2. 测试依据:需求规格说明书(SRS)
      3. 测试方法:黑盒测试
      4. 评估基准:需求覆盖

    4) 验收测试(UAT)

      1. 三种测试策略

    a) 正式验收测试(外包)

    ——参与人员:以用户为主的测试,参与人员包括项目组人员(产品、开发、测试),用户代表

    ——验收测试的结果,两种(用户可接受;用户不可接受)

    b) α测试:

    ——用户参与测试,在开发场地开展,旁边有技术人员指导

    c) β测试:

    ——用户参与测试,在用户实际环境展开,无技术人员指导

     

     

  • 相关阅读:
    多线程学习笔记第一篇
    当Visual Studio中win32控制台应用程序的注释也会生产代码时……
    博客行文及排版技法
    Debian Linux下的Python学习——安装python,vim
    onhashchange事件
    MyEclipse9 Maven开发Web工程 详细配置
    Java面向对象(上)
    lucene 的分析器(analyzer)与分词器(tokenizer)和过滤器(tokenfilter)
    java编程陷阱
    solr中文分词(mmseg4j)
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13383690.html
Copyright © 2011-2022 走看看