Software development process model

1.1.1 Waterfall model

1.1.1.1 definition

  • Definition: A linear model is a type of model that occupies an important position in all models and is the basis for other models. Software development is performed once in each phase, in the order of linear models

  • Testing entry point: The testing phase is after the software is implemented and must allow enough time for testing activities after the code is completed, otherwise the testing will not be sufficient and many problems will be exposed later in the project

1.1.1.2 the pros and cons

Waterfall model Status: This is a classic model that provides a basic framework for software development. Advantages: 1) Clear division of phases 2) emphasis on planning and requirements analysis 3) Product development suitable for stable requirements disadvantages: 1) single process, irreversible 2) Late exposure of risks, less chance of correction 3) Testing is only one stage, lack of the idea of the whole process of testing 4) The division of each stage is completely fixed, resulting in a large number of documents between stages, greatly increasing the workload 5) Because the development model is linear, Users can only see the development results at the end of the whole process, thus increasing the risk of development. 6) Errors in the early stage may not be discovered until the testing stage of the later stage of development, resulting in serious consequences

1.1.1.3 improved

The linear thought of waterfall model is used to refine each stage, and the iterative thought is added between the stages of writing important concerns

1.1.1.4 Application Scenarios

  • bank
  • insurance
  • building
  • Traditional industry

1.1.2 Rapid prototyping model

1.1.2.1 Prototype stage

  • Rapid analysis
  • specifications
  • prototyping
  • The prototype
  • Run the prototype
  • Evaluation of the prototype
  • amendments

1.1.2.2 steps

step1

By building a rapid prototype, users can interact with the system, users can evaluate the prototype, and further refine the requirements of the software to be developed. By gradually adjusting the prototype to meet the requirements of users, developers can determine the real needs of users

step 2

On the basis of the first step, develop software products that users are satisfied with

1.1.2.3 pros and cons

  • Advantages The waterfall model overcomes the shortcomings, better meet the user needs and reduce the project development risk due to unclear software requirements, suitable for the development of software systems that can not define the requirements in advance
  • Disadvantages not suitable for large system development (suitable for small, flexible system development) requires a demonstration of the product prototype, thus may limit the developer’s innovation to a certain extent

1.1.2.4 Application Scenarios

  • WeChat

  • trill

  • Internet industry

1.1.3 Spiral model

1.1.3.1 model

Essentially, implementing a linear model more than once is a waste of time and is used less often in actual development

1.1.3.2 pros and cons

  • Advantages: The spiral model is largely a risk-driven approach, as risk assessment must be carried out before each stage and often before the cycle.
  • Disadvantages: Using spiral model requires rich experience and expertise in risk assessment. In the development of projects with high risks, if risks cannot be identified in time, it is bound to cause great losses. Too many iterations can increase development costs and delay commit times.

1.1.3.3 Application Scenarios

Large complex project

1.1.4 Differences between the three development models

| | project demand scale model | | | — – | — – | | | clear large project | | waterfall model | unclear | | small and medium scale rapid prototyping | | not clear large project | | | spiral model

1.2 V model

1.2.1 the pros and cons

  • Advantages:
    • It includes both low-level testing (unit testing) and high-level testing (system testing);

Clearly identify the stages of development and testing;

Step by step refinement from top to bottom, clear division of labor at each stage, easy to control the overall project.

  • Disadvantages:
    • As a result of the top-down order, the test work is done after the code, so that errors cannot be corrected in time;

In actual work, demand often changes, resulting in repeated execution of V model steps, large amount of rework and low flexibility.

1. 3 w model

1.3.1 the pros and cons

  • Advantages:
    • Development takes place throughout the development cycle, and requirements and designs are tested as well;

– Earlier intervention test, can find the initial defects, low repair cost; – Work in stages to facilitate overall project management.

  • Disadvantages:
    • Development and testing is still a linear relationship, requirements change and adjustment, is still not convenient;

– You can’t execute the W model without documentation; Higher technical requirements for project team members! – High administrative costs. – High communication costs

1.4 Comparison summary

  • V model applies to small and medium-sized enterprises,

  • W model is suitable for medium and large enterprises (due to high personnel requirements)

2. Classification of software testing

2.1 Functional Test

  • Write test cases

2.2 Automated Testing

  • python
  • java

2.3 Interface Test

  • postman

2.4 Performance Test

  • Let’s say 100 million people visit at the same time

3. Computer fundamentals

3.1 DOS command

linux
dir Displays the contents of the current directory ls
ipconfig Check the network card ifconfig
cd Open current path cd
md Creating a new directory
echo The echo data > file
del Delete the file
copy Copy File The original path indicates the new path of the file
move Move file contents to another file

4. Front-end knowledge

4.1 web3 large core

  • HTML tags – Heap boxes
  • CSS beautifies the page
  • Js behavior action

5. Back-end knowledge

5.1 cs/bs

5.1.1 cs

5.1.1.1 definition

Client-server Indicates the client-server

5.1.1.2 pros and cons

  • advantages

The client PC can handle some functions. After the client finishes processing, it can be handed over to the back end. The response speed is fast and the operation page is beautiful and safe

  • Disadvantages 1. Inconvenient installation 2. Poor compatibility, different systems require different version 3. Development and maintenance costs are high

5.2 bs architecture

5.2.1 definition

Browser-server – the server

5.2.2 the pros and cons

  • Advantages 1. Client 0 maintenance, only need a browser and network, can be accessed 2. Adding functions is simple, only need to add web pages can be completed 3. Users do not need to synchronize update 4. Development of simple

  • Disadvantages 1. Cross-browser compatibility 2. Slower response time 3. A weak

5.3 Differences between CS and BS

cs bs
The efficiency of Cs is relatively efficient, and part of the data has been loaded into the system Bs needs to load the latest data every time
Version update Delete the old version and update the new version Seamless upgrade
security Cs is more secure, download, install, register, login The browser
Development costs Different systems require different developers and are costly Low relative cost

5.4 File Format

5.4.1 XML

Data Transfer Case

<to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting! </body> </note>Copy the code

5.4.2 json

Such as: douban

6. Classification of software testing

6.1 Breakdown by test phase

  • Unit test: module test, which is the smallest program block
  • Integration testing: Testing modules together on the basis of unit testing
  • System testing: Testing the entire software system as a whole
  • Acceptance test:
    • Alpha test: internal test version, in software developers internal communication, or released between loyal fans, under normal circumstances, are more bugs, ordinary users are not recommended to install
    • Beta testing: the beta version developed by all users will be relatively Bug free
    • γ test: release candidate for official release

6.2 Overwrite the source code based on whether to do so

6.2.1 Black Box Test

Focus only on business logic, input and output

6.2.2 White box Test

Ex. :

a = 1

b = 1

sum = a+b
print(sum)
Copy the code

Study the source code, observe the program structure

6.2.3 Grey Box Test

In between, gray box testing is used in the integration testing phase, focusing not only on input and output, but also on source code

  • Test concerns: 1. Test input 2. Test output 3

6.3 Partition based on running status

6.3.1 Static Test

  • Definition: does not run the program under test, but checks the correctness of the program by analyzing and examining the syntax, structure, procedures, and interfaces in the source code

  • White box TEST SQL script documents: requirements documents Various design documents, such as database design documents

6.3.2 Dynamic Test

  • Definition: Run the program under test, check whether the results are consistent with the expected results, analyze the efficiency, correctness and robustness (fault tolerance)
  • Test object source ===> run the system

6.4 Classification according to automation

6.4.1 Manual Test

  • Definition: Manually execute the test case procedure

  • Disadvantages: low efficiency and high repetitive work

6.4.2 Automated Testing

  • Definition: Use tools or code to help execute related test cases
  • Web automation
  • App automation

6.5 other

6.5.1 Smoke Test (Key)

  • Definition: For the current system to carry out the most basic function test, to ensure that the basic function and process can go through, verify whether the basic function of the software is achieved is testability

6.5.2 Regression Test (emphasis)

  • Definition: After the development changes the old code, the test retests to determine whether the code change introduces new errors or causes other code bugs to revert to the old function

  • Return to the principle of

    • Required rounds: N-1 regression tests are required, depending on the complexity and size of the project, N versions
  • Disadvantages: Repetitive work is large and inefficient

  • Solution Automated testing: Automated regression testing

6.5.3 Random test

  • Definition: To check the performance and function of the software based on the experience of the tester
  • Point of attention: undertake retest to important function to did not cover get module to undertake test

6.5.4 Exploratory tests

  • Definition: Designing tests and executing tests simultaneously is a test thinking technique