Content deleted Content added
m Dating maintenance tags: {{Citation needed}} |
David Edgar (talk | contribs) lower case in section titles as per MOS |
||
Line 4:
'''Shift left testing''' <ref>{{cite web|url=http://blog.sei.cmu.edu/post.cfm/four-types-shift-left-testing-082 |title=Four Types of Shift Left Testing |author=Donald Firesmith | date=23 March 2015 |accessdate=27 March 2015}}</ref> is an approach to [[software testing]] and [[system testing]] in which testing is performed earlier in the lifecycle (i.e., moved left on the project timeline). It is the first half of the maxim "Test early and often."<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/vstudio/ee330950%28v=vs.110%29.aspx |title=Test Early and Often |author=Microsoft | date=2012 |accessdate=27 March 2015}}</ref>
== Harm
Shift left testing is important because it helps to prevent the following types of harm due to late testing:
* Testers may be less involved in initial planning, often resulting in insufficient resources being allocated to testing.
*
*
*
*
== Types of
There are four basic ways to shift testing earlier in the
=== Traditional
As illustrated in the following figure, traditional shift left moves the emphasis of testing lower down (and therefore slightly to the left) on the right hand side of the classic V model. Instead of emphasizing acceptance and system level testing (e.g., [[GUI testing]] with record and playback tools<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/dd286714.aspx |title=Record and Playback Manual Tests |author=Microsoft | date= 2013 |accessdate=27 March 2015}}</ref>), traditional shift left concentrates on [[unit testing]] and [[integration testing]] (e.g., using [[API testing]] and modern test tools). The transition to traditional shift left testing has largely been completed.{{By whom|date=April 2016}}
<gallery>
Line 21:
</gallery>
=== Incremental
As illustrated in the following figure, many projects developing large and complex software-reliant systems decompose development into a small number of increments (Vs) having correspondingly shorter durations. The shift left illustrated by the dashed red arrows occurs because parts of the single, large waterfall V model’s types of testing (shown in gray) are shifted left to become increments of the corresponding types of testing in the smaller incremental V models. When each increment is also a delivery to the customer and operations, then incremental shift left testing shifts both developmental testing and operational testing to the left. Incremental shift left testing is popular when developing large, complex systems, especially those incorporating significant amounts of hardware. Like traditional shift left, the transition to incremental shift left has also been largely completed.
<gallery>
Line 27:
</gallery>
=== Agile/DevOps
As illustrated in the following figure, [[Agile software development|Agile]] and [[DevOps]] projects have numerous short duration Vs (a.k.a., sprints) in lieu of a single or small number of V as in the previous two examples of shift left testing. These small Vs would also be modified if one or more early sprints are used to block out the basic requirements and architecture or if test-first and [[test-driven development]] (TDD) are being performed. The shift left occurs because the types of testing on the right sides of the earliest of these tiny Vs are to the left of the corresponding types of testing on right side of the larger V(s) they replace. While the following figure appears remarkably the same for Agile and DevOps, Agile testing is typically restricted to developmental testing and does not include operational testing, which occurs once the system is placed into operation. The transition to Agile/DevOps shift left testing is currently popular and ongoing.
<gallery>
Line 33:
</gallery>
=== Model-
The previous forms of shifting testing left all concentrated on beginning the testing of software earlier in the development cycle. Waiting until software exists to begin testing, however, largely and unnecessarily limits the use of testing to uncovering coding defects. This delay is particularly disturbing because from 45 percent to 65 percent of defects are introduced in the requirements, architecture, and design activities.<ref>{{cite web|url=http://www.iiste.org/Journals/index.php/CEIS/article/viewFile/3533/3581 |title=Quality Flaws: Issues and Challenges in Software Development |author1=P Mohan |author2=A Udaya Shankar |author3=K JayaSriDevi |last-author-amp=yes | date=2012 |accessdate=27 March 2015}}</ref>
|