专栏作者:宝玉
专栏发布平台:极客时间
软件测试的主要工作是什么?只有搞清楚软件测试的工作,才能搞清楚这部分工作是否可以由开发来替代,是否需要专职测试。
从需求开始,在需求确定后要去对需求进行分析,然后做测试设计。
如果说架构设计是对业务需求在技术方面的抽象,那么测试设计更像是对业务需求的具象,把业务需求分解成一个个具体的用户操作步骤,也就是测试用例。
如果对软件测试的工作简单总结一下,就是发现 Bug,报告 Bug,跟踪 Bug。
软件测试怎么发现 Bug?
这里面最难的就是发现 Bug,尤其是如何尽早、尽可能全面地发现 Bug。
对于测试人员来说,重点是在检测,也就是会考虑所有可能的用户使用场景,正常的、异常的,甚至各种极端情况。
测试人员设计测试用例,就是要尽可能做到覆盖所有用户操作的可能,但理论上来说这是不可能的,因为组合是有无限多个的。
可以通过一些科学的方法来通过有限的测试用例,保证尽可能多的测试覆盖。
推荐阅读《微软的软件测试之道》,这本书上有很多具体的测试方法的详细介绍。
软件测试怎么报告 Bug?
在测试的过程中,如果测试人员发现了 Bug,就会通过 Bug 跟踪系统提交 Bug 给开发人员。
软件测试怎么跟踪 Bug?
Bug 的跟踪,并不仅仅是要跟踪开发人员什么时候修复了这个 Bug,通常还包括对 Bug 修复的验证。
回归测试是指修改了旧代码后重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。
为什么 Facebook 可以做到没有专职测试呢?
首先 Facebook 的工程师水平确实是高于业界平均水平的,有能力同时做好开发和部分测试工作
其次,Facebook 的产品周期相对宽松,可以有时间完成自动化测试代码;
Facebook 的发布和监控也比较完善,有问题能通过监控及时发现,并且可以随时快速回滚或者发布补丁;
最后就是用户对这类社交产品的 Bug 相对容忍度比较高,想想看如果是波音飞机上的软件能这么做吗?
大厂不设专职测试的启示
首先,用自动化测试代替重复性的手工测试是必然趋势。
其次,测试设计是软件测试人员的核心竞争力。
最后,开发人员和测试人员的更多融合是一种双赢。
简单来说软件测试的工作,就是发现 Bug,报告 Bug,跟踪 Bug。
公司是否需要专职测试,还是取决于公司的具体情况,例如是否有大量优秀的工程师可以同时兼任开发和测试,有大量的自动化测试代码覆盖,有强大的发布和监控系统,进度宽松,用户对 Bug 容忍度较高。