上一周我给大家总结分享了软件工程之美当中的开发编码篇,这周会继续分享软件测试篇中的内容:
首先这个问题软件测试要为产品质量负责,但并不代表软件测试要担所有的责任,因为在软件工程当中,我们包含多个环节,比如:
每个环节都可能导致质量问题,而测试只是负责最后验收,它不能确保软件完全不出问题。
我们常说是软件产品质量是什么?
以上的定义相关影响,共同决定软件的质量。
谁该为产品质量负责?
不同的角色应该承担不同的责任:
最理想状态:人人都为产品质量负责。
软件测试的主要工作
如何发现bug?
根据需求设计测试用例,尽可能覆盖所有用户操作的可能。除了基本的功能性测试,还需要进行非功能性的测试,包括性能、安全性和用户体验等。测试人员通过设计出完整的、有较高覆盖率的测试用例,逐一测试,这样就可以做到及时发现bug。
如何报告bug?
发现bug之后,通过bug跟踪系统跟开发人员创建Ticket,详细说明bug的内容,包括以下部分:
如何跟踪bug?
除了报告bug让开发去修复,测试人员还应该针对bug的修复验证。通常就是我们常说的回归测试,避免开发者因为修复一个Bug,引入其他的问题。
关于一些大厂不设置专职测试的话题
比如Facebook、Google和Amazon这些公司之所以能够做到不设置专职测试,它们都有以下共同的特点:
光是第一条,国内很多公司都达不到,我个人觉得人才是最重要的一环,能够写自动化测试代码并且保证覆盖的工程师本身就稀缺,还要依赖完备的发布和监控系统;从时间的调性,国内强调KPI,产品竞争激烈,时间会压得很紧,所以工程师首先压的就是测试的时间,更别说是写自动化测试了。
但从未来的趋势看,开发和测试更多的融合是一种常态,对工程师要求会越来越高;我认为完全不设置测试岗位不显示,类似一些功能性测试或许会从正式人力变成外包的形式,而正式人力会更多要求有开发能力去开发能提升测试效率的工具和搭建平台。
一个基本的Bug信息包括
为什么不用QQ、邮件等方式处理Bug?
Bug跟踪系统的主要功能是用来跟踪Bug的,不是用来讨论和扯皮的。
一些自动化测试的趋势
关于宝玉老师列的一些软件测试工具我就不重复贴了,感兴趣自己去订阅看看。
这节课从标题上就能知道有关安全的话题,软件中的安全问题来源主要分为以下三大类:
如何应对安全问题?
出现安全问题怎么办?
这周主要的学习内容是软件测试相关的,测试虽然是软件工程中一个环节,但也是非常重要的环节,它是保证产品质量的一道关卡,需要为产品最后验收的质量负责,帮助产品发现更多的bug。以前我们常常把开发和测试独立划分开,但随着研发模式进化,测试也逐渐成为开发人员也需要兼顾的角色,通过自动化测试的手段来减少手工测试,提升研发效率。这也给我们带来一些启示,未来测试的角色的工作会有所变化,开发的边界也不再局限于写代码这个角色,能够给产品带来效能的改进,就不应该设置边界。人人都应该为产品质量负责,人人都是产品经理。