The difference between white box testing and black box testing

The difference between white-box testing and black-box testing White-box testing and black-box testing are both important links in the computer field to check the status of the program and determine whether the actual operating status is consistent with the expected status. Let’s see what is the difference between them. .

insert image description here
White Box Testing (White Box Testing): It is a test that goes deep into the code level. Using this technology to find problems is the earliest and the effect is the best. The main feature of this technology is that the test object enters the code, and according to the developer's familiarity with the code and the program, the necessary parts are tested in the software coding stage, and the developer performs the software according to his own understanding of the code and contact Testing is called white box testing. The testing at this stage is mainly for software developers, who use the Xunit series of tools for testing on the JAVA platform. The Xunit testing tool is a class-level testing tool to test each class and the method of this class.

Black Box Testing (Black Box Testing): The content of black box testing mainly includes the following aspects, but it is mainly the functional part. It mainly covers all functions, and can be combined with compatibility and performance testing. According to software requirements, design documents, simulate customer scenarios and conduct actual testing with the system. This testing technology is the most used testing technology and covers all aspects of testing. Consider the following:

1. Correctness: Calculation results, naming, etc.

2. Usability (Usability): Whether it can meet the requirements of the software.

3. Boundary Condition: The boundary value of the input part is to use the equivalence class division mentioned in the general book, try the maximum, minimum and illegal data, etc.

4. Performance: The time required for the system to complete a task during normal use, and the response time is within an acceptable range when multiple people use it at the same time. The system implemented by J2EE technology needs to be taken care of in terms of performance. The general principle is that it is acceptable if it is less than 3 seconds, 3-5 seconds is acceptable, and it will affect the usability if it is more than 5 seconds. If a performance problem is found during testing, it is very difficult to fix, because it often means that the program has a bad algorithm, bad structure, or bad design. Therefore, in the initial stage of product development, it is necessary to take into account the performance of the software.

5. Stress test (Stress): For multi-user situations, you can consider using a stress test tool. It is recommended to combine stress and performance testing. If there is load balancing, you need to open the monitoring tool on the server side to check the server CPU usage, memory usage, if necessary, you can simulate a large amount of data input, the impact on the hard disk, and other information. Performance optimization must be done if necessary (both software and hardware). The stress test here is aimed at certain functions.

6. Error Recovery (Error Recovery): Error handling, page data verification, including sudden power failure, input of dirty data, etc.

7. Security testing (Security): This field is being studied, firewalls, patch packages, anti-virus software, etc. needless to say, but it can be considered. After randomly reading some information during the destructive test, I learned that the knowledge and content involved in it can be written in a book, and it cannot be explained clearly in one or two sentences, especially some business websites, which are either related to money or related to the company. Secret-related web needs testing in this area. In foreign countries, there is a kind of person who specializes in this field called a security consultant, who can review codes, make security suggestions, and deal with emergencies. I have never heard of it in China. Specialized in security technology testing content.

8. Compatibility (Compatibility): Different browsers and different application versions perform different Internet access methods when implementing functions, if you are testing a public website.

In Beijing, the average salary of a software test engineer is as high as 16.4k, and if you continue to improve your technology, it can even reach 50k! And the salaries related to software testing, even during the epidemic, are rising every year!
insert image description here

△ The source of the screenshots is the collection of friends, such as intrusion and deletion

Current status of testing industry

There are more and more software, and to win by quality, the demand for testers is increasing

In the process of using software products, problems that affect user experience will greatly reduce user stickiness and confidence, and bring immeasurable losses to the enterprise.

In layman's terms, software testing is the process of testing software, including testing of quality dimensions such as software functionality, usability, performance, and security.

Guarantee the quality of software products after they are officially released, and enhance users' experience and confidence in products.

But while software brings us great convenience, it also brings various troubles to people. If you are interested, you can search for the top ten most famous bugs in the software industry, all of which are earth-shattering. In our country, due to the phenomenon of "emphasizing development and ignoring testing" in many software companies, quality problems of software products will frequently occur in the future. As long as we pay attention to our daily life, we will find all kinds of troubles caused by software bugs: for example, a bug in the traffic light control system caused traffic paralysis; a bug in the subway control system caused people to be late for work; Normal life and work cannot be carried out...

With the in-depth development of the domestic software industry, people's living standards are getting higher and higher, which leads to people's higher and higher requirements for software quality, which forces software companies to rely on software product quality to occupy the market, and then promotes What is more important is that companies are increasingly demanding testers.

There is a gap of 300,000 testing talents, and the salary has jumped frequently in the past two years

On the contrary, because software testing has only attracted attention in recent years, university education has not kept up with it at all, even training institutions, there are very few software testing-related trainings, and there is a serious shortage of software testing talents, causing many companies to settle for second best. Take software developers for a hurry. According to ChinaHR.com, there is currently a gap of more than 300,000 software testing talents. The talent gap will inevitably lead to a jump in salary. According to the statistics of Zhiyouji, in the two years of 2015 and 2017, the salaries of software testing talents have jumped by 40% and 33% respectively.

At present, automated testing has become a trend, and talents are scarce

Testing can actually be subdivided into many types. Only according to the dimension of whether programming is required, it can be divided into manual testing, automated testing, and test development. At present, there are prominent contradictions in the field of testing: on the one hand, enterprises need testing talents with a slightly higher technical level, such as automated testing and performance testing; Therefore, there is a shortage of automated testing talents. As long as you master a certain automated testing technology, you will often be scrambled by the market, and of course you can get a high salary.

So for us newcomers, we must first choose the right industry, and we must consider how to stick to it. Doing a good job of our own career planning may be an important thing for us to grow rapidly in this industry.

Programmers all over the world have been suffering from bugs for a long time!

Now, the natural enemy of programmers finally has a natural enemy-software test engineers.

But it is rumored that the daily work of software test engineers is to catch fish? The editor doesn't believe it, you must know that the wages of software testing are high now, how can the bosses allow them to fish?

Let's take a field trip to see if the software testing engineers are really fishing or fake fishing.

Subject of investigation: Xiao Wang, a new software tester of an Internet company. Although he has just joined the company not long ago, he has already become a regular in advance with his super business ability. I accidentally learned in a chat that his salary is 18k.

When I came to Xiaowang's station, he was leisurely drinking a cup of green tea with the fragrance of jasmine, and playing with the latest Huawei Mate Xs2 from time to time (this is really not an advertisement).

Are you still playing with your phone while working so leisurely? I caught him right away, let's see what he says this time.

"What, we catch fish? Don't talk nonsense, we rely on technology to work. If we have to say it, it's our ability. I'm not bragging, ordinary people really can't catch such fish."

A worker who relies on technology to realize the freedom of "fishing"? If you say that, then I'm more interested.

"Then tell me, how do you rely on technology to catch fish?"

Xiao Wang took a sip of the green tea in his hand, and leisurely told me about his daily work...

"Take today as an example. You see, I was drinking tea and playing with my mobile phone. In fact, before that, I had a meeting to clarify the needs analysis, and then made a plan based on this, and built a test environment... …Now I am doing automated testing, which is to let the program automatically perform some repetitive but necessary testing tasks. The time I drink tea here is to wait for bugs to be detected and communicate with the development area.”

"So that's the case, then it seems that you are really 'fishing' by technology."

"That's right, automated testing has this benefit. As long as you learn kung fu and want to drink tea leisurely, you can still have time to squat in the pit~" ...
So
, do you understand? Software testing seems to be behind the leisurely drinking tea is to master the technology.

It is understood that for the sake of software security, companies now have to spend money to let software testing engineers come to the company to fish, and they must be automated testing talents! And the salaries are very high!
insert image description here

△ Screenshots are directly hired by Boss, such as intrusion and deletion

But if you want to "fish" during working hours, you can still get a high salary like Xiao Wang. In addition to mastering automated testing , you also need to be proficient in functional testing, interface testing, and performance testing . "The ability .

If you really want to get into software testing, you can take a look at the following learning route~

Phase 1 functional testing

Pre-study guide: After learning the content of this stage, you can use the whole process functional testing solution, Web automated testing solution, data separation solution, automated testing reporting solution, and log collection solution.

1. In 2022, the whole network debuted, and the most suitable software test introduction to practical tutorials for novices was launched!

From entry to proficiency, it includes the basics + project actual combat. All the actual combat operations of the cases are illustrated and written, and a complete set of customs clearance is truly realized!

The latest video tutorials of software testing 2022, from the basics of software testing to the actual project (covering the basics of software testing + the actual combat of dark horse headline projects)

2. From entry to proficiency in software testing

Software testing is a review or comparison process between actual output and expected output. The classic definition of software testing is: the process of operating the program under specified conditions to find program errors, measure the quality of the software, and evaluate whether it can meet the design requirements. This course has a total of 5 days and is recorded for zero-based beginners. A must-learn course for zero-based entry.

Software testing from entry to master_Software testing basic course

3. Linux system 2-day quick start

This video includes an introduction to the Linux operating system, common Linux commands, and the vi editor. After learning and mastering the content of this stage, you can have the ability to build Linux projects.

Linux system operation tutorial 2 days quick start linux project construction

4. Intensive lecture on software testing MySQL database knowledge + project practice

This video includes data installation, data table operation, data operation - addition, deletion, modification, query, conditional query, sorting, aggregation function, grouping, paging, connection query, self-association, subquery, and subquery drill. After learning the content of this course, you can have the ability to verify the database; you can also quickly and standardly master the operation of adding, deleting, modifying and checking the database.

A must-have MySQL database for software testing engineers, intensive lectures on mysql system + exercises after class

The second stage of Python programming

Pre-study guide: After learning the content of this stage, you can master Python syntax and have programming ability; be able to establish programming thinking and object-oriented programming thinking; be able to master the UnitTest framework to manage test cases.

10 days to play Python software testing

After learning the contents of this stage, you can master Python syntax and have programming ability; you can establish programming thinking and object-oriented programming thinking; you can master the UnitTest framework to manage test cases.

Python automatic testing tutorial, python manages test cases from basics to UnitTest framework

Phase 3 UI Automation

Pre-study guide: UI automation is roughly divided into web automation and App automation, which account for a large proportion in the field of automated testing and are often used.

1. Intensive lectures and actual combat of web automation testing for software testing

This course will teach you to build a web automation and mobile automation testing environment; master the web automation testing process and script writing; master the positioning method, element operation and gesture operation of elements in mobile automation testing; master the use of ADB tools; master the PO mode Design ideas and be able to encapsulate pages; master data-driven implementation; be able to flexibly use automation-related technologies in actual projects.

Software testing web automation testing, Web automation process intensive and mobile automation testing environment

2. Zero-based entry mobile automation - Appium framework

This course will explain the Appium framework in detail. Appium is an open source, cross-platform automated testing framework, which is suitable for automated testing of Native Application, Mobile Web Application or Hybrid Application.

Zero-based entry mobile automation testing - Appium framework

3. Easy to teach you to use Appium for IOS real machine automation testing

This set of courses presents the steps and precautions of environment installation to the students, and demonstrates and explains everything from the simulator to the actual operation of the real machine. The content is rich and vivid, and IOS end environment installation and practical operation can be completed after learning.

Easily teach you to use Appium for IOS real machine automation testing

Phase 4 Interface Automation

Pre-study guide: Interface testing is the most frequently used part of all automated testing. This stage is divided into 14 parts for detailed explanation.

Intensive Lecture on Interface Testing + Practical Tutorial of Chuanzhi Health

This tutorial will involve HTTP, Postman, Pymysql, requests library, integrate UnitTes, Dubbo and many other tools, and finally use Chuanzhi Health project to carry out actual project combat at this stage.

4 days to play the interface test, full analysis of the key points of the interface + actual combat of Chuanzhi health project (including requests library, integration of UnitTes, Dubbo and many other tools)

The fifth stage of performance testing

Pre-study guide: Performance testing belongs to the category of advanced testing, which is very helpful for salary improvement. The video at this stage explains the construction of performance testing environment, the use of JMeter tools, performance testing monitoring, analysis and tuning methods.

4-Day Quick Start Performance Test

This video learns the basic theory of performance testing and JMeter tools; through the actual combat of the light mall project, it takes students to master performance testing requirement analysis, performance testing plan, test case design, test script development, performance monitoring, performance analysis and tuning, performance testing Report summary.

A full set of tutorials for performance testing, 4-day quick start performance testing + actual combat in the project mall (including JMeter tools, etc.)

The sixth stage of comprehensive project strengthening

Pre-study guide: Pass the two practical projects of WeChat mini-program and financial project to comprehensively strengthen function test, interface test and performance test.

1. WeChat mini-program automated testing practice

This video covers: Basic introduction of WeChat mini-programs, introduction of Ego micro-business projects, deployment of Ego micro-business projects, planning of Ego micro-business mini-programs, design of Ego micro-business mini-programs, summary of implementation of Ego micro-business mini-programs, and Ego micro-business Small program interface testing articles, continuous integration.

Software testing Wechat applet automated testing practice

2. Financial projects were completed within 4 days of software testing

This video explains financial project functional testing solutions, real project testing experience solutions, complex business interface testing solutions, interface encryption and decryption testing solutions, data separation solutions, continuous integration solutions, automated test reporting solutions, and high-concurrency testing solutions .

Software testing 4 days to quickly get financial project functional testing practical tutorial

Guess you like

Origin blog.csdn.net/weixin_51689029/article/details/128498922