(From) http://www.cnblogs.com/fjwuyongzhi/archive/2007/04/28/730939.html
In addition to the "black box test management", I personally think the following is more useful; after all, "Before and After Division "!
1. Architecture and algorithm feasibility test analysis: mainly including performance and concurrency
2. codereview: It is very simple, but many people do not. In fact, it is easier to find Boundary Problems and Process correctness problems than the "black box test. Worthy of promotion!
3. Test-driven and unit-based testing, many people tend to miss these seemingly difficult steps to achieve the requirements of the Programming management. (Change design thinking to a large extent)
It is easy to know where errors may occur.
4. UML and use cases: especially for UI modeling, I personally think it is essential that UML and use cases cover at least the core content.
Here we provide ideas for specific Optimization Based on each person, organization, or project.
5. Careful architecture (relationship between various functional modules <use cases, etc.>, node relationship of distributed computing <that is, hierarchy>, class hierarchy <UML diagram>, upgraded record filing, and database architecture, database table paradigm <erfigure>, concurrent access, and multithreading): Poor architecture, difficult code, many problems, and difficult to solve! In my personal experience, it is generally divided into six stages.
User A needs collection, interview and confirmation --> B architecture and feasibility analysis and documentation --> C development and test deployment and maintenance detailed plan --> d1 unit coding and testing <--> D2 deployment test --> E1 development environment integration and test --> E2 real environment simulation test --> E3 deployment rehearsal --> (original system backup) --> F deployment
1) Major "outputs" in each stage (investment not considered)
A: Requirement Specification, UI modeling, use cases and UML diagrams, first draft of the System Help file, and possible risk reports of the system
B: System Architecture diagram (logical diagram and physical diagram), core algorithm code and test report, risk analysis report of second-party and third-party components
C: Detailed descriptions, database architecture and testing, function development, coderivew, test plan, and deployment plan of each module of the system (equivalent to daily building), integration test plan, system upgrade considerations and solutions. Note: Try to solve possible database problems before code!
D: code, Bug Management, executable files, development environment, and test environment
E: The installable installation packages, end user documents, and relevant documents before modification are consistent with the current system.
F: possible problem plans, installation, and continuous optimization based on actual conditions enter the maintenance phase
2) time allocation: A: B: C: D: e: F = 10: 10: 20: 50: 5: 5. The time of Stage A is counted from the start of the project, the time before startup is excluded.
The real code time may usually account for 50%.