微软开发测试主要有三种角色:
· SDE: Software Design Engineer, 简称dev.
· SDE/T: Software Design Engineer in Test, 也写代码, 但是重点在测试。
· STE: Software Test Engineer.
对于如何更有效地开发互联网应用, 微软 很多团队都做过不少探索。 例如一些团队尝试把SDE 和 SDE/T 合成一体。 每个人都负责开发/测试/发布这一整套流程,根据我的观察, 有好处, 也有额外的成本。
结束
一位网友说得好: 分工是社会和行业进化的结果。开发和测试其实是软件工程的两分支。不同的软件/服务需要不同方式和程度的测试。独立专业的测试等同于第三方代表客户对产品认证。
拉拉扯扯这么多话, 团队/个人/角色到底应该怎么办呢? 我认为,
· 在初始阶段 (新项目, 团队进入一个新领域, 人员刚进入一个项目), 每个团队成员都要尽量打通各个环节, 多负责, 把所有事情都搞懂, 培养通才。
· 当项目/产业发展到一定阶段 (进入阵地战的时候), 要大力提倡分工合作, 培养专才。
· 把自己项目的架构和流程做好, 让所有人都能比较容易地进行 Quality Assurance 的工作。
· 培养“大家都要做QA, 专人负责量化的Test, 有条件多做测试自动化”的文化。
· 要明白自己项目的特点, 人员的特点, 产业的特点。 避免照搬别人的做法。不要听说某某伟大的系统的开发/测试比例是多少, 就哭着喊着也要同样的比例…
思考题:
分工之后, 每人负责一小块东西, 怎么能体现出个人的独特而巨大的价值呢? 例如, 你刚到一个出版社, 领导让你做 “二读” 这份工作; 或者你刚到一个软件公司, 领导让你做 "测试" 这份工作, 你怎么能展现出你独特的价值呢?
你在某团队做测试,兢兢业业已经三年, 今天大家传说公司认为开发人员应该做测试, 所以不需要专职的测试人员了。 你怎么想? 你能否做到:
明确列出过去三年你对团队的贡献? 除了“认真执行测试用例”之外, 你对团队整体的“质量保证”还有什么独特的贡献?
有理有据地说明, 没有专职测试人员, 项目会有什么风险?
这三年的经历在你的简历怎么写出来? 你比三年前更容易找到工作么?
这三点搞不清楚的, 还是改行吧。