Test Theory 02 Software Engineering and Software Testing

software engineering

What is software engineering
With the development of software engineering, people's understanding of computers has gradually deepened.
The scope of software work is not limited to programming, but extends to the entire software life cycle,
Such as the formation of basic software concepts, requirements analysis, design, implementation, testing, installation and deployment, operation and maintenance,
until the software is updated or replaced with a new version. Software engineering runs through all stages of the software life cycle.
Is the study of engineering methods to build and maintain effective, practical and high-quality software.

Software Engineering Research Fields:
Personnel management, project management, configuration management, quality management

Software Engineering Purpose:
The purpose of software engineering is to improve the quality and productivity of software, and finally realize the industrial production of software,
The purpose of using an engineering model is to ensure project success, and the success of a project depends on cost, schedule, and quality.
Cost: people, tools, equipment, cost of errors (errors lead to rework);
progress: time control;
Quality: consider the degree to which the software meets customer needs;

Software life cycle:
Macroscopically, it is divided into six stages: planning, requirement analysis, design, coding, testing, operation and maintenance (implementation and operation and maintenance).

Development History:
Initial stage, engineering stage, factory stage, process management stage, individual focus stage
The concept of engineering was put forward: in the 1960s, the popular waterfall model, focusing on structural analysis and design,
structured coding and testing;
Software Factory: It was proposed in the 1970s to carry out research on software process and software reuse.
Propose the idea of ​​"object-oriented" programming;
Software process: In the 1980s, put forward the production process as the center: put forward the process capability maturity model CMM,
Individual software process PSP and group software process TSP model. At this stage, rapid prototyping method, spiral model,
The fountain model complements the waterfall software life cycle.

Software process related tools and methods:
Microsoft – VSTS
HP – BTO
IBM –JAZZ
MicroFocus – OpenAlm
 
software development model
1 Linear Mode
Represents the "waterfall model", which is the basis of other models, project initiation analysis-requirements analysis-design-coding-testing-operation and maintenance
The premise is that the software requirements are completely clear, and the biggest flaw is that the day of integration is the day of explosion
2 Progressive models
Generally, when the requirements are not clear in the initial stage, the gradual mode is adopted, which represents the "spiral model"
The spiral approach is to introduce rigorous requirements analysis and risk management before each stage of the waterfall model.
Design to incremental and iterative development.
3 Transformation Models
Architecture-based development model based on component assembly,
Model-based design language, the main idea is to simplify the code programming and testing phase, replace it with automated program transformation process,
Focus on requirements analysis and modeling;
Note: After each iterative prototype, testers need to review the prototype in terms of prototype interface, system functionality, performance, etc.
 
Test under RUP
    1 RUP concept
Iterative incremental development process based on UML, centered on architecture, use case driven and risk driven;
Emphasis: iterative development, managing requirements, applying component-based architecture, building visual models for software,
Continuously verify quality and control software changes.
2 Testing in RUP mode, emphasizing automation and rapid continuous testing,
Divide testing into unit testing, integration testing, system testing, and acceptance testing

reliability
Integrity Testing Structural Testing
Function
Configuration testing Functional testing Installation testing Security testing Capacity testing
performance
Benchmarking Competitive Testing Load Testing Performance Curve Testing Intensity Testing

3 Unlike RUP, lightweight processes such as agile sports, extreme programming
Extreme programming emphasizes, communication, simplification, feedback, courage
Agile testing believes in continuous testing, continuous regression testing, and rapid testing. Testers need to learn more from the method of context-driven testing, and appropriately use automation to speed up testing.

CMM and Testing
CMM: Evaluation Method for Software Engineering Capability of Contractors, 5 Levels:
Initialization: Individual, chaotic processes, lack of definition of software process, project success heavily dependent on the efforts of a few key people, quality guaranteed by personal experience
Repeatable level: Implemented basic project management and process control, relying on past successful experience to ensure the functions of similar projects
Defined level: follow certain standards, have quantifiable and documented process management, and reduce dependence on people
Managed level: Join the evaluation measurement mechanism, and use the evaluation measurement to make reasonable judgment and control over the software process and product
Optimization level: focus on continuous improvement, integration of technological reform, defect prevention and other concepts. Software organizations can get feedback from their own process control and management, which can be used to further guide process improvement.


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325593631&siteId=291194637