Test Mission: Definition, Components and Application
来源:互联网 发布:详解进化论知乎 编辑:程序博客网 时间:2024/06/05 15:23
Test Mission: Definition, Components and Application
Kai Yi
Software Institute
Xi’an Jiaotong University
Abstract
In this article, I will give a general definition of test mission and introduce it’s high-level concepts at the first beginning. Then I will talk about the main components of practical and detailed missions of testing. Besides, as I’m very interested in deep learning and neural network compression, I will apply those missions into the testing of cuDNN 7, an excellent GPU-accelerated library of primitives for deep neural networks powered by NVIDIA.
Introduction
Definition of Test Mission
Test is the most vital part of our course, whose name is Software Quality Assurance. What should be known to every tester is the aim, btw the mission of your job. As far as we are concerned, the typical definition of test mission may be something along the following lines:
To help the software development and maintenance teams deliver software that meets or exceeds our customers’ and users’ expectations of quality.
We need to pay attention to one of the key words: “HELP”. Testing is an essential part of a broader strategy for quality, but it is only a part of the strategy and can never guarantee quality by itself. There are always something that must be considered such as software architecture.
General Test Missions
Then,Instead of the high-level one, what are the detailed missions of testing? Besides, after realizing the limitation, what are the realistic and achievable mission? For all the objectives may vary depending on your own idea and particular idea, typically we will see one or more of the following:
Find critical defects. Critical defects are those that would significantly compromise the customers’ or users’ perception that their expectations of quality had been met; that is, defects that could affect customer or user satisfaction. Finding defects also implies gathering the information needed by the people who will fix those defects prior to release. The person assigned to fix a defect can be a programmer (when the defect is in software), a business analyst (when the defect is in a requirements specification), a system architect (when the defect is in design), or some other technical or business stakeholder.
Find noncritical defects. While the main focus of testing should be on critical defects, there is also value in finding defects that are merely annoyances, inconveniences, or efficiency sappers. If not all noncritical defects are fixed, which is often the case, at least many of them can be known. With such defects known—especially if the test team can discover and document workarounds— technical support, customer support, system operators, or help desk staff can more effectively resolve production failures and reduce user frustrations.
Manage risks to the quality of the system. While testing cannot reduce the risk of quality problems to zero, anytime a test is run, the risk of remaining, undiscovered defects is reduced. If we select the tests that relate to the most critical quality risks, we can ensure that the maximum degree of quality risk management is achieved. If those tests are run in risk order, the greatest degree of risk reduction is achieved early in the test execution period. Such a risk-based testing strategy allows the project team to achieve a known and acceptable level of quality risk before the software is put into production.
Build confidence. Organizations, especially senior managers in organizations, don’t like surprises. At the conclusion of a software development or maintenance project, they want to be confident that the testing has been sufficient, the quality will satisfy customers and users, and the software is ready to release. While it cannot provide 100 percent surety, testing can produce, and test results reporting can deliver, important information that allows the team to have an accurate sense of how confident they should be.
Ensure alignment with other project stakeholders. Testing operates in the context of a larger development and maintenance project and must serve the needs of the project stakeholders. This means working collaboratively with those stakeholders to establish effective and efficient procedures and service-level agreements, especially for processes that involve hand-offs between two or more stakeholder teams. When work products are to be delivered to or from testing, then test managers must work with the relevant stakeholders to establish reasonable entry criteria and quality gates for those work products.
Application
This part, I will talk about how those test missions mentioned above can be applied to a particular field – the development of cuDNN. Due to the fact that I am either not a member of NVIDIA or an experienced tester of a company, what I will mentioned may be a little subjective.
Here is the official introduction to cuDNN:
“The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep Learning SDK.
Deep learning researchers and framework developers worldwide rely on cuDNN for high-performance GPU acceleration. It allows them to focus on training neural networks and developing software applications rather than spending time on low-level GPU performance tuning. cuDNN accelerates widely used deep learning frameworks, including Caffe2, MATLAB, Microsoft Cognitive Toolkit, TensorFlow, Theano, and PyTorch. ”
As we can see, cuDNN is aimed at GPU accelerating, particular targeted at accelerating deep neural networks such as CNN, RNN. Due to the fact that It’s very skillful to fine-tune neural networks, cuDNN is excellent at automatic fine-tune.
For all deep learning is a very computation-consuming method, TX2 is very excellent at large-scale computing. What’s more, the INT-8 neural network compression skill can be safely applied to TX2, which will speed up the inference of machine learning to a surprising stage.
Next, I will discuss the missions of testing both on general missions and field-particular missions.
The Particular Field General Missions
At the very beginning, I will explained the general missions of the a tester of cuDNN 7.
Find critical defects. As finding critical defects is the key point of testing, the test of cuDNN will undoubtedly not an exception.
Find non-critical defects. Whether there are some non-critical defects will influence the user-friendly design and the security and so on.
Manage risks to the quality of the system. By testing, whether the tester can decrease the potential risks of producing cuDNN to the minimum.
Build confidence. After testing, we should access the confidence of cuDNN concerning whether it’s rubust or compatible. Overall, whether it can pass the test and deliver to users.
Ensure alignment with other project stakeholders. The tester should guarantee that the cuDNN has satisfied all the requirements with other project stakeholders before delivery.
Extended Field-particular Test Missions
Quality of this software including compatibility, performance et al. As for compatibility, it mainly cares about weather it can be safely applied to different platform with different architecture such as Titan GPU, TX2, the fastest, most power-efficient embedded AI computing device. Besides, whether it can be backward compatible and upward compatible. As for the performance, whether cuDNN can accelerate deep neural networks compared to the performance without using cuDNN.
Minimize technical support costs. This mission is not only for developers but also for users. Whether the design and implementation of cuDNN has minimized the technical support costs as far as we know.
Conform to regulations. Test whether cuDNN is legal when applied to normal neural network computing, and whether it can be forbidden to conduct some illegal computing events by some methods.
Block premature product releases. If cuDNN can not accelerate deep neural network very well or it can not guarantee the safety when applied to the CUDA family, the tester should report it and block an premature product releases.
The interface is clear or not. As cuDNN is an library and it is very new, whether it has a clear interface really matters. If the team want to obtain more users, it it very essential for the tester to see if the interface of cuDNN is clear.
Conclusion
In this article, I mainly have a thoroughly discussed about the concepts and main components about test mission. Then based on cuDNN, a set of missions including general missions and field-specified missions have been illustrated.
After nearly finishing the article, I have had a clear principle of testing mission in some degree. By far, I’ve also obtained that the idea of testing is very vital over the life cycle of software development. I hope I can do better towards future software development.
References
- Defining Test Mission, Policy, and Metrics of Success of RBCS.
- Guide to NVIDIA cuDNN.
- Introduction of Jetson TX2 Module by NVIDIA created by NVIDIA developer.
- Test Mission: Definition, Components and Application
- Definition of Mission, Goal, Objective and Strategies
- Application Components
- Java Frameworks and Components: Accelerate Your Web Application Development
- MISSION AND VALUES
- IAC (Internet Application Components)
- Declare and Definition
- function declaration and definition
- declaration and definition ?
- Application Components(应用的构成)
- Components and Props
- MySQL Architecture and Components
- Presentational and Container Components
- Error:Application and test application id cannot be the same: both are 'com.xxxxxxx' for debugAndroi
- [Android]Error:Application and test application id cannot be the same: both are '' for debugAndroid
- IDE-DevExpress-JavaScript-JS Framework-Xml处理-Windows Media Player-Components And UI Application Block优秀文章、资料推荐
- LIAPP Frame Definition and Implementation
- Texture definition and its types
- ES6--const
- Java内存模式简介
- 375. Guess Number Higher or Lower II
- Leetcode 121 Best Time to Buy and Sell Stock
- 【java】 Dubbo访问有时候访问到,有时候访问不到问题
- Test Mission: Definition, Components and Application
- 修改项目的JDK和WEB版本
- Leetcode 389 Find the Difference
- java练习题2
- 卷积和傅立叶变换
- Leetcode 412 Fizz Buzz
- 正则表达式基本用法
- Redis
- 解密