With the booming development and blooming everywhere, the concept of TDD (Test Drive Development test -driven development) has been deeply rooted in the hearts of software research and development practitioners.
TDD pays attention to: “Testing is first, coding is behind.” Different from the development process of “coding first, then test”, but before programming, write test scripts or design test cases.
“Test first” makes developers have sufficient confidence in the design or written code they made, and at the same time, it also has the courage to quickly restructure the design or code, which is conducive to rapid iteration and continuous delivery.
Strictly speaking, TDD is a development practice.
From the perspective of software development, TDD is great!
However, the requirements of demand analysis, software development, productization, and then user use. In this way, the whole process is still defective.
TDD only involves the Developer (developer), and can only be regarded as a change in the personal working method of developing engineers. The development of modern software development is often the results of the cooperation between "product manager (or business), testers (QA), and developers. If the developer understands the incorrect understanding of business needs, the test case written by the business is also wrong In this case, this problem cannot be solved by TDD.
Under the premise of not being separated from agile development: business levels can also use TDD methodology.
In other words, the acceptance criteria for determining demand (such as: user stories) are determined during demand analysis. After all, the software is ultimately used for users, to meet the needs of users and solve the pain points of users. Otherwise, it will become a programmer’s self -high!
Agile testing above the business level, sublimation to the height of methodology, is the acceptance test driver development (ATDD).
ATDD’s execution logic, as shown in the figure below:
ATDD is a technical practice that brings customers into the test design process before the start of the coding.
At the same time, ATDD is also a collaborative practice: users, testers and developers, which jointly define the automatic acceptance standards.
ATDD helps to ensure that all project members accurately understand the content that needs to be completed and implemented.
If the system fails to pass the test, it can provide fast feedback, indicating that the requirements are not met.
Acceptance Test specifies in the field of business. Each function must provide real and measured business value, in fact.
ATDD’s approach, in fact, corresponds to “the end” of one of the “Seven Habits” of Successful People.
Product manager, R & D personnel, testers, and three characters sitting together first, clarifying the goals of the final customer, and based on this goal work from beginning to end. Isn’t this the end?
ATDD’s benefits are also obvious
• Uniform understanding of business demand
• Describe demand through natural language
• Is the need or instance that can be running
• Is a living document
said so much, I believe that everyone can understand that ATDD is definitely not a “A” more than TDD.
I haven’t understood it yet? In a word comparison method to explain the difference:
The purpose of
TDD is: Do the Right Development;
The purpose of
ATDD is: do the development right!
Specifically in the work practice of testers, the author recommends two frameworks of Python and Java, which can basically meet work needs.
Python background testers are recommended to use Robot Framework.
official website:https://robotframework.org/
RF’s “Keyword-Driven” method is used to write test cases. It is a tool that is very suitable for practicing ATDD.
Java background testers are recommended to use the Fitness framework.
official website:www.fitnesse.org
TDD, eventually the programmer’s own business; ATDD allows testers to participate more in products, research and development, and delivery.
It’s time to embrace ATDD!
Author: testfan arthur
Out place: WeChat public account: automation software test platform
Copyright explanation: Welcome to reprint, but the source must be indicated, and the article link is given in obvious positions on the article page