The Acceptance Test Engineering Guide will provide guidance for technology stakeholders (developers, development leads, testers, test leads, architects, etc.) and business stakeholders (managers, customers, end users, etc) on the discipline of acceptance testing.

What is acceptance testing?

Acceptance Testing: Planned evaluation of a system by customers/customer proxies to assess to what degree it satisfies their expectations.

Reading Notes

  • Test automation is software development.
  • Much of the cost of software development is maintenance - changing the software after it is written.
  • Successful organizations understand that test automation is software development, that it involves significant maintenance costs, and that they can and must make deliberate, vigilant effort to keep maintenance costs low.
  • The need to change tests comes from two directions: changes in requirements and changes in the system’s implementation.
  • If we can’t stop requirements and implementations from changing, the only way to keep the maintenance cost of tests low is to make the tests adaptable to those kinds of changes.
  • Developers have learned - often through painful experience - that two key factors make code difficult to change: Incidental details and duplication.
  • An acceptance test investigates a system to determine whether it correctly implements a given responsibility.
  • The essence of an acceptance test is the responsibility it investigates, regardless of the technology used to implement the test.
  • Duplication destroys maintainability.
  • If you write automated tests so that they express system responsibilities clearly and directly, and if you remove duplication, you will significantly reduce the maintenance costs that arise from both changes in requirements and changes in system implementation.
  • One of the key forms of waste in software development is handoffs between highly-specialized roles.
  • Bug Triage which divided the bugs into three categories with respect to the next milestone or release: Must Fix, Would Like to Fix (if we have time), and Will Not Fix.
  • Triage should only look at new bugs - re-examing old bugs repeatedly is waste.
  • The most effective way to ensure that poor quality software gets delivered is to ask the supplier to over commit.
  • Time-boxed incremental development is a proven technique for achieving on-time delivery of quality software.
  • A feature is an independently testable unit of functionality that is either directly visible to a customer (customer-facing feature) or is a piece of infrastructure that will be consumed by another feature.
  • Building quality in - start with the end in mind.
  • The ultimate goal of any development process is to build the right product of high quality and to build it with minimum waste.
  • Defect Prevention before Defect Detection.
  • Automated unit and component tests define the design intent of the software.
  • In lean thinking such as exemplified by the lean manufacturing paradigm used by Toyota, unfinished work (inventory) is considered a form of waste. In software development, software that has been written but has not been accepted is unfinished work.
  • Functional tests should be run as soon as the corresponding functionality is built. This should include business workflow tests that verify end to end business processes, use case tests that verify the various scenarios of a single use case or business transaction, and business rule tests that ensure that business rules are implemented correctly.
  • Business-Facing Tests : When we (Product Owner, often together with someone from the Product Development Team) prepare these tests before development starts, we can be sure that the Product Development Team understands what they need to build. This is known as Acceptance Test-Driven Development.
  • Technology-Facing Tests: The Test-Driven Development process has been shown to significantly improve the quality of the software in several ways including better software structure, reduced software complexity, and fewer defects found during acceptance testing.
  • Test Strategy, one of the key decisions is what kinds of tests should be automated and which approach to testing should be used for manual test. The goal of these decisions is to try to minimize project risk while also minimizing the time and effort spent testing the software.
  • Exploratory testing is an effective and efficient approach to testing that leverages the intelligence of the testers to maximize the bugs found in a fixed amount of time.
  • A common strategy on projects that have an extensive suite of automated tests is to run these tests first as a form of regression test as the first activity in a test cycle; this is a form of extended smoke test. This ensures that the software functions properly before a human tester spends any time doing manual testing.
  • Developers may prepare unit tests to verify that the code they wrote has successfully achieved the design intent.
  • System testing is done at the level of the whole product and can include a range of system sizes: individual systems or integrated workflows through multiple systems that have to interact.
  • Component tests are used for testing packages, individual executables or subsystems.
  • The granularity of unit testing can be on little things like methods / functions or bigger things like modules and classes.
  • An alternative to using a plan-driven approach within the test cycle is to use a more interative style known as Session-Based Test Management. Session-Based Test Management is commonly used with exploratory testing.
  • Exploratory testing is summarized as "Simultaneous test design and execution with an emphasis on learning".

Related Readings

Reading Notes of Acceptance Test Engineering Guide的更多相关文章

  1. kafka definitive guide - reading notes

    一.认识Kafka 1)什么是sub/pub模型, 发布订阅模型   Publish/subscribe messaging is a pattern that is characterized by ...

  2. Some notes of An Insider's Guide to TOEFL iBT

    尽早把托福这个坑填上方是正道,在正式上托福课之前阅读了这本Guide,颇受启发——只要是考试,总是有固定的方法的= = An Insider's Guide to TOEFL iBT It is NO ...

  3. DataOps Reading Notes

    质量.效率.成本.安全,是运维工作核心四要素. AIOps 技术会涉及到数据收集方面的基础监控,服务监控和业务监控,甚至会涉及到与持续交付流水线的数据和状态整合(比如在软件发布的阶段会自动关闭某些监控 ...

  4. [Notes] Reading Notes on [Adaptive Robot Control – mxautomation J. Braumann 2015]

    Reading sources: 1.Johannes Braumann, Sigrid Brell-Cokcan, Adaptive Robot Control (ARC  ) Note: buil ...

  5. Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System

    resource: On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System ...

  6. Effective Objective-C 2.0 Reading Notes

    1. Literal Syntax NSString *someString = @"Effective Objective-C 2.0"; NSNumber *someNumbe ...

  7. today reading notes

    paminit manager from upstart to systemd/systemctl;Vivid Vervet  + openStack kilo;为容器开发者(OpenStack工作环 ...

  8. Azure Active Directory document ---reading notes

    微软利用本地活动目录 Windows Server Active Directory 进行身份认证管理方面具有丰富的经验,现在这一优势已延伸基于云平台的Azure Active Directory.可 ...

  9. Reading Notes : 180211 概述计算机

    读书<计算机组成原理> <鸟哥的Linux私房菜 基础篇> 本章介绍电子计算机概念以及发展历史和发展趋势,内容摘自<计算机组成原理>  <鸟哥的Linux私房 ...

随机推荐

  1. mysql主从复制的一篇文章(转载)

      管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希 ...

  2. MapReudce中常见join的方案

    两表join在业务开发中是经常用到,了解了大数据join的原理,对于开发有很大的好处. 1.reduce side join reduce side join是一种简单的join的方法,具体思想如下: ...

  3. DIOCP之数据接收事件

    一.不引用编码器与解码器的情况下(ECHO的DEMO) 类TIOCPtcpclient,接收服务器的数据事件:OnRecvBuffer 类TDiocpTcpServer,接收客户端数据事件:OnRec ...

  4. IP验证

    function isIP(str) { var IP = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)'; var IPdot = IP + '\\.'; var ...

  5. JAVA:抽象类VS接口

    JAVA中抽象类和接口的区别比较,以及它们各自的用途. 1.JAVA抽象类: 抽象类除了不能实例化以外,跟普通类没有任何区别.在<JAVA编程思想>一书中,将抽象类定义为“包含抽象方法的类 ...

  6. poj 3368 Frequent values(RMQ)

    /************************************************************ 题目: Frequent values(poj 3368) 链接: http ...

  7. [转载] 散列表(Hash Table)从理论到实用(中)

    转载自:白话算法(6) 散列表(Hash Table)从理论到实用(中) 不用链接法,还有别的方法能处理碰撞吗?扪心自问,我不敢问这个问题.链接法如此的自然.直接,以至于我不敢相信还有别的(甚至是更好 ...

  8. Java如何将html转以后的字符转化成正常显示的字符

    String str = "“!@#¥%……&——+”";//“!@#¥%……&——+”  中文状态下的标点符号,进过html转换了 String convStr ...

  9. unreal3的坐标系统和vector/rotator

    unreal3的坐标系有点奇葩,属于[z轴向上的左手坐标系]: 1.左手食指指前方,x正向 2.大拇指指上方,z正向 3.中指指右方,y正向 若以我们人头摆正时来参考: 1.目视的是前方,x正向 2. ...

  10. JAVA基础之两种核心机制

    突然之间需要学习Java,学校里学的东西早就忘记了,得用最短的时间把Java知识理顺,重点还是J2EE,毕竟所有的ava项目中95%都是J2EE,还是先从基础的J2SE学起吧....... 首先是了解 ...