Software testing in the eyes of old code farmers

Insert picture description here


Summary

Most of MaNong's products and services exist in the form of software. One of the values ​​of our existence is to quickly provide high-quality software products or services. How to ensure the high quality of the software? This is inseparable from software testing, which is one of the key links to ensure software quality.

The old coder had done software testing for two years in his early years. Now I dare to introduce the testing in the eyes of the old coder.

What is software testing?

Software testing is any activity whose goal is to evaluate a program or system attribute. Testing is a measure of software quality. ——"Complete Guide to Software Testing"

As far back as 1983, IEEE's software testing is: the use of manual or automatic means to run or measure a software system, the purpose is to verify whether it meets the specified requirements or to clarify the difference between the expected results and actual results . In other words, the original purpose of software testing is to check whether the software system meets the requirements.

Although testing is the process of executing a program in order to find errors in the program, it is not just for finding errors. By analyzing the causes and trends of errors, it can also help us find defects in the current software development process so as to improve in time. Of course, testing that does not find errors is also valuable, and complete testing is a way to assess software quality.

Simply put, software testing is the process of proving that there are no errors in the software.

The difference between testing and QA

QA is the abbreviation of quality assurance, that is, quality assurance. Software testing is only a part of QA and a subset of QA. The content of QA is much larger than that of tests. It can provide feedback on the products, work processes, organization methods and other matters related to the company's operations. Many senior executives of foreign companies are from QA, especially in manufacturing. Simply put, testing guarantees software quality technically, and QA guarantees software quality process.

The focus of QA is not just the quality of the software, but the entire software process, especially the process and system, such as the ISO 9000 series of quality systems. In a word, all matters related to quality are QA matters.

Test field

When I first entered the industry, I switched from a hardware engineer to testing. Strictly follow the software engineering process of Bell North Laboratories and divide the test areas into 13 areas. Due to the age, only 11 can be remembered now.

Functionaliy

The functionality of the software is the first priority, and the finished product with half of the functions is better than the semi-finished product with all the functions. What functions does the software implement? Have these functions been completed?

Robustness test Robustness

Robustness refers to the fault-tolerant capability of the software. Can default input lead to the introduction of faults? Will prolonged stress testing cause program abnormalities?

Performance test

Behind the supremacy of user experience is the supremacy of performance. Only good performance can meet the expectations of users. Performance testing is a race against time, testing the running speed of the software and the utilization rate of resources.

Interoperability test interoperability

Many software does not exist in isolation, and other software used by the user cannot be used normally because the user uses our software. At the same time, we must ensure that the software the user is using will not adversely affect the output of our software. In particular, note that there are mutual calls between software.

Accessibility test

Usability is mainly for different users and different scenarios. For example, the story of "Are you hungry?" hearing impaired riders a few days ago illustrates this problem. The usability test failed. Fortunately, Xuefeng later said that the new version can be used by hearing impaired riders.

Usability test usability

User convenience is another broad field. The user's usage habits, one-handed operation, the position of the buttons, the depth of the path to achieve the target function, etc., are all indicators of ease of use, and sometimes aesthetics are taken into consideration.

Security test

Like health, you only know its value when you lose it. Data source security, transmission channel security, data storage security, etc. Although the importance of security is well known, there are not many companies that really invest in security.

Recovery test

The recovery test generally refers to whether the system can be restored to the previous operating state after a normal or abnormal exit. For example, many mobile phones have a recovery mode, and destructive tests such as unplugging the power supply are sometimes used as test methods.

Compatibility test

Compatibility involves more fields. Common ones include multi-browser testing, app multi-model testing, etc. Fortunately, there are some cloud testing platforms that can help us solve environmental compatibility issues. We pay more attention to the compatibility between different versions of the software itself, including forward compatibility and backward compatibility.

Release test deliverable

Release testing is more about software download, installation, uninstallation, etc. Generally, upgrades and hot updates are also included in the release test, including grayscale upgrades.

Documentation integrity test documentation

Documentation is an old topic. Programmers often complain about the lack of documentation, and often hate writing documentation and fall into self-contradiction. The integrity of the test document will be considered less important, and a good way may be to solve it from the product side, so that the product itself is self-explanatory, and so is the code.

Test process

The field of testing is the classification of testing from the dimension of space. From the dimension of time, it can be roughly divided into four processes.

unit test

Unit testing: It is the lowest level testing activity to be carried out in the software development process. In the unit testing activity, the independent unit of the software will be tested in isolation from the other parts of the program. Under normal circumstances, a unit test (module test) is a small piece of code written by RD to verify whether a small, clear function of the code under test is correct. Generally speaking, a unit test is used to determine the behavior of a specific function under a specific condition (or scenario).

Integration Testing

Integration testing is also called assembly testing or joint testing. On the basis of unit testing, all functions or program modules are assembled into subsystems or systems in accordance with design requirements (such as structure diagrams) for integration testing. Under normal circumstances, integration testing is a way for RD to check whether there are problems in the combination of functions or modules within the program.

End-to-end testing

End-to-end testing (E2E) is actually a system test of multiple systems. In end-to-end testing, business processes are the most important, and end-to-end testing is the most extensive test. Integration testing mainly focuses on the interfaces between systems. Information needs to be exchanged between systems, so integration testing is a prerequisite for end-to-end testing. E2E testing is not limited to functionality. In an end-to-end test environment, many non-functional attributes of the service, such as performance and security, need to be evaluated.

User scenario test

User scenario testing refers to the real use testing of products or services by some real users. In the past, telecommunications products were field trials or beta testing. Internet products are often user-friendly tests (open beta) or grayscale upgrade tests.

Phase goal-based testing

As for the black-and-white gray box test that everyone often talks about, it is based on the transparency of product details, so programmers do not need to distinguish carefully. However, some specific stages of testing still need attention.


Finally: benefits

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your testing technology.

In the interview season of Golden 9th and Silver 10th, job-hopping season, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.

May you and I meet and you will find something! If you want to exchange experience in software testing, interface testing, automated testing, and interviews. Follow the WeChat public account: [Sad Spicy Article] Receive a 216-page software test engineer interview book for free. And the corresponding video learning tutorials are free to share!

Recommend good articles:

What kind of person is suitable for software testing?

Essential Linux knowledge points for test engineers

Summary of 2020 Software Test Engineer Interview Questions (with answers)-After reading the BATJ interviewer, the interviewer gives you a thumbs up!

The higher the level, the simpler

Do you really understand Python automation? This article can give you 90%

Guess you like

Origin blog.csdn.net/weixin_50271247/article/details/112973393