Summary of quick iterative development and usage

Source: Internet
Author: User

Why do I mainly discuss iterative software development here? Aside from the same theory, This article intends to summarize a set of pragmatic and operable methods based on years of practice to ensure the software quality with limited resources. Let us know more about the missing points.

The brief process of iterative software development mode is as follows:


In the green box, we call it an iteration cycle. Each iteration can form a small deliverable version. In fact, coding and testing can also be performed multiple iterations within each iteration cycle. By rapidly releasing the test build method, we can verify the new functions completed by the development, and then discover problems through the test to drive the developers to modify and improve the software. Specifically, tests are organized according to the development situation, and the testing results are counterproductive to developers to improve the software quality. In this small step, after several tests and builds, the software quality can be stable in a short period of time.

Quality Assurance requires a systematic approach. So what measures are needed at all stages of iterative development?

1) Requirements

The main work at this stage is requirement formulation and review. This phase is divided into three steps: collecting original requirements->Develop product requirements-> Product Requirement Review. Specifically, we first collect original requirements through various channels. Most of the original requirements are conceptual and vague and cannot be directly used to guide development, so we need to classify and filter them, integration is a product requirement. The basic principle is to work out product requirements with minimal changes and maximum Scalability Based on the features of the current product. Reduces risks and increases flexibility. Experience tells us that, without thorough consideration of requirements, we should not rashly design and implement it, which may lead to a large amount of rework, which is time-consuming and laborious. After the product requirements are set up, review is required. Do not waste time without review, or sharpen your knife without mistake!

2)Design

The main task at this stage is to convert product requirements into design requirements and guide subsequent coding work. One old saying in the software industry is that software quality is designed, and so is iterative development. The quality of the design directly determines the quality of the software. The design requirements generally describe the detailed design scheme of product requirements, including page layout, data structure,AlgorithmAs well as design ideas for ease of use, security, scalability, robustness and performance. Even if different developers are allowed to code based on their design requirements, the features they have developed are far from the same. It can be seen that the design requirements are very necessary. That is to say, before coding, we must write the relevant design documents to guide the subsequent coding work. There are two benefits to doing so: First, we fully anticipate the problems that may arise in the future before coding, and we can avoid risks as soon as possible. Second, we should build a framework for development work, reduce the uncertainty of the development process caused by the difference of developers and avoid"One thousand people have one thousand requirements in mind".

3) Encoding

The main task at this stage is to complete coding according to the design requirements and organizeCodeReview. Every line of code is a brick and a tile of the software building. We reject the bean curd project, so we pay attention to every line of code. Code review can effectively ensure the code quality. It Management tools allow you to easily perform code reviews and code management. I have used Bronzes RDM Software for code review ( Codereview . The focus of code review should be onProgramStructure Review, find deep software errors, rather than stay on the surface. At the same time, we recommend that you use " Submit " For Unit review. The premise is that " Submit " Contains relatively complete functions. For iterative development, we should try to ensure that every Encoding - In the test iteration, relatively independent and testable functions must be completed.

4)Test

In essence, testing is a kind of authentication. It is the final verification of software quality. In this phase, the main task is to cover as many requirements as possible in each test build, and arrange testing priorities based on priorities, so as to expose as many defects as possible. The testing priority should follow the following principles:

A,First test the changed part, and then test the unchanged part.

B,First test the core functions of the program, and then test the general functions

C,Test logical functions first, and then test business functions.

D,First test the general situation, and then test the exception situation

E,Test the function first, and then test the performance.

Testing based on the above principles allows for faster detection of critical errors in more software, which is a key factor in making the software stable as soon as possible. In addition, a system test is required before each iteration ends.

encoding - the continuous iteration of testing ensures that the new functions in each test build are normal, but the quality of the entire software system has not been fully verified, and system testing is born for this purpose. " vehicle rotation " it is a very useful means, that is, to mobilize testers and developers to participate fully in the test. These personnel are divided into several groups, each of which tests the system. Each test module is tested by multiple persons, which can effectively reduce the defect omission rate. However, developers should avoid testing their own functions, that is, performing cross-test.

The essence of software quality assurance is to use some processes and methods to control the software development process, so as to maximize the quality of software products delivered. At the same time, we believe that the entire product development process will produce a lot of data, such as requirements, design documents, code, test cases, defects, and so on. UseItManagement tools can effectively improve work efficiency, bronzesRDMFull implementationCodereview +Testlink + mantisFunctionCombination, which can manage requirements, test cases, defects, and code reviews. It is enough for small teams.


 

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.