Microsoft normally writes automatic testing programs to test software, because manual testing is just too costly for such a big company. The job title is normally called SDE/T for Software Design Engineer in Test. SDE/T are involved in the design of software from initial specification. They are responsible for their test plan and write test programs, they opened bugs on developer's code and makes sure it's fixed, fixed properly and it will never reappear again. The SDE/T working for my area is very talented. He will dig very deeply into source code to find problems. There are large number of SDE/T at microsoft, the ratio to developer is almost 1:1.
> 问袁老大一个问题:
> 按你说的,测试员会在程序员的代码上dig very deeply,那么就编程水平上而言,
> 测试员是否更牛X?因为他必须考虑全面
I just said the SDE/T who works on my code digs very deep, not every SDE/T does that.
A good SDE (software design engineer) should be a good SDE/T, but a good SDE/T (software design engineer) normally can't be a good SDE. Here are the differences:
1) SDE is really responsible for the design and implementation of software, the translation from specification to detailed design, to real code. SDE/T is responsible for testing such code. SDE is like engineer designing and building a house, while SDE/T is a building inspector.
2) SDE is responsible for writing unit test for his code, SDE/T can normally follow those code example to write more complete testing programs.
3) SDE needs to know every detail of software, SDE/T only needs to know the external behaviour of the software.
4) Once a problem is found, it's SDE's responsibily to fix the problem.
5) SDE's code has to pass lots of tough tests, correctness, robustness, security, performance, ... SDE's code only needs to find bugs. The requirement for coding is totally different.