On the first day of switching to software testing, I was very confused and didn't know where to start learning

 Regarding the recent discovery that a lot of children's shoes in KNA are asking, "Xiaobai wants to switch to software testing, what knowledge do he need and what tools do he need?" Every time he answers this question, he is in a hurry, so I take this opportunity to post on the blog Here is a unified statement, hoping to bring a little help to the seekers who are wandering outside the door of software testing.

      So let's get to the point. Now that the country's Internet industry is rising again, under the wave of Internet + thinking, more and more companies are also looking for their own software development teams, and the software testing industry is gradually improving, and the prospects are very promising. But now the demand is huge, and relatively speaking, its entry threshold is relatively low, which has attracted more people to come here. This is a very good thing. I hope that the level of software testing in China will be improved to a higher level in the future! When it comes to software testing, it is natural to deal with software. A high-quality test engineer needs to cover a wide range of knowledge (but not proficient in everything), such as programming languages, networks, operating systems, databases, etc. , uml, and the core software testing knowledge, etc., if you have a foundation in a certain aspect, it is best, if you are a pure white, then don't put so much pressure on yourself, learning is a step-by-step process The process requires a certain practical foundation, and you can gradually improve yourself in the future. So if you don’t have any computer course foundation, if you want to switch to software testing, then you need to meet the most basic entry requirements: basic knowledge of software testing + basic database operations + (commonly used Linux commands)

[The picture below is a good way to plan the route of software testing and learning]

 

  • Basic knowledge of software testing: you need to master testing theory, testing methods and simple tools

     1. Concepts of software testing and software defects

     2. Process of software development and software testing

     3. Understand the evaluation of software quality

     4. Classification of software testing

     5. Black-box testing methods (equivalence class, boundary value, causal diagram, decision tree, error guessing method, etc.)

     6. Know how to conduct needs analysis

     7. The design of test cases (the elements that need to be included in the use case, the black box design method used, the design principles, etc., how to write a high-quality use case according to the requirements obtained, this is the core of the test activity, so The writing of test cases should cover all the functional points, scenarios and abnormal situations can be imagined as much as possible, and the interface, user experience, compatibility, system performance, etc. should also be considered)

     8. The test plan and test report can be easily understood, and it is not required to be able to write, but you must know what they mainly contain and at what stage to do it

     9. The characteristics of APP testing and the difference from web-side testing (listed separately here is to attract more attention to APP testing. Now that APP applications are widely developed, each tester is required to be able to test APP well. For testing, there are many mobile phone hardware and system versions, and the characteristics of mobile phone operation will inevitably cause APP testing to be different from web-side systems. For example, for APP, we also need to consider its WiFi environment, front-background switching, lock screen, and different mobile phones. compatibility, the occurrence of mobile phone cross-events, etc.)

  • Management tools: 1. You need to master one of the bug management tools. At present, the mainstream ones are: Bugzilla, Bugfree, jira, TestDirector (Quality Center), Zen Tao, etc. Zen Tao is an excellent open source project management software in China. The usage rate in the company is also relatively high. The main thing that beginners of these management tools need to master is how to submit bugs and the process of returning bugs. The basic operations are quite different.

                   2. The version control tool SVN, adding SVN here is also because many companies use SVN to manage project materials (requirements documents, prototypes, design drawings, test plans, test cases, etc.), so for a tester, it is necessary to Will use it to download server data, update data, submit data and other basic operations

  • Basic database grammar: Database grammar knowledge is also necessary for a tester, because during the test process, operations such as querying database data will be involved, so not only must master the basic installation and configuration, but also master SQL. The requirements are not too high, as long as you know the basics of adding, deleting, modifying, and checking, you can handle simple jobs, and the written test for finding a job is basically not a problem. The current mainstream database management systems include Mysql, MS Sqlserver, Oracle, etc.
  •  Linux commands: Some companies’ systems are deployed under the Linux system, so testers need to master basic operation commands to perform related operations, such as cd, ls, cp, mv, rm, grep, find, head, tail, file, kill , shutdown, etc.

  After possessing the above knowledge, congratulations, you already have the big bricks to crack software testing positions, but you need to continue to improve if you want to improve market competitiveness, and I will further sort it out for you below.

Many children's shoes will also ask "Do I need to learn any programming language? Do I need to understand performance and automated testing?"

After satisfying the above-mentioned necessary knowledge, you can find a job in general software testing, but your own competitiveness is definitely not great. Next, I suggest that you learn how to build the environment. Will give you a certain score, learn the knowledge of network protocols, xml/html, regular expressions, learn several programming techniques, learn at least one scripting language, Vbscript, JavaScript, Ruby/Perl, groovy, etc., at least one common Programming languages ​​such as Java, C, etc., even if they cannot be designed, we must be able to understand simple codes, as well as simple maintenance and optimization of scripts. At the same time, this is also the basis for interface testing, performance and automated testing, and the use of tools Just look at the operating instructions and learn it, but the knowledge of network protocols and script optimization required in it are based on the premise of knowing the basics of programming. For example, the performance testing tool Lodarunder requires knowledge of the http protocol and C language. The interface testing tool soapui will use groovy scripts and regular expressions, and the jmeter for stress testing will use Java and so on.

For beginners, I suggest that you first learn monkey (shell script) to automate the testing of Android APPs. If you are interested, you can learn about the compatibility testing of APPs under Yuntest (I personally don’t like to use it, but many companies now also have it. Use) Learn jmeter to do web-side stress test, and you can also properly understand soapui to do interface test and performance test, then with the basics of entry and these improvement courses, you will be able to stand out on the road to finding a job! As for automated testing such as QTP, I don't think it is necessary to intervene in the early stage (except if you have a strong learning ability). In general performance and automated testing at work, the company will mainly use old employees with experience in this field. Work 1 -After 2 years, it is better to start to infiltrate after accumulating a certain amount of project experience.

Summary: All tools are auxiliary. Scripts, programming languages, etc. can help us better achieve the purpose of testing, but they are not the core. The idea of ​​software testing is the core, so we must first lay a solid foundation for software testing and master the basic SQL syntax of the database , Linux common commands, environment construction, and then further study the relatively simple mokey and jmeter to increase the weight of the stepping stones. Finally, after accumulating experience at work, you can stride into the research of loadruner, QTP, selenium and other tools.

This post ends here, and finally, I hope that friends who read this post can gain something.

I have prepared all the learning materials in the article, please reply to 【Learning Materials】to get them for free if you need them.

If you think the article is not bad, please like, share, and leave a message, because this will be the strongest motivation for me to continue to output more high-quality articles!

Guess you like

Origin blog.csdn.net/xiao1542/article/details/130545298