First, the definition of software testing:
A process used to facilitate the identification of software for correctness, integrity, security, and quality. In other words, software testing is a process of reviewing or comparing the actual output with the expected output.
The classic definition of software testing is the process of operating a program under specified conditions to find program errors, measure software quality, and evaluate whether it meets design requirements.
1. In short, what is software testing?
It is the comparison process between the actual output and the expected output.
Second, the test process:
Familiarize yourself with the business according to the requirements, determine the test scope, and then design test cases. After the development and testing, use manual or automated means to execute the software under test, and check whether the actual results are consistent with the expected results. After the development and modification are completed, the regression test is performed, and all use cases are completed, and the acceptance test is carried out by the customer.
Dry goods! ! In an industry with a monthly salary of over 10,000, the basic concepts of software testing
Three, the principle of software testing:
1. "Continuous software testing as early as possible" should be the motto of software developers.
2. The test case should be composed of two parts: test data and corresponding expected output results.
3. Programmers should avoid checking their own programs.
4. When designing test cases, reasonable input conditions and unreasonable input conditions should be included.
5. Pay full attention to the clustering phenomenon in the test. If the number of errors that are tested in a program is more, it proves that there are more errors remaining in the program, and the test should be focused.
6. Strictly implement the test plan and exclude the randomness of the test.
7. Pay attention to the relevance of regression testing, often modifying one error will cause more errors.
8. Properly save test plans, test cases, error statistics and final analysis reports to facilitate maintenance.
Fourth, the purpose of software testing:
1. Software testing is the process of executing a program in order to find bugs.
2. The test is to prove that the program is wrong, not to prove that the program is not wrong. (finding bugs is not the only purpose)
3. A good test case is that it finds bugs that have not been found so far.
4. A successful test is one that finds a hitherto undiscovered bug.
Five, the classification of software testing:
1. According to whether to view the code points:
white box testing
Black box testing (functional testing)
Grey-box testing (inter-module interface testing)
2. According to the means of execution:
manual testing
automated test
3. According to whether the software under test is executed or not:
dynamics test
Static test
Below is my learning route (data) for your reference.
This information is organized around [software testing] as a whole. The main content includes: Python automation testing exclusive video, Python automation detailed information, a full set of interview questions and other knowledge content. For software testing friends, it should be the most comprehensive and complete preparation warehouse. This warehouse has accompanied me through a lot of bumpy roads, and I hope it can also help you. Join the software testing exchange QQ group::644956177, you can directly get the last one, thank you for meeting, thank you for fate, thank you for your support, thank you for your choice, and thank you for your trust. Let me find a satisfying job. I also wish you all the best of luck in finding your desired job and making a successful career change!
1. Test basis
Understand the basic skills of testing, master the use of mainstream defect management tools, and be proficient in the operation and maintenance of the test environment
Second, the necessary knowledge of Linux
As the most popular software environment system, Linux must be mastered. The current recruitment requirements all require Linux capabilities.
3. Shell script
Master Shell scripting: including Shell foundation and application, Shell logic control, Shell logic function
4. Principles of Internet Programs
The only way for automation: basic knowledge of front-end development and necessary knowledge of Internet network 4. Principles of Internet programs
5. MySQL database
Software test engineers must have knowledge of MySQL database, not only in the basic "add, delete, modify and check".
6. Packet capture tool
Fiddler, Wireshark, Sniffer, Tcpdump various packet capture tools are suitable for various projects, there is always one suitable for you
7. Interface testing tools
Interface testing artifact, a powerful tool that you cannot avoid: Jmeter. Small and flexible: Postman
Eight, Web automation testing Java & Python
Understand the purpose of automation, master TestNG & unittest automation framework, and assert and log processing
9. Interface and Mobile Automation
Professional interface calling and testing solutions. Build a complete web and interface automation framework, and use Appium as a whole
10. Agile Testing & TestOps Construction
TestOps, continuous integration Jenkins framework is well-known
11. Performance testing & security testing
Encouragement: [Tutorials that may help you]
These materials should be the most comprehensive and complete preparation warehouse for friends who do [software testing]. This warehouse has also accompanied me through the most difficult journey. I hope it can also help you! Everything should be done as early as possible, especially in the technology industry, and the technical foundation must be improved.
Follow my WeChat public account [Program Yuanmuzi] to get it for free~