Summary of "reprint" rapid iterative Development usage method

Source: Internet
Author: User

This article is reproduced from http://blog.csdn.net/dongkui168/article/details/9069407
------------------------------------------------------------------------------------------------------

Why am I mainly talking about iterative software development here? In this paper, we put aside the theory of the same, the author intends to summarize a set of practical and operable methods according to the practice of many years, in order to ensure the quality of software is guaranteed under the limited resources. See, the fault of the place also ask you to correct me.

The iterative software development model brief process is as follows:

In the Big green box, we call it an iterative cycle. Each iteration can form a small, deliverable version. In fact, there are multiple iterations for coding and testing within each iteration cycle. By quickly releasing Test builds, validating new features that have been developed, and testing to discover issues that drive developers to modify and cycle through software. That is: according to the development of the targeted organization of testing, according to test results against the developers to improve the quality of software. In this way, after several tests, the software quality can be stabilized in a relatively short period of time.

Quality assurance requires a systematic approach. What measures are needed at all stages of iterative development?

1) Requirements

The main work at this stage is demand formulation and review. This phase of work is divided into three steps: collection of the original requirements, product requirements and product requirements review. Specifically, we collect the original demand through various channels, because the original demand is mostly conceptual, vague, can not be directly used to guide the development work, so it needs to be categorized, screened, integrated into the product requirements. The basic principle is to develop product requirements with minimal change and maximum scalability, combining the characteristics of the current product development. Reduce risk while increasing flexibility. Experience tells us that without a thorough consideration of the requirements, it is not a rush to start designing and implementing, which can lead to a lot of rework and time-consuming effort. Product requirements after the establishment of a review, it must not feel wasting time and not to judge, Ax!

2) Design

The main task at this stage is to translate product requirements into design requirements and guide subsequent coding efforts. The software industry has an old saying: Software quality is designed, and so is the case for iterative development. The design of the quality of the software directly determines the high and low. Design requirements generally describe the product requirements of the detailed design, including page layout, data structure, algorithms and ease of use, security, scalability, robustness and performance, and many other aspects of design ideas. Even with different developers coding according to design requirements, the functionality developed is sorta. With this visibility, design requirements are essential. In other words, before we formally encode, we must write the corresponding design documents for the requirements to guide the subsequent coding work. There are two benefits to this: first, fully anticipating future problems before coding, avoiding risks as early as possible, and developing a framework for development, reducing the uncertainty of the development process due to developer differences, and avoiding the emergence of "1000 people with 1000 understanding of needs".

3) coding

The main task at this stage is to strictly follow the design requirements to complete the coding, and organize the code review. Each line of code is a software building brick by brick, we reject the tofu slag project, so we value each line of code. Code reviews can effectively guarantee code quality, and with some IT management tools it is easy to code review and code management. I have used the bronze RDM software to do code review (Codereview), very convenient. The focus of code review should be on reviewing the structure of the program, discovering deep-seated software errors, and not staying on the surface. At the same time, we recommend that you do a code review, the code of a "submit" as a unit for review. The premise of this is that each "commit" contains a relatively complete function. For iterative development, we should try to ensure that each code-test iteration, to complete the relatively independent, highly testable function points.

4) Testing

Testing is essentially an authenticated work, which is the identification of software quality and the final checks. The main task at this stage is to cover as many points of demand as possible in each test build, and prioritize the testing as much as possible, and expose as much of the defects as you can. The scheduling of test priorities should follow these guidelines:

A, test the changed parts first, and then test the parts that are not changed

b, test the core function of the program first, then test the general function

C, test the logical function first, and then test the functionality of the business

D, test the general situation first, and then test the abnormal situation

E. Test the function first and then test the performance

Testing in accordance with the above principles allows for faster detection of critical errors in more software, which is a key factor in stabilizing the software as quickly as possible. In addition, system testing is performed before the end of each iteration cycle.

Coding-testing iterative, to ensure that each test build new features no problem, but the quality of the entire software system has not been fully validated, system testing is to be born. In the final sprint phase of the release, "Wheels off" is a useful means of mobilizing testers, developers, etc. to fully participate in the test, dividing the personnel into groups, each of which tests the system separately. Each test module is tested by more than one person, which can effectively reduce the missing rate of defects. It is important to note, however, that developers should avoid testing their own developed features, i.e. cross-testing.

Software Quality assurance is the essence of the use of a number of processes, methods to control the software development process, so that the final delivery of software products to maximize the quality of assurance. At the same time, I believe you can see that throughout the product development process will produce a lot of data, such as requirements, design documents, code, test cases, defects and so on. The use of IT management tools can effectively improve productivity, bronze RDM fully realize the codereview+ Testlink + Mantis function combination, can manage requirements, test cases, defects, code review, etc., for small-scale teams, is enough.

Summary of "reprint" rapid iterative Development usage method

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.