TDD and vtdd series (V): Development Method for 1/3 improvement in production capacity: vtdd (Overview)

Source: Internet
Author: User

Vtdd Overview

TDD (test-driven development) is a software development, design, and testing method with outstanding advantages. The basic idea of TDD is to test first and promote development through testing. The important purpose of TDD is not only to make the output code Quality Controllable through testing, but also to help programmers remove ambiguous requirements during the development process.

TDD has the following advantages: clear requirements, clear design, testing as a document, controllable code quality, and improved development efficiency. However, TDD also has the following Disadvantages:

Low degree of automation: The time for writing test code is roughly equivalent to the time for developing product code. For parallel development of large projects, there are also problems such as isolation, completion, and internal input. The time required to manually solve these hidden problems is usually not less than the time required to write General test code.

Inadequate resource utilization: the output of unit test can fully describe the behavior of the program. This is a valuable resource, and TDD ignores this. The program behavior is under what input, what code will be executed, and what output will be generated. If the program behavior is clear at a glance, the test will double the development-driven benefits.

Interfering with programming thinking: Inspiration, creativity, and ideas are fragile and easy to lose. programming requires a consistent focus. In the TDD process, testing usually takes one to two times as long as the development time, and alternate with writing product code, which inevitably affects the consistency of programming thinking. Interfering with thinking may cause the programmer to resist instinct, making TDD difficult to promote and long-term persistence.

Vtdd (visual TDD) is a visual TDD improvement and upgrade. Vtdd inherits the advantages of TDD and overcomes the shortcomings of TDD. Improvements can be classified into three types: Visualization, automation, and implementation.

Visualization: The program behavior is visible during development. Visualization reduces programming labor intensity and greatly improves coding efficiency. For functions with medium complexity, writing efficiency is more than doubled. The higher the complexity, the higher the efficiency ratio.

Automation: tools automatically complete isolation completion, test code generation, data tabulation, underlying simulation, coverage statistics, and help identify missing data. The main task of a person is to list the functional points of a program in a data table. This is a process of clarifying the needs, designing, and promoting development. The test time cost tends to be zero.

Current implementation: vtdd can be divided into vtdd1 (natural level), vtdd2 (Reconstruction level), and vtdd3 (agile level ). The natural level is based on the existing process and can be introduced at any time in the project cycle without affecting the progress. After that, we can gradually upgrade to the Reconstruction level and agile level to further improve the development process and "first solidify and then optimize ".

Are your projects facing these problems: development costs and progress out of control, poor reliability, and difficult to maintain? If you want to improve the development process and change the Passive Status Quo, do not wait and immediately introduce vtdd. The more tight the project, the more necessary it is to improve the development method as soon as possible. It is unrealistic to make improvements when there is no space. Uncontrollable code quality is the main cause of uncontrollable development cycles. If the code is delayed, the problem will only accumulate. The extension of the current project will lead to more tension in the next project, and will not be "empty ". Do you have to worry about this last year? What about the year before? When can it be easier? If you don't make any changes, it will be quite tense next year and later. I'm afraid I will never be "free ". The longer the project cycle is, the more controllable the quality of the new code should be, so that the progress can be controlled and the project can be completed as planned. Only action, immediate action, can be loose and calm.

However, "taking care of yourself first" is also a last resort. Vtdd does not affect the performance. Assume that the coding cycle of a project is four months, and vtdd1 is introduced in the second month. The progress of the current month is not reduced. In the next two months, the progress can be increased by about 15-30%. More importantly, the Code that has been fully tested can be produced to avoid uncontrollable development cycles caused by uncontrollable code quality and greatly shorten the time to stabilize the product. In general, the introduction of vtdd not only guarantees the code quality, but also reduces the number of person-months consumed by the project by about 30-50%, shortening the development cycle, it has won the lead in the market competition of Fast fish and slow fish.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.