zoukankan      html  css  js  c++  java
  • 持续交付13-自动化验收测试

    自动化验收测试

    验收测试内容

    验收测试:用于验证一个用户故事或需求的验收条件是否被满足.验收测试可以分为:功能性验收测试和非功能性验收测试.
    功能测试:实际应用业务功能相关的测试;
    非功能测试:应用运行相关的容量,性能,可修改性,可用性,安全性,易用性等方面的测试.

    验收测试和单元测试的区别:

    验收测试针对业务;单元测试是针对开发;验收测试是验证应用功能是否是用户想要的;单元测试是验证功能是否开发想要的,这可能与实际用户的想法有出入.

    解决什么问题

    验收测试套件验证应用程序是否交付了用户期望的业务价值;
    防止回归问题或缺陷破坏应用程序原有功能;在线程问题,事件驱动问题,架构问题,环境及配置问题等排查上更便捷;
    减少测试人工操作负担;
    及早发现问题,发布时间流程可控,避免被测试环境延误产品发布;

    怎么做

    验收测试原则:

    1. 创建可维护的验收测试套件.定义验收条件;使用领域语言封装细节;面向接口开发,避免GUI上测试;
      定义验收条件

    2. GUI上的测试.采用窗口驱动模式测试;但是如果采用页面mvc模式,可以直接基于业务层执行测试,避免显示层测试;

    具体验收测试实现:

    1. 创建验收测试
      1. 分析人员和测试人员应该参与到整个项目周期中
      2. 迭代开发项目中的分析工作.每次迭代时需求和测试共同指定验收条件,最后由开发实现这些验收条件
      3. 将验收条件变成可执行的文档.
    2. 创建应用程序驱动层
      1. 使用DSL表述验收条件
      2. 窗口驱动器模式.就是通过抽象层使测试与GUI解耦.
    3. 实现验收测试
      1. 验收测试中的状态.维护一个最小受控数据集用于测试.充分利用数据间隔离性来保证测试互不影响.
      2. 过程边界,封装和测试.只在外部交互时使用桩数据.
      3. 管理异步与超时问题.让事件顺序发生,使测试看起来像是同步的.
      4. 使用测试替身对象.用于模拟外部服务,最小化外部依赖的影响.
    4. 维护验收测试套件
      1. 确保验收测试一直处于通过状态.问题所有团队成员负责,且问题可视化,便于追责和明确职责;
      2. 部署测试.测试环境状态初始化;配置环境验证;筛选可以立即失败的条件,便于快速失败;
    5. 验收测试性能.快速执行便于快速反馈,有利于开发效率的提高
      1. 重构通用任务.找到慢点,进行改造;找到通用模式,在其中找到共用点,添加一些种子数据(可能造成数据不一致).
      2. 共享昂贵资源.降低单独资源准备的消耗
      3. 并行测试.要求测试独立性比较好.
      4. 使用计算网格.多服务器并行执行验收测试.
  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/13362715.html
Copyright © 2011-2022 走看看