Test Engineer's Handbook: Challenges and Opportunities

Test Engineer's Handbook: Challenges and Opportunities

[[127980]]

As testing is increasingly valued in the software development cycle, there has been a large gap in domestic testing. On the one hand, test development shows that engineers have higher requirements, requiring them to have development capabilities on top of testing capabilities; on the other hand, automated testing has become a trend, using development skills to solve problems in testing to improve testing efficiency and reduce the manpower ratio of QA (quality assurance) to RD (Research and Development engineers).

Although testing is an indispensable and important part of the APP team, the current domestic environment seems a bit bleak. Small teams often do not have the position of test engineers. Before the APP is launched and promoted, the testing phase is completed by just running the APP on the existing mobile phone models of the team members. It is not that the development team does not attach importance to the testing phase, but it is caused by cost pressure and the APP application market environment. At the same time, there is no platform in China that can provide testers with exchanges and learning. Nowadays, technology is no longer a problem for mobile Internet. An important part of the battle between application APPs is the quality of the APP itself. Test engineers are fighting on such a battlefield, but how to become a qualified or even excellent APP quality control personnel?

1. Technical content

If you ask a test engineer why he chose the test development position, you often hear the following answer:

"I think my development ability is relatively weak, but I am quite careful, so I think the testing position is more suitable for me."

"I have worked in laboratories and internship companies, and have done functional testing and performance testing. I prefer testing."

"Developers can only understand part of the project, but testers need to know more. I hope to have a better overall view."

No matter what people really think, the technical content of testing is not as high as that of development in the subconscious. Objectively speaking, the technical content of testing and development in software coding is indeed not as good as that of pure development positions, not to mention testing positions. However, the technical level required for this position itself should be higher than that of a pure development position. A truly high-level QA requires at least many years of development experience, otherwise he cannot make substantive comments and risk assessments in terms of software product design, architecture and implementation. At best, he can only point out a few bugs in the delivered software. Therefore, based on the current domestic market situation, I personally recommend that those who want to develop their career in testing should first participate in research and development work for a few years. After all, that is the main body of software engineering, and then cultivate testing awareness in the development process, which is also the professional quality of programmers. Many engineers at Google have a strong sense of quality, and many codes are not reviewed by anyone without their own unit tests and functional tests. For those who apply for testing or test development positions in order to escape development, it is difficult for their career path to develop smoothly.

2. Basic qualities

There are generally two types of test development projects in a company. One is to simply develop test tools or systems for the test team (since this part is essentially not much different from a simple development position, the discussion is based on the other type); the other is to take subjective initiative in the testing process and use automation to minimize repetitive work, such as developing test tools suitable for specific scenarios (of course, this type of tool is universal and can be extended to the entire group or company), test scripts and test cases.

Test development engineers should have two aspects of knowledge: testing knowledge and development knowledge. The reason why testing is put in the front is that the development here is based on testing practice. Among them, testing knowledge is divided into two parts: one is theoretical knowledge. The software industry has only been developed for a few decades, and there is even less accumulation in testing, so it is not difficult for ordinary people to master this part; the other is experience knowledge, which is mainly accumulated in the process of project testing. Many system test points and risk points require rich experience to evaluate, which is also the value of senior test engineers. Development knowledge is of course similar to that of development engineers, so I won’t say more. In terms of soft quality, test development engineers should have better organizational communication and collaboration capabilities. Now many companies are promoting full-process assurance. In order to exert greater influence and ensure the quality of the project, QA needs to track and participate in all aspects from demand to design, testing to online launch, which involves a lot of cross-departmental and cross-group communication. Even communication within the group is extremely frequent, and engineers need good expression skills. At the same time, since testing is at the back of the software life cycle, there are many obstacles in the process of promoting many tasks to the upstream, which also requires engineers to have better coordination and collaboration capabilities to ultimately achieve the goal.

3. The nature of testing

2V (Validation and Verification) is the basic responsibility of QA, which is to ensure two points: Validation, the software is developed according to the established requirements and does not deviate from the product direction; Verification, the software ensures its correctness on the basis of meeting the requirements, and verifies from various aspects such as function, performance, and security. In the traditional sense, the second point is the consciousness of most QAs, that is, finding bugs. They believe that the more bugs a software finds, the greater its value. In fact, the highest level of QA is that the software cannot find bugs during testing, because you start the quality assurance work in the startup phase of the software, and eliminate the possibility of bugs from the early stages such as requirements, design, and coding. Of course, the above is a bit ideal, but what is the essence? Behind the software are people, the requirements are formulated by PM (test project manager), and the development is carried out by RD. So what is actually tested behind the test is people rather than software. People may always have loopholes in thinking and may make mistakes, so there will always be bugs, but some people are careful and responsible. After they have developed, they will conduct unit tests and functional tests by themselves, so that there are very few bugs that can be found later. If you understand this level, don't think about testing from a technical perspective.

4. Going Further

It is undeniable that many test theories, whether white box or black box, unit, integration or system, seem to be patents for testers, but in fact most of the methodologies are proposed by developers. Once again, it is impossible to deeply understand testing without participating in the research and development of the main body of the software, so the development capabilities and skills that developers need to have are also required by testers. Of course, due to various reasons such as project arrangements and time, testers can hardly have more development opportunities, but this does not prevent you from continuing to learn. In addition, testing can cover many aspects, but human energy is limited after all, and test development engineers must also have their own core competitiveness. It is a good practice to choose a direction and strive to become an expert in a certain aspect, such as unit testing (don't think that it is done by developers, many developers do not have the awareness and skills of unit testing), performance testing, and security testing. Finally, test development engineers need to cultivate their overall control ability, which is intentionally cultivated in the career process. What is the company's current task? What is the focus? In large companies, you need to go with the flow. The job of QA is to ensure quality, which requires the help of processes, tools and other external resources, so try to fit in with the general direction when working.

Third-party testing service platform: both a challenge and an opportunity

At present, there are also some third-party testing service platforms in China. The most famous one is the Testin crowd testing service recently launched by Testin Cloud Testing, which brings together 100,000 top domestic mobile Internet testing and QA experts. From the perspective of service objects, it is a large-scale professional crowd testing platform focusing on mobile apps. Perhaps in the eyes of testers, this vertical professional platform will attract some APP teams to reduce the use of testers, but on the other hand, if a tester joins such a similar crowd testing platform, he can not only accumulate more testing experience and obtain more labor returns without affecting his job, but also find an opportunity to share and communicate with many testers. Therefore, third-party testing service platforms are challenges and opportunities for testers.

Finally, I want to say that whether in a large company or a small company, if testers want to develop, the pressure will definitely not be small, and the mentality is very important. Working with the mentality of an entrepreneur instead of an employee will make a big difference in looking at many problems. How can a sparrow know the ambition of a swan?

<<:  [Mobile Development Channel] What has changed in WeChat in recent years?

>>:  Apple releases second beta of iOS 8.3 to developers

Recommend

Tractica: AI software global revenue will reach $126 billion in 2025

Artificial intelligence (AI) across consumer, ent...

You will definitely understand what iteration means.

Editor's Note There is an interesting phenome...

Image social networking is counterattacking general social networking

Preface: If we look back at the original intentio...

iOS 13's new feature "Apple Login" is mandatory and sparks controversy

When Apple announced the new "Sign in with A...

What are the shortcomings of Android compared to iOS?

Currently, Google's Android system and Apple&...

Are the dancing stars too boring? Or maybe too fat...

Is the dance of the red supergiant a death strugg...

A Brief Discussion on iOS Crash (Part 1)

1. Capture iOS Crash 1. Set an exception breakpoi...

Win10 pushes new features: make your computer faster

Computer lag is often the most headache problem f...

New progress! The world's longest undersea road tunnel begins its "sea journey"!

On January 26, the construction of the Qingdao Ji...