应用程序很复杂的,比如实时通信功能,发生在几个组件之间。
数据库、API、服务器甚至硬件设备一起工作,提供无缝的用户体验。
对于自己负责的,已经上线的产品,测试人员已经知道了,历史上重要的特性,以及测试工作的重点。
但是,如果我们要接手一个没有太多文档和历史数据的全新应用程序,我们如何开展测试呢?
这五个技巧在这种情况下会有所帮助。
1、从你知道的事情开始
在开发一个新的应用程序之前,相关的人员(开发、产品、测试、设计等)已经对产品的功能,有了一个大致的了解。
在进行设计测试方案前,可以和产品的相关者沟通,尽可能多地收集产品的相关信息。
我们可以从开发人员、运营人员和设计人员那,收集到不同的观点。所有这些信息,可以帮助我们理解应用程序的功能、要测试的关键模块,以及完成测试和发布产品的时间表。
尽可能多的,收集任何文档或资源,帮助设计测试过程。
2、做竞品调研
了解新开发的应用的一个好方法,是做竞品调研。
例如,假设我们开发一个旅行App。我们可以参考其他App,比如携程、飞猪等,看看应用间的区别。
我们可以观察一下,这些应用程序的性能参数,比如内存、CPU、流量、电量等。
旅行App,使用流程上有哪些不同,都有哪些不同的模块,以及用户从开始到结束,可以操作的关键路径。记录这些观察结果,并将其作为测试的指南。
3、采用敏捷的方法
如果我们的公司决定遵循一个敏捷的过程,比如Scrum、XP或者看板,那么测试人员,应该知道基于user story应该测试什么。
每个迭代都有一组user story,必须在设定的时间内开发和测试。
要测试的特性可以从user story中发现,story的操作顺序,有助于确定测试工作的优先级。
4、尝试各种测试方法
有几种测试方法,可以帮助学习应用程序和确定要测试模块的优先级。
新应用程序的两种有用方法是基于会话的探索性测试和基于风险的测试。
1)基于会话的探索性测试
重点是在一定时间内,集中测试特定的模块。
选择程序的某一个模块,集中的进行随机测试,将焦点放在固定的某一个功能,或者某几个功能,更有助于发现问题。
2)基于风险的测试
基于风险的测试,有助于确保重点更多地放在高影响和关键领域。
例如,假设我们正在测试两个user story。
Story A是为了实现一个新的视频播放器来播放流媒体电影,而storyB是为了确保与视频播放器相关的帮助文档,在被点击时在一个单独的浏览器tab中打开。
如果story A不像预期的那样成功,它将对客户和业务产生巨大影响。如果story B不像预期的那样工作,尽管它仍然会是一个问题,但是很可能客户甚至不会注意到,业务也不会受到影响。
在这种情况下,如果我们有两天时间来测试以上的story,花一天时间在每个story上是没有意义的。相反,我们应该花一天半的时间在story A上,因为它是高风险的,花半天或更少的时间在story B上。
这就是基于风险的测试有所帮助的地方:通过确保测试人员对高风险模块给予适当的关注和努力。
为了确定哪些模块风险更大,团队将进行正式的风险分析。这通常包括识别与模块相关的不同风险,并为它们分配不同的业务和技术分数。合计风险分数有助于确定测试工作的优先级。
5、依靠过去的经验
通过测试以前的应用程序,我们已经积累了大量的经验和领域知识。
当测试一个全新的应用程序时,我们可以应用这些知识来猜测一些可能的漏洞。
根据应用程序的不同,我们可能会立即开始寻找前端JavaScript错误、与联系人表单中的自动跳转相关的问题,或者在网页版和移动版之间可能出现的常见问题。
如果我们的任务,是测试一个全新的应用程序,却没有太多关于产品的文档或信息,不要感到失落。上述策略可以帮助任何人开始进行集中测试并进行更多探索。