移动端APP 如何进行自动化和探索性测试?

在测试设计时最主要依据的就是测试金字塔的测试结构。如果在项目临近发布才开始测试并发现缺陷,这样修复缺陷的成本就会很高,项目的进度也会很不确定。所以,就开发阶段来说,如果把测试分层,在不同的开发阶段都进行测试,能很大程度上缓解这些问题。

测试分层的优势有以下几点:

  • 测试的成本

单元测试的开发成本要远低于用户界面测试,如果在用户界面的测试中发现缺陷,修复缺陷的成本也是远高于通过单元测试和组件测试的成本。

这里的成本不单纯是开发人员修复缺陷所需要的资源和时间,还包括缺陷修复后测试人员进行回归测试所需要的资源和时间,以及项目延期等其他项目成本。

  • 测试的效率

单元测试能很快地验证很小的功能或者方法,且运行时间短,反馈更为及时。

  • 缺陷定位的难易

单元测试失败后,测试人员能够很容易知道是被测试的特定功能或者方法不正确;而如果是用户界面的缺陷,测试人员就需要花费更多的时间来进行排查,确定出现问题的功能模块,最后再进一步发现需要修复的功能和方法。

  • 反映真实的业务需求

单元测试无法从全局观的角度了解系统模块之间的交互,也无法通过方法的组合帮助用户完成业务目的;而由于用户界面的测试描述的是从用户角度出发的用户使用场景,因此可以更容易地阐述用户的行为和业务需求。

  • 更加接近业务

用户界面测试描述测试的层级更高,所以更接近业务;单元测试描述测试的层级更具体,所以更接近于实现。

从测试金字塔分层来看,不同层级的测试都很有必要,而我们也需要根据不同测试所处的层级及其特点来设计测试。

另外,实际测试设计时采用的测试金字塔具有更多更细节的分层。高层级的测试和低级别的测试相比,抽象程度更高,测试运行的时间更长,与更多的系统和模块有交互。反馈的周期更长,接近缺陷的成本也更高。

单元和组件测试的测试驱动开发TDD的基本循环步骤是:

  • 测试失败

  • 测试通过

  • 重构

由于测试驱动开发是针对单元和组件测试所使用的开发技术,所以在进行单元和组件测试时,测试人员只需要了解并评审开发人员在单元和组件测试中覆盖了哪些场景,并不需要完成其实现。

在测试金字塔的最高层级,是对于App的"探索性测试"。

1.探索性测试是针对于脚本测试提出的,但是两者并不是针锋相对的,而是相辅相成的。探索性测试,脚本测试和自动化测试之间可以相互转化,相辅相成。

2.探索性测试要求测试人员在执行测试时,如同用户旅程一样,首先设定好测试目标,然后规划出一段时间,使用启发式测试策略模型,通过测试人员的创造性思维,采取不同的测试路径,来达到测试目标的测试方法。

3,在探索性测试执行中,为了提高探索性测试的效率,并且能够重现所发现的问题,可以采用基于测程的测试管理。在App测试中也可以使用SBTM技巧进行探索性测试。

4,针对App测试,测试人员需要测试在低层级测试中不能覆盖的对于页面跳转和不同页面间数据流动和展示等需要涉及到多个页面的流程操作。

5,当进行App的探索性测试时,选择在真实设备上运行可以提高测试的真实性和加深对于用户使用场景的理解,从而不断促进探索性测试的发展和深入。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关推荐
好喜欢吃红柚子2 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
wk灬丨4 分钟前
Android Kotlin Flow 冷流 热流
android·kotlin·flow
千雅爸爸5 分钟前
Android MVVM demo(使用DataBinding,LiveData,Fresco,RecyclerView,Room,ViewModel 完成)
android
小馒头学python6 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯16 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
千天夜27 分钟前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
测试界的酸菜鱼31 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~35 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
晨曦_子画40 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
孤客网络科技工作室1 小时前
AJAX 全面教程:从基础到高级
android·ajax·okhttp