如何发现bug?
根据需求设计测试用例,尽可能覆盖所有用户操作的可能。除了基本的功能性测试,还需要进行非功能性的测试,包括性能、安全性和用户体验等。测试人员通过设计出完整的、有较高覆盖率的测试用例,逐一测试,这样就可以做到及时发现bug。
如何报告bug?
发现bug之后,通过bug跟踪系统跟开发人员创建Ticket,详细说明bug的内容,包括以下部分:
-
预期和实际效果
-
重现步骤
-
必要的截图、日志等辅助信息
如何跟踪bug?
除了报告bug让开发去修复,测试人员还应该针对bug的修复验证。通常就是我们常说的回归测试,避免开发者因为修复一个Bug,引入其他的问题。
关于一些大厂不设置专职测试的话题
比如Facebook、Google和Amazon这些公司之所以能够做到不设置专职测试,它们都有以下共同的特点:
-
大量优秀的工程师,可以同时兼任开发和测试;
-
有大量的自动化测试代码覆盖
-
强大的发布和监控系统
-
时间进度比较宽松
-
用户对Bug容忍较高
光是第一条,国内很多公司都达不到,我个人觉得人才是最重要的一环,能够写自动化测试代码并且保证覆盖的工程师本身就稀缺,还要依赖完备的发布和监控系统;从时间的调性,国内强调KPI,产品竞争激烈,时间会压得很紧,所以工程师首先压的就是测试的时间,更别说是写自动化测试了。
但从未来的趋势看,开发和测试更多的融合是一种常态,对工程师要求会越来越高;我认为完全不设置测试岗位不现实,类似一些功能性测试或许会从正式人力变成外包的形式,而正式人力会更多要求有开发能力去开发能提升测试效率的工具和搭建平台。
33 | 测试工具:为什么不应该通过QQ/微信/邮件报
Bug?
一个基本的Bug信息包括
-
标题;
-
描述(包括期望结果、实际结果和重现步骤等关键信息)
-
优先级;
-
指派人;
-
状态(New、Open、Rejected、Fixed等);
-
其他。
为什么不用QQ、邮件等方式处理Bug?
-
不易检索和跟踪
-
效率太低,开发人员容易被消息打断
-
不够直观,比如各种状态的统计
Bug跟踪系统的主要功能是用来跟踪Bug的,不是用来讨论和扯皮的。
一些自动化测试的趋势
-
国外的一些大厂,手工测试职位在减少,转变招聘能写自动化测试的软件测试人员
-
软件开发人员不仅要能写功能代码,还需要实现一定量的自动化测试代码
关于宝玉老师列的一些软件测试工具我就不重复贴了,感兴趣自己去订阅看看。
这节课从标题上就能知道有关安全的话题,软件中的安全问题来源主要分为以下三大类:
-
第一类:恶意输入(比如SQL注入、XSS攻击)
-
第二类:假冒身份(后台没有做权限控制)
-
第三类:数据泄露(账号密码明文记录,日志泄露)
如何应对安全问题?
-
需求阶段就明确要求安全需求,做出针对性预防措施;比如用户权限的,要求有身份的验证;敏感信息,对数据进行加密等
-
设计阶段,从架构层面增加安全方面的评审
-
攻击面最小化
-
权限最小化
-
纵深防御
-
开发阶段,保证良好的编码习惯和安全意识
-
编码规范中加入安全相关内容
-
要有代码审查
-
增加安全相关的自动化测试
-
测试阶段,增加安全性方面的测试
加安全方面的评审
-
攻击面最小化
-
权限最小化
-
纵深防御
-
开发阶段,保证良好的编码习惯和安全意识
-
编码规范中加入安全相关内容
-
要有代码审查
-
增加安全相关的自动化测试
-
测试阶段,增加安全性方面的测试