Opening remarks:
I have been doing tests for a long time and have been plagued by some problems. I have always been excited about Microsoft. One day I finally got close contact with Microsoft for testing, it doesn't feel as far away as we thought before, but hard to reach. So I sorted out what I think Microsoft is worth learning, hoping to help you.
1. Test Procedure
First, let's talk about the testing process. Microsoft's testing process is nothing new, just like most testing processes.
The test preparation is followed by the compilation of testcase, the white-box test (not necessarily available in each project), the functional test phase, the acceptance test, and the final release.
If you look at the process, it is similar to the General Company, there is nothing new. But I think there are two points worth learning from.
First, Microsoft's process is very serious.
We all know that the final quality of the test depends on the testing process and the quality of the testing personnel. To ensure the testing quality, either the process is perfect or the process is not good, however, my personal abilities are superb. If there is a good process, even if the execution is a little short, the final quality will not be worse. Therefore, the process is very important.
However, what companies in China lack is either no process, or the process is not implemented seriously. I think Microsoft's testers are all super cool people, but they are still honest and loyal to follow the process. I think this is very good. (This is also true for IBM. When I was working on a project in IBM, I found that their documents were carefully written and the process was very serious ), therefore, faithfully executing a good process is half of the success.
Second, in the entire process, Microsoft emphasizes early intervention in testing.
Microsoft unanimously advocates this. According to the bad habits of the IT industry in China, software subjects are generally almost formed. It is very bad to pull a few testers. Microsoft testers have been involved with developers since the beginning of the project, and have been involved in the demand phase for demand review. When developers start coding, testers start to write test cases, develop some test tools, or write some matching tests.Code(Not surprisingly, Microsoft testers can write good code ). Microsoft's philosophy is: it is better to prevent bugs than to solve bugs. Therefore, we strongly advocate early intervention in testing to eliminate some bugs in the demand stage.
2. automated process
When it comes to automation, you may think that I mean Microsoft has many automated testing tools. In fact, there are not many automated testing tools in Microsoft. Even if they are all developed internally, they are very practical, they will not use Mi tools.
The high degree of automation of Microsoft is mainly reflected in the process. For example, after the developer code check in, the system automatically sends an email, and the email content is a change list, this includes the code update list and comment added by a compiler. The content of this list is the bug ID that the function of this version has changed or been modified. Automation can be used throughout the testing process to minimize human errors and allow humans and machines to work in parallel. I personally think that this is worth the reference of our domestic testing companies. The automated processes are automated to reduce unnecessary communication.
3. Quality control mechanism
Quality control is a big problem, and the entire team and process should be improved. So what can Microsoft use for quality control? Is their mechanism. In Microsoft's testing process, in the early stages of development, all the problems in the project were discussed by Dev leader and PM (of course, we should also refer to the opinions of the demand side), but in the later stage, specifically, after the function test, the initiative of the project is on the test side. If a bug is to be solved, or the project progress control is to test the leader. This is different from most software companies in China. At Microsoft, testers are responsible for the final software quality, but they also have the right to constrain developers. Of course, they certainly have some bugs that are controversial. At this time, the arbitration mechanism is PM, which is not our traditional PM (project manager ), it is a kind of PM with Microsoft characteristics (the full name is program manager ). In this way, testers have a considerable say in handling controversial bugs.
4. Test Cases and Management
Microsoft's test cases are nothing special, but after reading their use cases, I still think that the writing is detailed and earnest, but it is not long enough. This requires a very advanced level. In addition, Microsoft uses test case management tools developed by Microsoft.
It is also worth noting that every use case of Microsoft is classified and the module where the function is located is clearly indicated.
5. Efficiency
In terms of efficiency, Microsoft's testing efficiency is very high! Gao is amazing. I asked a buddy who works at Microsoft, "What are the greatest features of your tests?" He said, "The greatest feature is fast !", Efficiency is very high. Specifically, feedback between testing and development is very fast during the later stage of testing. Developers modify a certain amount of bugs and submit a new version. Testers often report the test results within a very short period of time. Generally, they can run the test case quickly within one day, in this way, we can reduce the project delay caused by bugs found later. A common problem in many projects in China is that development solves the problem and brings in a new problem. The tester can only find the problem after traversing the test case, which consumes a lot of time.
But how can Microsoft achieve rapid feedback?
First, the testerProgramMicrosoft's testers are very familiar with the internal structure of the program. They are very clear about the problems that may occur when modifying a specific place and the test cases that need to be re-tested, the most likely cause for fast execution. If some modules are unfamiliar, they will communicate with developers about possible problems caused by this change.
Second, tools! Or tools. In Microsoft testing, testers use a variety of tools to help with testing. Increasing testing efficiency accounts for a large proportion.
Third, time consciousness. Microsoft testers have a strong sense of time.
6. Test Tools
Test Tools can greatly improve the test efficiency, which is clearly known as testers. Of course, the testing tool is also widely used in Microsoft testing, but please note that Microsoft does not use recording and playback tools such as LR or qtp just like our domestic companies, on the contrary, this kind of tool is not used much. Just like Microsoft's disdain for CMM, it may be that they do not want to bend their it boss's identity.
However, the biggest feature of Microsoft's testing tool is its practicality. The testing tools they use are all tools that can improve efficiency and do things. They are not very systematic tools like WR and qtp, but relatively small and flexible, practical gadgets (such as fiddler, drip, httpwatch, ie devtoolbar, paintnotnet, procexp etc .). Some testing tools are temporarily developed by testers with the assistance of developers according to the project requirements. However, most of them are shared by Microsoft, there are a lot of gadgets in Microsoft.
The general feeling is that it is not used for testing tools, but can be used to improve efficiency according to actual needs, in the use process, the efficiency is also greatly improved.
7. Professional Quality of testers
I was most impressed by Microsoft's tests with the professionalism of their testers. During the testing process, the testers were not inferior to developers in some technical aspects. In terms of bug handling, many reasonable and constructive suggestions can be put forward.
8. Microsoft white box testing
How does Microsoft perform the white box test? I was a little surprised that half of Microsoft's testers did not perform white-box tests unless some of them did not do black-box modules, and not all products did white-box tests.
Microsoft's white-box testing is generally conducted by dedicated white-box testers, but developers need to review the white-box testing code of testers. In addition, Microsoft also needs to review the developer's code, efficiency also has a set of detailed assessment mechanisms, so developers are also very responsible for their own code, are very serious to test.
9. Consciousness (time, quality)
In addition, Microsoft's testing also has a good idea that both time and quality are very strong. In terms of controlling the time cost, the awareness is very strong, which deserves our domestic colleagues to learn. In addition, the risk management mechanism and awareness are both very good. At Microsoft, every member of the project team was clearly informed that the project would lose a lot of million dollars every single day, so the entire project team had a good sense of time.
In addition, at Microsoft, project team members have a strong quality awareness. This awareness of how to better serve users, better user experience, and better improvement.
10. Microsoft Training
In Microsoft, there are few external training opportunities for employees, most of which are internal mutual training. Each person trains his own strengths and has a good habit of sharing with each other. In addition, Microsoft has a wide range of internal training documents. I will upload it to share it with you later.
11. Test Data Records
Microsoft's test data records are comprehensive and automatic. Every day, the system automatically counts the bugs of the day and sends a Report to the email address of each project team member. At the end of the test summary, the test data will become very useful.
Post-Compilation:
Prior to a thorough understanding of Microsoft's tests, the test of Microsoft's IT industry leader was a great worship, unattainable, and always felt mysterious, using a very good technique or a very advanced means. After in-depth understanding, I found that Microsoft's testing is the same thing as we do, except that people are more serious, more detailed, more practical, and more efficient. Looking back, what impressed me most about Microsoft's testing was process, efficiency, awareness, tools, and quality! That is, these items have become the urgent needs of domestic IT enterprises.