Let's start by explaining the software development life cycle:
Software development life cycle, also known as software lifecycle or system development life cycle, is the production of software until the end of life cycle, the cycle of problem definition, feasibility analysis, general description, System design, coding, commissioning and testing, acceptance and operation, maintenance upgrade to the stage of obsolescence, This method of time-division is a kind of thought principle in software engineering, that is, to step up and advance gradually, each stage should have the definition, work, review, form documents for Exchange or for reference, in order to improve the quality of software. However, with the development of new object-oriented design method and technology, the instructional significance of software life cycle design method is gradually decreasing. Each cycle of the life cycle has a definite task and produces a certain specification of the document (data), submitted to the next cycle as the basis for continued work. In accordance with the software life cycle, software development is no longer only the emphasis on "coding", but summarizes the whole process of software development. Software engineering requires that the beginning of each cycle of work must be a continuation of the "correct" premise of the result of the previous cycle, so that every week is progressing in a cyclical "activity-outcome-audit-re-activity-until the results are correct".
The software development lifecycle emphasizes the role that testing plays in every cycle. Regardless of the life cycle model used to develop the software, the software is subject to testing. Several typical life cycle models include waterfall model, iterative model and rapid prototyping model.
Waterfall Model:
In this model, the requirements are first identified and validated by the customer and the SQA team. Then draw up the specification, also through the validation, into the planning stage ... It can be seen that the most important point in the waterfall model is that only when a phase of the document has been prepared and approved by the SQA team to enter the next stage. In this way, the waterfall model provides prescriptive documentation to ensure that each stage is well-done with mandatory requirements. However, it is often difficult to do so because the entire model is almost document-driven, which is difficult for non-professional users to read and understand.
Iterative models:
The iterative model is the recommended periodic model for RUP (Rational Unified process, unified software development processes, unified software processes), and is the basis for our discussion in this series of articles. In Rup, iterations are defined as: iterations include all development activities that produce a product release (stable, executable product version) and all other peripheral elements necessary to use the publication. So, to some extent, development iterations are a process that passes through all of the workflow at once: (including at least) the requirements workflow, the analysis design workflow, the implementation workflow, and the test workflow. Essentially, it resembles a small waterfall project. Rup argues that all phases (requirements and other) can be subdivided into iterations. Each iteration produces a product that can be released, which is a subset of the final product.
Rapid Prototyping Mode:
The Fast prototyping (Rapid Prototype) model is functionally equivalent to a subset of the product. Note that this is said to be functional. The disadvantage of the waterfall model is that it is not intuitive enough, and the rapid prototyping method solves this problem. In general, according to the needs of customers in a short period of time to solve the most urgent needs of users, to complete a demonstration of the product. This product only implements part of the function (most important). Its most important purpose is to determine the real needs of the user. In my experience, this method is very effective, the original computer does not have the slightest concept of users in front of your prototype is often eloquent, some views you are very surprised. After getting the user's needs, the prototype will be discarded. Because prototype development is fast, design is almost no consideration, if you retain the prototype, in the subsequent development will pay a great price.
The development of the software development life cycle model actually embodies the development of the engineering theory. At the earliest, the life cycle of software was disordered and chaotic. Some people, in order to be able to control the software development process, strictly differentiate software development into many different phases and add rigorous scrutiny to the phases. This is the cause of the waterfall model and the source of the development of the model behind it.
Describe the use of different tests in the Software development lifecycle