Ten years on, testing has changed, and so have I, but something remains the same

Full software testing

                                                                      (I designed it thirteen years ago)

       Ten years ago, the first edition of "Full Software Testing" met with you. It is the culmination of seven years of testing work in WebEx, and it has been liked by readers. I have learned that several companies use this book as a test engineer's entry training material. Ten years on, the field of software testing has changed a lot, and so have I. Although I left WebEx, Cisco, left the testing work in the front line of the enterprise, and came to Tongji University, I have not lost contact with the industry, and I am no longer limited to the practice of a company, but have a broader vision , and Test engineers from nearly 100 companies communicated and provided them with testing training, consulting services , including providing long-term testing technology consulting services for China South Locomotive, Huawei Technologies Co., Ltd. 2012 Laboratory R&D Competence Center, etc. Today's understanding and understanding of testing is not the same as when I wrote the first and second editions of this book. Both the breadth and depth have been greatly improved. This can also be learned from my official account "Software Quality" A glimpse of the leopard can be seen in several articles of "Report".

On the other hand, software testing itself has also undergone great changes, not only advocating testing to the left and testing to the right (this is the main idea of ​​writing this book ten years ago - " Testing runs through the entire software life cycle" is still consistent ) and the rise of DevOps, and today a large number of full-time testers have disappeared, more developers start to do testing, people pay more attention to automated testing and exploratory testing, more test developers are hired, and manual testers are getting more and more There is no market. However, software testing has the risk of being led astray. For example, some companies claim to " give new value and mission to the software testing team " and change the name of the software testing department to " Engineering Productivity  (EP)" department. As an EP, its responsibility is to improve professional services and provide some professional suggestions to the product department. These suggestions cover reliability, security, internationalization, testing, release, deployment, etc. The more important responsibility of EP is to be responsible for all that can improve the efficiency of software development. Development and maintenance of tools, including business modeling tools, source code management systems, code analysis tools, version building tools, automated testing tools, quality management tools, defect management systems, etc. It even emphasizes the strategic development of tools that help defect prevention, rather than just the development of traditional testing tools (tools for finding defects). Although this approach-"establishing an EP department" is a good thing, focusing on "improving engineering productivity and reducing software defects" and emphasizing defect prevention is the best policy, but what the EP department does is no longer software The main work of testing is far from testing. At this time, EP cannot be regarded as software testing, EP is EP, and EP and software testing cannot be confused. Just like sometimes we tend to call testing QA (Quality Assurance, quality assurance) and regard QA as testing, but in fact there are obvious differences between the two. QA emphasizes that a good R&D process produces good products, focusing on process definition , Process review and process improvement, the focus of work is to prevent defects, while testing belongs to quality control, emphasizing the quality inspection of software staged products and final products, and the focus of work is to find defects. Although testing is one of the important means of QA, it is not equal to QA.

Even if testing is shifted to the left and right, agile development mode and DevOps have become popular, we discuss that software testing needs to be carried out in this context, and software testing should be better integrated into the overall environment of software development and operation and maintenance, but we still need Be clear about the work to be done in software testing itself, and distinguish between quality management, operation and maintenance management, and R&D capability improvement. When we talk about "software testing", we refer to the related work of software testing, such as unit testing, integration testing, system testing, etc., and are not limited to dynamic testing, but can also include static testing - requirements review, design review, code Review and static analysis of code with tools. When we talk about software testing today, we no longer refer to the work done by full-time testers. The testing work that can be done by developers is no longer limited to unit testing. They can do integration testing, system testing, etc.

Although it cannot be said: "There are a thousand sayings for a thousand testers", there are many kinds that can be listed:

  • Software testing is to verify whether the software product meets the needs of users;

  • Software testing is not only to verify the consistency of design and requirements, implementation and design, but also to confirm whether the implemented functions really meet the actual needs of users.

  • Software testing is an activity carried out to find software defects;

  • Software testing is to continuously reveal the quality risks of software products;

  • Software testing is to conduct a comprehensive evaluation of software product quality and provide product quality information;

Therefore, at the beginning of this book, we comprehensively expound the different understandings of software testing and the analysis of the whole process of testing ideas , reveal the connotation of software testing, help readers better understand different testing objectives and testing values, and help to plan software testing well. and execute. This is the first part of the book, consisting of Chapters 1 and 2:

  • Chapter 1 360-degree viewing test: at a glance
  • Chapter 2 Full Test: Flashing Thoughts

As the second part of this book, a complete software testing life cycle is discussed . This part starts with the "preparation" of the test project, focusing on the construction of test infrastructure and TA framework, team capabilities, etc., which is the basis for subsequent test planning, design and execution, under the background of today's complex environment and technology, and rapid delivery , the infrastructure must be looked at first . Then, step by step to test planning, design, execution. It is indeed not easy to take into account the traditional test and the test in the agile mode, but the core things generally have good vitality and are not easy to be abandoned, and they do not have to be regarded as different test stages, but It is regarded as a basic testing activity to be experienced in the development process. This part of the basic method will not be introduced in detail. You can refer to the test textbook I wrote before. Here we will focus on the flexible application and practice of the method . This part is made up of the 3rd chapter to the 9th chapter.

  • Chapter 3 Preparation: Infrastructure and TA Framework
  • Chapter 4 Preparation: Organizations and Teams
  • Chapter 5 Project Initiation: Know Yourself, Know Your Enemy, and Win a Hundred Battles
  • Chapter 6 Test Planning: Analysis and Strategy
  • Chapter 7 Test Design: Architecture and Use Cases
  • Chapter 8 Test Execution: Automation and Exploration
  • Chapter 9 Never Close: Continuous Reflection, Feedback, and Improvement

The idea of ​​full-process testing is not limited to functional testing, but also extends to non-functional testing , including continuous performance testing and optimization, continuous security testing and reinforcement, and focuses on thorough automated testing—full-process test modeling and full-process visualization manage.

  • Chapter 10 Full Static Testing: Responding to Changes
  • Chapter 11 Full Performance Testing: Continuous Optimization
  • Chapter 12 Total Security: Continuous Hardening
  • Chapter 13 Full Modeling: Fully Automated
  • Chapter 14 Whole Process Visualization: Management Without Dead Angles

Finally, looking into the future, testing involves microservices, cloud technology, AI technology and its applications, etc., which are more challenging . Due to limited space, the last chapter can only do the finishing touches, but it can also inspire you, know how to deal with challenges, how to design solutions for cloud testing and AI testing, and make cloud computing and AI technology better for testing purposes. Even though I have written 15 chapters, hundreds of pages, and hundreds of thousands of words, I feel that many things have not been written yet. If I write slowly, I can write 1,000 pages and 1-2 million words without any problem. If the very specific operation steps are described, and a few more examples are given for analysis, each chapter can be written as a book. After all, the energy is limited, and the essence is drawn out. As for the details, I leave it to everyone to study and expand themselves. The most important ability of an IT person is the ability to learn - the ability to learn by himself, so it is most effective to practice by yourself how to use tools. It is not difficult for professional engineers to use tools, but it is quite difficult to change their thinking and way of thinking . In short, from ideas, processes, methods to best practices, and your own thinking are all presented, and the rest is for readers to think, practice, think again, and practice again. (Method of joining the group: scan the QR code and add the WeChat account of the asynchronous assistant, reply to the keyword "whole process software testing" to join the group)

Full Software Testing - 3rd Edition

(Recommendation order, recommendation speech to be continued)

thank you

First of all, I would like to thank Mr. Tian Suning, member of the Advisory Committee of Harvard Business School and chairman of Broadband Capital Fund, for writing the preface for this book in his busy schedule, linking software testing with customer operations in today's era, and then upgrading it to "only companies that have mastered software, Only in this way can we understand and grasp the future world and keep up with the tide of the times.”

Secondly, I would like to thank all the friends who wrote recommendations for this book, and some of them also provided valuable opinions . They are (in no particular order, just listed by the first letter of the pinyin):

  1. Cai Lizhi ISO/IEC Chinese expert representative, director of the Technical Committee of China Software Testing Organization Alliance, deputy director of Shanghai Computer Software Technology Development Center

  2. Chen Ji, CEO of Shanghai Jihui Information Technology Co., Ltd. & Co-founder of VipTest

  3. Cheng YanJD Logistics R&D Manager

  4. Xiaopeng ChenHead of Accenture China Center of Excellence

  5. Chen Zhenyu, Professor of Nanjing University, Founder of Moce Platform

  6. Geng Xiaoqian (Christina Gen), Director of Testing at Splunk San Francisco Headquarters

  7. Hu Xing Director R&D Architect of Baidu Intelligent Driving Business Group

  8. Kong Dejinhua is an expert in testing

  9. Li GeAssociate Professor of Peking University, Secretary General of CCF Software Engineering Committee

  10. Li Huaigen, General Manager of R&D Center of China Guangfa Bank

  11. Liu Chenmei (Meizi) Firewall R&D Manager of NSFOCUS Technology, author of "The Way of Training Software Test Architects"

  12. Liu Jiang, Dean of Meituan Dianping Technical College, Secretary-General of CCF Technical Frontline Committee

  13. Liu Qin, Chief Representative of ISTQB China, Professor of Software College, Tongji University

  14. Ran Liu ThoughtWorks Senior Software Quality Consultant

  15. Liao Zhi Tencent Quality Management Channel Member, Director of CSIG Map Product Quality Center

  16. Phyllis Chang Senior Manager, Webex Engineering,Cisco HQ

  17. Ru Bingsheng Dell EMC Test Architect

  18. Wang Bin, Vice President of Testin Cloud Testing Solution Division, Co-Founder of VipTest

  19. Wang Dong Director of 360 Testing

  20. Wang Jinbo Director/Researcher, Space Software Evaluation Center, Chinese Academy of Sciences

  21. Xiong Zhinan Senior Test Development Engineer of JD.com, Co-Founder of "Test Nest" Community

  22. Xu Yonghui is a senior testing expert of a well-known communication company

  23. Yang Chunhui Director of the Software Center of the Fifth Research Institute of the Ministry of Industry and Information Technology, Director of the Software Evaluation Center of China Saibao Laboratory

  24. Yang Kaiqiu ZTE Corporation Test Manager

  25. Yang Xiaohui Former Huawei Testing Expert, Now CTO of AI Machine Era

  26. Yang Zhongqi Head of Orient Securities Testing

  27. Yu Hongkui Senior Manager of Bank of China Software Center

  28. Zhong Side CSI Consultant, Senior Test Manager of Well-known Communication Company 

  29. Zhou Zhenyi Executive Vice President of CSTQB, Vice President of TMMi China Branch

  30. Zhu Bo, IT Manager, Hong Kong Airlines Co., Ltd.

Furthermore, I would like to thank the editors of People's Posts and Telecommunications Publishing House for their hard work, especially editors such as Chen Jikang and Wu Jinyu for their strong support and pleasant cooperation, so that this book can meet readers in a good state. Finally, I would like to thank my family for their full support, which enabled me to devote myself to the writing of this book and to have a deeper and smoother exchange of ideas and techniques with readers.

thank you all!

Scan the QR code to buy on JD.com and Dangdang

The article has been modified on 2018-12-06

おすすめ

転載: blog.csdn.net/KerryZhu/article/details/87976960