In 3 months, from the advancement of functional testing to the salary increase of 10k in automated testing, I realized...

Because I am sharing automated testing technology recently, I am often asked:

Functional testing wants to be automated, how should I start? Are there any good resources to recommend?

So, next, I will talk about how I do automated testing at work based on my own experience. (The learning route and network disk resources are at the end of the article) How did you advance from functional testing to automated testing and raise your salary in 3 months? Let's talk today

1. What is automated testing

Automated testing concept:

Automated testing is a process of converting human-driven testing behavior into machine execution. Usually, after the test case is designed and passed the review, the tester executes the test step by step according to the procedure described in the test case, and compares the actual result with the expected result. In short, automated testing is to let the software under test run by itself, execute the functions of the software, or let other tools run by themselves to check the inside and outside of the software.

Automated testing includes two concepts of automation and testing:

  • Automation: The process of automatically accomplishing a specified goal by a program (or machine, equipment, etc.) instead of a human being.
  • Test: Verify that the system meets the specified requirements.
  • Automated testing: the process of letting programs (or machines, equipment, etc.) replace manual and automatic system verification. So, how does a machine know what a human wants? Well ~ the key point is the programming language. Machine learning a programming language is so easy and simple that it is outrageous: install it and the machine will learn it. Fortunately, it is not particularly difficult for humans to learn programming languages. With a programming language, there is a bridge for human-computer communication, and the rest is to help the machine choose tools. Do the corresponding tests and find the corresponding tools, so that the automation will be automatic.

In short, the reason for the introduction of automated testing is to liberate software testers from the boring mechanical manual testing labor and replace it with automated testing tools, so that testers can really spend their energy on improving the quality of software products themselves . Although automated testing can reduce the workload of manual testing, it cannot completely replace manual testing. Blindly pursuing test automation will only bring about a sharp increase in operating costs for enterprises.

Advantages and disadvantages of automated testing:

➤Advantages:

  • (1) Improve test execution efficiency and save time and cost
  • (2) Liberate manpower to do more important work;
  • (3) It can be reused, and the construction depends on people
  • (4) Improve customer satisfaction;
  • (5) Improve the overall level of the testing team;
  • (6) Can greatly reduce the workload of compatibility testing
  • (7) Some testing work must be done by automation.

➤ Disadvantages:

  • (1) It takes a lot of time to develop test scripts and lengthen the cycle
  • (2) The rapid iteration of the product, the automation script will also continue to iterate, and the time cost is very high
  • (3) The reuse of automation scripts between different projects is very low
  • (4) The value of automation for short-term project products is not high
  • (5) Automation cannot completely replace manual testing to find bugs and achieve 100% coverage
  • (6) Automation is more suitable for regression testing
  • (7) The automated development process has higher requirements for the technology of the software testing team.

Manual testing and automated testing:

  • Manual testing: manual testing is to execute use cases one by one by testers, and then observe whether the test results meet expectations. Manual testing is generally based on two reasons: (1) insufficient time resources; (2) insufficient technical level. In these cases, manual testing can play an important role. With manual testing, we can define tests and also track tests.
  • Automated testing: automated testing is divided into functional automation and performance automation. The former is to record/write test scripts through testing tools (or frameworks), test software functions, and verify whether the test results are correct, thereby replacing part of the manual testing work. To achieve the purpose of saving labor cost and time cost. The latter uses performance tools to simulate thousands of virtual users sending requests to the system to verify the system's processing capabilities.

 

2. Based on my experience, 6 suggestions for students who want to learn automated testing

First piece of advice: learn a programming language first , and then move on to automation tools.

It is possible to choose Java or Python as the language. You can start with Python first, and then start Java. In the process of learning a language, you must forget that you are doing testing, and treat yourself as a developer, and systematically learn related programming knowledge, because the level of language largely determines the level of automation.

The second suggestion: Lay a good foundation instead of learning automated testing tools with the cart before the horse

If you don't understand the http protocol, you won't understand tools such as loadrunner, fiddler, and soapUI; if you don't understand HTML, you won't understand firebug. So if the foundation is laid well, we will get twice the result with half the effort.

The third suggestion: clearly recognize yourself and define your goals

To put it bluntly, before we do anything, we must first check how much we have, right? First, evaluate your current ability level, and then see what kind of resources (energy, time, money) you can invest in learning , so that you will know what kind of content you can understand, which stage you should ask the big cow, don't get more and more confused in the end; secondly, after recognizing your ability, you must set a reasonable goal for yourself, how long will it take? to what level.

The fourth suggestion: Choose a good entry point and design a plan that will help you the most

  • Interface automation: Python+Unittest+HtmlTestRuner+Jenkins and Java+Httpclient+TestNG+Jenkins
  • web automation: Python+Webdrver+HtmlTestRunner+Jenkins, Java+Webdriver+TestNG+Jenkins
  • APP automation: Robotium+Java+TestNG+Jenkins, Appium+Java+TestNG+Jenkins, Appium+Python+HtmlTestRunner
  • Auxiliary test script : based on Shell and Python to simplify repetitive work, filter logs, etc.

Of course, these are the basic implementation solutions, and others will not be introduced first. If you are just getting started, I suggest that after choosing a language, start with interface testing , and then learn web and APP automation.

The fifth suggestion: learn to infer other things from one instance

Novices are easy to be anxious and want to learn everything, which is easy to confuse and difficult to digest. Many places are connected, code structure, use case management, etc. can be used by analogy, which can not only improve your learning efficiency, but also avoid confusion. The most important thing is not to talk about it on paper , but to put it into practice.

Sixth suggestion: Don't be limited by tools, use open source more

In the testing industry, there are many automated testing tools, but large companies tend to use open source frameworks and tools, and then customize their own testing solutions. Learn to use some open source tools such as Webdriver, Appium, etc. to build your own automated testing projects, and then master the overall automation working principle, and prepare for building your own tool platform in the future. After all, automation is not as simple as using a few tools .

The highest state of automated testing: develop testing tools, design automated frameworks, and let others use them.

3. The ultimate route for automated testing learning, starting with language, to get automated testing done

Master Python or Java language, it is recommended to start with Python

Basic language knowledge, syntax, functions, modules, input and output, object-oriented
programming , scripting , standard library, multi-threading, third-party library, external data processing
unittest, pytest test framework, parameterization, data-driven

Automated testing on the web

Selenium installation, recording, processing
web controls, JavaScript scripts, PO mode

Automated testing of mobile APP

appium use, recording, element positioning method
APP control positioning, interaction, parameterization use case
appium problem positioning analysis , source code analysis, secondary packaging

Automated testing of server interface

Interface automated test framework request
interface request construction, assertion
json/xml request, response assertion
headcookie processing, authentication system

Automated testing from entry to proficiency

If you follow this learning route to thoroughly understand automated testing, then a monthly salary of 15-25K is very easy, and with the ability to code, you can continue to work hard on test development!

Write at the end:

No matter what kind of identity you are in the test team, no matter what your perception of automated testing is, and no matter whether you love or hate automated testing, automation is a must for you to switch from manual testing to test development road.

Maybe you will hear negative feedback such as high cost, poor effect, and low efficiency of automated testing, but you must clearly know that this is not a problem with automated testing. For a certain tool, a certain solution, the final effect depends on the implementation. Those who come and go decide.

What we can do is to face up to automated testing, find the right method, and constantly improve ourselves!

 END meager strength

Finally, I would like to thank everyone who has read my article carefully. Seeing the fans’ growth and attention all the way, there is always a need for reciprocity. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for friends who want to advance [automated testing]. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you too!

Software testing interview applet

The software test question bank maxed out by millions of people! ! ! Who is who knows! ! ! The most comprehensive quiz mini program on the whole network, you can use your mobile phone to do the quizzes, on the subway or on the bus, roll it up!

The following interview question sections are covered:

1. Basic theory of software testing, 2. web, app, interface function testing, 3. network, 4. database, 5. linux

6. web, app, interface automation, 7. performance testing, 8. programming basics, 9. hr interview questions, 10. open test questions, 11. security testing, 12. computer basics

method of obtaining:

Guess you like

Origin blog.csdn.net/m0_58026506/article/details/130322855