This is automated testing, senior testing builds a continuous delivery system (high-quality) continuous integration...


foreword

Software Testing - Automated Testing

Python automated testing: https://www.bilibili.com/video/BV16G411x76E/

Whether it is to ensure quality or improve efficiency, certain continuous capabilities are needed to support them.

This support capability can be regarded as a factory-like assembly line capability, which is generally referred to as continuous delivery in the industry.

Generally speaking, from the perspective of quality assurance, it can be divided into: CI continuous iteration - CI continuous integration - CD continuous release - CO continuous operation - CM continuous measurement.


What is continuous iteration technology? Technology is a tool, technology serves architecture design, architecture design serves products, products serve business, and business serves business.

The continuous iteration here refers more to a sustainable change in business or demand. Driven by continuous changes in demand, software products are continuously iterated to provide users with better services and achieve commercial value realization.

Continuous Integration
Continuous Integration helps technical teams merge code changes into a shared branch or "trunk" more frequently.

Once the changes made to the application are incorporated, the system verifies the changes by automatically building the application and running different levels of automated tests (typically unit and integration tests) to ensure that the changes did not break the application.

If automated tests find conflicts between new and existing code, CI can speed up the process of fixing those bugs.

Continuous release
Continuous release here includes continuous delivery and continuous deployment.

After completing the build and automated testing process in CI, continuous delivery can automatically release the tested code to the repository. The goal of continuous delivery is to have a codebase ready to be deployed to production.

In continuous delivery, each phase involves test automation and code release automation. Applications can be quickly deployed to production at the end of the process.

The final stage of a mature CI/CD pipeline is continuous deployment. As an extension of continuous delivery, continuous deployment can automatically release applications to the production environment. Continuous deployment relies heavily on well-designed test automation.

Continuous deployment means that a developer's change to an application is live within minutes of being written (assuming it passes automated tests). This makes it easier to continuously receive and integrate user feedback.

All of these CI/CD associated steps help reduce the deployment risk of the application, thus making it easier to release changes to the application at a faster cadence.

However, the upfront construction required a significant investment of resources, as automated tests also needed to be written to accommodate the various testing and release phases in the CI/CD pipeline.

Continuous operation
After the application is released in the production environment, it is necessary to continuously track the online quality, user feedback and suggestions, and some problems or failures that may occur online.

All online user suggestions, possible problems or failures are actually closely related to the quality of delivery in essence.

Therefore, continuous operation is proposed here, which is to advocate quality control, verification, and measurement. Even in the production environment, this mechanism needs to be continuously operated.

Continuous measurement
is separated from data and quality is a castle in the air. In the entire cycle from demand quality to delivery quality, quantifiable records and displays of what to do, problems, risks and results at each stage, and then analyze from them Assess and find deficiencies. This is continuous measurement and requires continuous investment.

Advantages of continuous delivery
Expose problems as soon as possible; greatly improve efficiency; improve delivery quality; reduce project costs;

Continuous Delivery System Tools

tool name instrumental role
Git、SVN、GitLab、Coding Unified Source Code Management Tool
testNg、pytest、Requests、selenium Unit/interface/UI automated testing tools
Jenkins、Go CD、Travis CI、Pipelines Continuous Integration and Continuous Deployment Tools

The premise of continuous delivery is that the entire R&D, testing and release process should be highly automated.

To achieve continuous delivery, projects generally need to meet these conditions:
the process of code construction can be repeated frequently, and the results of each build are consistent and stable;
all environment configuration information is stored in source code management tools (now there are special Configuration center components such as Nacos/Apollo);
for code packages that need to be deployed in different environments, different versions need to be automatically compiled and created;
the steps of building, compiling, deploying and publishing in all environments must be completed automatically;

The relationship between DevOps and continuous delivery

Continuous delivery requires that the code can be built and compiled repeatedly and frequently, and the test, deployment and release of the code package needs to be completed automatically. However, the traditional R&D delivery process has gradually failed to adapt to the current business changes. Therefore, DevOps has been developed in recent years, and even everything Ops are available.

In fact, DevOps is not a position, but can be understood as an efficient working method of close collaboration. Whether it is DevOps or the so-called TestOps, it actually refers to the development/testing and operation and maintenance students working together to build, test and release software faster through efficient collaboration.

Advantages of DevOps

Taking DevOps as an example, when the team adopts this work collaboration method, the benefits are as follows: the
software construction test and release process are highly automated;
the information is more transparent, and the delivery quality is easier to measure and evaluate;
the efficiency of cross-team and cross-functional collaboration And the atmosphere will be better;
to practice DevOps means that the team needs to do these things:

Build an automated assembly line system to achieve high automation from construction testing to deployment;
establish a complete and accurate monitoring system, try to make information transparent and measurable;
establish a cross-team and cross-functional communication and collaboration mechanism to form a team process and culture;

What DevOps engineers have to do
Help the team establish continuous delivery workflows and tools;
establish a complete monitoring and alarm system and fault response process;
build basic technical facilities suitable for the team's R&D delivery process;
promote the DevOps process and culture in the team;

The following is the most complete software test engineer learning knowledge architecture system diagram in 2023 that I compiled

1. From entry to mastery of Python programming

Please add a picture description

2. Interface automation project actual combat

Please add a picture description

3. Actual Combat of Web Automation Project

Please add a picture description

4. Actual Combat of App Automation Project

Please add a picture description

5. Resume of first-tier manufacturers

Please add a picture description

6. Test and develop DevOps system

Please add a picture description

7. Commonly used automated testing tools

Please add a picture description

Eight, JMeter performance test

Please add a picture description

9. Summary (little surprise at the end)

Life is full of various opportunities and challenges. Only by daring to meet challenges, be brave in innovation and exploration, can we continuously improve our abilities and qualities. Be firm in your beliefs, forge ahead, and keep striving to make yourself a better person!

Success requires continuous hard work and dedication. Only by persevering and persevering can we obtain the joy of success. On the way of pursuing your dreams, keep your enthusiasm, don't be afraid of setbacks, prove your value with actions, and achieve a better tomorrow!

The journey of life is full of various opportunities and challenges. Only by being brave enough to meet the challenges, to innovate and explore, can one realize one's dreams and goals. Firm belief, maintain enthusiasm, move forward steadily, make hard work a habit, and achieve a more brilliant future!

Guess you like

Origin blog.csdn.net/m0_70102063/article/details/130728090