MQC功能测试大揭秘(1) - 从Android自动化测试谈起

简介: 维基上对自动化测试的定义简单来说,就是通过软件来替代人来执行测试用例,并得到测试结果的过程。当然,对于自动化测试来说,包含的范围十分大的,对于服务端接口与代码接口来说,通常采用非Ui自动化的测试方法,如:Unit Test、API Test等等;对于包含Ui元素的完整App、GUI程序来说,Ui自动化的测试方法有:mock、功能测试等等。

In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing. —— wikipedia

维基上对自动化测试的定义简单来说,就是通过软件来替代人来执行测试用例,并得到测试结果的过程。当然,对于自动化测试来说,包含的范围十分大的,对于服务端接口与代码接口来说,通常采用非Ui自动化的测试方法,如:Unit Test、API Test等等;对于包含Ui元素的完整App、GUI程序来说,Ui自动化的测试方法有:mock、功能测试等等。

对于安卓自动化测试来说,功能测试是最基本也是最常用的方案,那么功能测试到底能做什么?有什么优点?以及如何做好功能测试? MQC 团队推出系列文章,为大家讲解 Appium 技术干货以及 MQC 功能测试服务。
维基上对自动化测试的定义简单来说,就是通过软件来替代人来执行测试用例,并得到测试结果的过程。当然,对于自动化测试来说,包含的范围十分大的,对于服务端接口与代码接口来说,通常采用非Ui自动化的测试方法,如:Unit Test、API Test等等;对于包含Ui元素的完整App、GUI程序来说,Ui自动化的测试方法有:mock、功能测试等等。

功能测试如何帮助改善产品质量

对于大多数敏捷开发团队来说,要完成对一款大型产品各个方面进行全方面的测试是十分困难的。一方面,我们需要根据每次变更有针对性的测试重点模块,那么必然会遗漏对其它模块的测试;另一方面,很多模块的测试工作是机械性的,如回归测试、性能测试、机型适配等等,全部交给人工测试将大大增加人工成本。

功能测试可以将测试开发从繁琐的重复劳动中解放出来,把精力集中到重点模块,同时有余力设计编写完善的测试用例,并通过功能测试提高测试覆盖率,降低隐患。

功能测试的用例不是万能的

对于测试开发来说,追求100%的测试覆盖率是无可厚非的,但是事实上很多的测试工作是机器难以完成的,比如文字验证码识别。优先设计完成稳定模块的用例来保证今后功能不断回归的工作,之后再考虑时间成本、人力成本的前提下再去考虑更多复杂问题的用例设计。

另一方面,对于频繁发生变化的模块,用例也应当适应这种变化不停迭代,从而快速的在各个机型上进行功能验证。

功能测试无法发现新问题

我们在编写和调试用例的时候,或许能够发现一些功能性问题,而用例在进行回归后,发现问题的可能性就很低了。功能测试其实就是一个用例不断重复的过程,功能测试本身应当是一个“守护者”而非“探索者”,它可以帮助我们更加确定应用没有问题或者发现一些回归性的问题,而不是新问题。MQC 在探索问题的方向上自主研发了一款兼容性测试工具 Ripper,在达到高覆盖率的同时保证较高的 Bug 检出率,有兴趣的小伙伴欢迎试用 MQC 兼容性测试。

功能测试是需要成本的

我们通过功能测试用例来保证产品的质量,同时需要专业的工程师来保证用例的质量。设计开发一个合格的用例也是需要不断的调试、迭代与维护的,这就需要一个好的平台系统来帮助完成相关工作。MQC为开发者提供了完善的用例库管理功能,同时,为测试开发团队打造了专业的一站式测试协作平台,帮助团队进行应用管理、协同工作、任务分发、报告统计。

通过以上几点内容,相信大家对功能测试的概念已经有了一定的了解。MQC 在 Android 功能测试上选择使用了 Appium 测试框架,其开源社区较为活跃,兼容性好、功能丰富,相信能满足绝大部分功能测试的需求;在脚本开发方面,MQC 提供了在线真机录制、云端真机回放等多种服务,来帮助提高用例脚本的开发、调试效率;最后,平台提供了 App 用例管理、用例历史报告查看、编辑脚本、上传脚本等功能,帮助用户通过平台来完成功能测试的迭代维护需求。更多服务,欢迎来阿里云移动质量中心进行体验。

上文提到的移动测试产品详情,请见https://www.aliyun.com/product/mqc

目录
相关文章
|
9天前
|
Web App开发 机器学习/深度学习 测试技术
软件测试中的自动化策略:以Selenium为例
【8月更文挑战第31天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发的兴起,自动化测试成为提升效率和确保产品质量的关键手段。本文将介绍如何利用Selenium工具实现软件的自动化测试,从搭建环境到编写测试脚本,再到执行和分析结果,我们将一步步揭示自动化测试的全过程。文章旨在通过具体示例,帮助读者理解并运用自动化测试技术,提高测试工作的效率和效果。
|
2天前
|
机器学习/深度学习 敏捷开发 大数据
软件测试的演变之旅:从传统方法到自动化革命
在数字时代的浪潮下,软件测试作为保障产品质量的关键一环,经历了从手工测试到自动化测试的重大转变。本文将探讨这一演变背后的驱动力、所面临的挑战以及未来的发展趋势,为读者揭示软件测试领域的深层次变革。
|
3天前
|
监控 测试技术 项目管理
软件测试中的自动化策略:提升效率与准确性
【9月更文挑战第5天】在软件开发的海洋中,自动化测试犹如一艘高效精确的航船,引领着项目向着质量的彼岸。本文将从浅入深地探讨自动化测试的核心价值、实施步骤及常见问题,旨在为读者提供一套清晰的自动化测试实践指南。
|
6天前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
8天前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
32 4
|
9天前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
8天前
|
持续交付 C# 敏捷开发
“敏捷之道:揭秘WPF项目中的快速迭代与持续交付——从需求管理到自动化测试,打造高效开发流程的全方位指南”
【8月更文挑战第31天】敏捷开发是一种注重快速迭代和持续交付的软件开发方法,通过短周期开发提高产品质量并快速响应变化。本文通过问题解答形式,探讨在Windows Presentation Foundation(WPF)项目中应用敏捷开发的最佳实践,涵盖需求管理、版本控制、自动化测试及持续集成等方面,并通过具体示例代码展示其实施过程,帮助团队提升代码质量和开发效率。
19 0
|
8天前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
23 0
|
8天前
|
Web App开发 Java 测试技术
自动化测试的新篇章:使用Selenium WebDriver进行高效测试
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试犹如一艘航船,带领着质量保证团队驶向效率与精准的彼岸。本文将揭开Selenium WebDriver的神秘面纱,通过实际案例引导您掌握这一强大的自动化测试工具。我们将从Selenium WebDriver的基础概念出发,逐步深入到代码示例,最后探讨其在现实项目中的应用场景和优势,旨在为您的软件测试之旅提供清晰的指南。
|
8天前
|
测试技术 UED Python
探索软件测试的边界:自动化与手动测试的协同
【8月更文挑战第31天】 在追求效率和质量的软件生产中,自动化测试与手动测试的辩论从未停止。本文将通过实际案例,揭示二者如何相辅相成,共同构建更健壮的软件测试体系。我们将深入探讨自动化测试的优势、手动测试不可替代的角色以及它们如何在实际项目中协同工作,旨在为读者提供一种平衡的视角来看待软件测试的实践。