软件项目管理中需要不需要测试?答案是明确的,一定需要,开发者不运行自己开发的系统、应用,怎么会知道能运行成功和debug问题呢!
第二个问题,那需不需要有测试岗呢?具体情况具体分析,小公司或创业公司基于成本和管理成本,还有开发效率考虑,是不单独从开发中分离的,所有的测试工作都是开发人员自己搞定,这样沟通成本就没有了。但这就会导致系统或应用不能得到充分的验证,会忽略一些场景,比如说边界值,逆向测试等,所以,中大型软件公司都有独立的测试部门,而且一般都是测试驱动开发。测试发现问题,让开发者去修正,测试者也可以提系统的改进需求,开发实现之。测试部门有足够的资源去研究和设置测试场景,正确的,特别情景的,边界值,逆向的等,都会一一覆盖。测试根据系统的阶段和开发人员的修改,进行全功能测试,性能测试,回归测试,验收测试等。
自己对测试的理解是,测试的目的:是为了检验程序的正确,可靠,稳定,从而间接的保证程序具备这些属性,这里说间接是因为实现这些需要开发人员去做,测试可以驱动开发;测试的作用:可提高开发的效率和成本,比如开发写了一个很好的算法和处理逻辑,确定这块没问题,但却没注意到不经意间写错了一个基础命令行命令的名称,如果这样就提交发布了,用户会因为遇到该问题,认为程序不可靠,不稳定,对程序失去耐心和信心,从而导致客户的流失,损失收益。而这样的情况,做一个验收测试或回归测试,更或者是全功能测试,这会很容易就发现并快速的给开发解决好。
这些我个人工作中的最直接、最深的体会,当然,测试不仅限于这些作用和目的。