canmove, Confirmed users
2,041
edits
No edit summary |
|||
| Line 1: | Line 1: | ||
= Objective = | |||
Separate concerns for Continuous Integration (CI) vs. User Acceptance Testing (UAT) so that test processes and automation harnesses can optimize for their specific purposes and minimize risk and dependency. | Separate concerns for Continuous Integration (CI) vs. User Acceptance Testing (UAT) so that test processes and automation harnesses can optimize for their specific purposes and minimize risk and dependency. | ||
= Challenges Addressed = | |||
* Development and QA have different approaches and needs from UI testing | * Development and QA have different approaches and needs from UI testing | ||
* Team has been blocked too much by cross-team dependencies | * Team has been blocked too much by cross-team dependencies | ||
= The Problem = | |||
To date, UI automation has been treated as a single type of testing, with the differences expressed largely as to whether it was running on TBPL or not, was written in JS or Python, who sheriffed, and so forth. And so much discussion, debate, and analysis paralysis has involved whether the automation should be run, written, or treated a particular way. It has been all too common to reach an impasse based on differing opinions. | To date, UI automation has been treated as a single type of testing, with the differences expressed largely as to whether it was running on TBPL or not, was written in JS or Python, who sheriffed, and so forth. And so much discussion, debate, and analysis paralysis has involved whether the automation should be run, written, or treated a particular way. It has been all too common to reach an impasse based on differing opinions. | ||
| Line 26: | Line 24: | ||
However, these are weaknesses in perception. When used for their own specific purposes, each type of automation provides great value. Further, the compromises each makes are compensated for by the other. | However, these are weaknesses in perception. When used for their own specific purposes, each type of automation provides great value. Further, the compromises each makes are compensated for by the other. | ||
= The Solution = | |||
The solution is to separate the concerns. And since each type has a different primary stakeholder, ownership should be separated as well. | The solution is to separate the concerns. And since each type has a different primary stakeholder, ownership should be separated as well. | ||
== Two different suites of UI automation == | |||
* Continuous Integration | * Continuous Integration | ||
| Line 52: | Line 50: | ||
** Primarily runs on-device to test full stack | ** Primarily runs on-device to test full stack | ||
== Different Contexts == | |||
The main differences are: | The main differences are: | ||
| Line 71: | Line 69: | ||
* It is more important that UATs be complete than solid. All acceptance criteria must be tested to accept a build. | * It is more important that UATs be complete than solid. All acceptance criteria must be tested to accept a build. | ||
== Ownership and Overlap == | |||
Ownership is separated because these differences can lead to variant needs in terms of breadth and depth of verification. | Ownership is separated because these differences can lead to variant needs in terms of breadth and depth of verification. | ||
| Line 81: | Line 79: | ||
Via skillful code reuse, each suite can be treated as an independent target without increasing maintenance unacceptably. | Via skillful code reuse, each suite can be treated as an independent target without increasing maintenance unacceptably. | ||
= Timeline = | |||
The time is now. | The time is now. | ||
| Line 89: | Line 87: | ||
QA has defined and will own UATs as an aid to its acceptance mandate, development will continue to own CI as an aid to its own processes. | QA has defined and will own UATs as an aid to its acceptance mandate, development will continue to own CI as an aid to its own processes. | ||
= Risks = | |||
None. | None. | ||