事前:对于什么被视为非测试,似乎存在很多困惑。当然,每个开发人员都需要在创建代码时对其代码进行测试,并需要验证其是否有效。在他/她认为测试已经完成并且足够好之前,他/他无法将其交给测试人员。但是开发人员并没有看到一切。他们可能无法识别错误。这些错误只有在进行全面测试后才能在开发周期的后期发现。问题是开发人员是否应该进行这种测试,以我的拙见,这需要从项目经理的角度来考虑:
开发人员可以成为测试人员,但他们不应该成为测试人员。开发人员倾向于无意/无意识地避免以可能破坏应用程序的方式使用该应用程序。那是因为他们编写了它,并且主要以应使用的方式对其进行了测试。
另一方面,优秀的测试人员会尝试折磨该应用程序。他/她的主要意图是打破它。他们经常以开发人员无法想象的方式使用该应用程序。他们比开发人员更接近用户,并且通常使用不同的方法来测试工作流。
另外,使用开发人员作为测试人员会增加开发成本,并且与拥有专用测试人员一样,并不会为产品质量带来任何好处。当我可以用便宜的测试仪更好地完成作品时,我不会让开发人员进行交叉测试。仅当开发人员和测试人员之间的反馈循环变得过于昂贵时,我才会让开发人员对彼此的代码进行交叉测试,但是根据我的经验,这种情况很少发生,并且高度依赖于过程。
这并不意味着开发人员应该草率地将一切留给测试人员。在将软件交给测试人员之前,应通过单元测试来备份软件,并应将技术错误降至最低。不过,有时您可以在此处进行修复,解决在那里的问题或其他开发人员无法预见的错误,这没关系。另外,集成测试应主要由开发人员完成。测试人员的主要目的是验证是否满足要求。
在如此小的团队中(并且还取决于应用程序的大小),我还可以看到测试人员处于混合角色,编写单元测试和UI测试。你绝对应该雇用一个。
但是比测试仪更重要的是定期冻结/分支。不要提供任何未经适当测试的东西。添加功能或更改某些功能后,必须再次验证其周围的所有内容。如果您的公司没有声誉,您将只会获得不良声誉。不要释放不稳定的东西。当客户希望在某个日期之前拥有该软件时,请停止足够的早期开发并适当地测试它,以便您有足够的时间来修复错误。通常,拒绝最后一刻的功能请求总比没有很好地实施它们或在没有经过适当测试的情况下发布更好。