突然想起QA的一个职业口头禅:你这样做是不对的……当PD们激情四溢的乱冲乱撞时,有个严酷的QA/测试控制着,确实太有必要了,虽然经常吵架,:)
先分清两个概念,原来一直很土的以为QA和测试是一个概念,其实QA是质量控制,主要做流程管理(如需求跟踪流程、需求变更流程)、配置管理(版本管理,多分支开发的管理)、文档管理(如开发规范、UI规范)等东西,经典的CMM成熟度啥的说的就是这回事,不过这方面懂的不多,有兴趣可以去搜“测试的成熟度模型”,人月神话的blog里有谈到。测试本身就比较单纯了,说下我的理解。
从流程角度上讲,阿里的测试人员通常在UC评审的时候第一次介入项目,评审完成以后,开发开始编码的同时测试开始写TC(Test Case,一般依据需求/设计文档plus与PD/开发当面沟通),在编码快结束的时候正好写完TC,进行TC评审(相应功能的PD、开发一定要参加),评完以后进入测试执行阶段,之后再出报告,多轮回归。
从类型角度包括功能测试(又细分为单元测试、集成测试、系统测试),测试管理工具我们用的是Mercury的Quality Center;性能测试(主要看系统是否满足性能需求,期间会包含压力测试,考察系统可承受的最大压力)。
另外还有两个特别的,一是“验收测试”,一般在项目外包或者引入ISV(独立软件供应商)的时候会用到,是把系统有关的所有功能、性能概要的测一遍,外加检查项目交付物(项目阶段文档、用户手册等等)是否齐全符合规范。
二是“可用性测试”,是属于用户研究的范畴,做测试的人不是公司里的tester而是用户,微软称作UAT(用户可接受度测试),也是类似的东西,下次具体说。