Thoughts on Continuous Delivery, Agile, DevOps Lectures (Automated Testing Strategies and Delivery Pipelines)

    On May 15th, I participated in a lecture on continuous delivery, agile, and DevOps in practice, some of which were very inspiring. Several viewpoints (ideas, principles) have been sorted out for sharing.

  1. Continuity of development in agile iterations, should not be demarcated (beginning or ending) with distinct iterations: http://lzhted.iteye.com/blog/2211955
  2. Automated testing strategies and delivery pipelines
  3. Deployment mode: http://lzhted.iteye.com/blog/2213844

    This article introduces the second point: automated testing strategies. Some of these basic principles and practices include,

  1. Layer test cases, such as LLT, HLT, SIT, etc.
  2. Test and development collaborate to write and maintain test cases.
  3. Anyone can run test cases.
  4. Test are the first class code。

    Regarding the test layering, it is a pyramid structure under normal circumstances, as shown in the figure below, the lower layer is the more basic test, the larger the proportion. But in general, the actual situation is mostly ice cream structure, that is, there are fewer low-level automated tests and more high-level manual tests. This will result in a high cost for us to test and locate problems, and a longer version release time.


    Combining the concept of continuous delivery and automated testing strategy, a concept of delivery pipeline is proposed. The tests are divided into five layers: Unit Tests, Integration Tests, Application Tests, System Tests, SIT. The first three layers must be automated tests, and the last layer has some manual tests. Therefore, from the completion of feature development to online activation, it can be regarded as an assembly line or pipeline, as shown in the following figure:


    Divide the system into multiple APPs, and the pipelines of each APP are relatively independent, as shown in the following figure:


 
     Challenges facing:

  1. Duplication between manual testing and automated testing.
  2. Existing code - need to add a lot of test cases (it is recommended to write test cases only from incremental code).
  3. It takes more time to maintain test cases.

Guess you like

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