热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidAppSDLC中的测试组件?

如何解决《AndroidAppSDLC中的测试组件?》经验,为你挑选了1个好方法。

"自动化测试是开发生命周期中不可或缺的一部分."

在Android app proejcts中,我们使用Retrofit和Content Provider/SQLite,dagger实现了MVP,Rx.每个Android应用程序将始终具有服务器通信,将数据存储在本地数据库中,复杂的ui如naviagtion抽屉和回收器视图等,以及难以导航的应用程序流程.

我们想要实现什么?

在我们将apk发送到客户端或在Play商店发布之前,每次都应测试几个测试用例?(20-30%自动化测试)

业务逻辑的测试用例列表,由于复杂的ui,导航流等原因无法自动测试(40-60%手动测试)

持续集成

基于上述,问题很少,

在汽车和手动测试什么,如何决定?

在自动化测试中,在MVP - Model-View-Presenter层中测试的位置?

什么样的通用业务逻辑应该自动测试移动应用程序 - 如注册,登录,忘记密码,更新配置文件等?

什么类型的测试应该为Android应用程序执行 - 单元测试,功能测试,集成测试,手动测试,性能测试,回归测试

使用哪个工具 - android测试支持库,espresso,uiautomator,Robotium,roboelectric,appium,selendroid,mockito,JUnit

(随意改进检查清单,因为我们不知道在Android移动应用程序的SDLC中测试模块的最佳实践.)最初在这里问.



1> Paul Bruce..:

您的问题的一些答案:

自动与手动:一旦设计/开发周期结束,自动化测试应该是发布之前代码交付的一部分.这里一个很好的触发器就是在故事发布之前在故事的定义中包含UI测试.对于Android,这可能就像一些涵盖新功能的Espresso测试一样简单.

MVP层测试 ...单元测试您的演示者和UI测试您的视图.这几乎涵盖了不起作用的模型中的任何内容,因为模型更改很少独立于这两个层完成.演示者中的高单位覆盖率有助于平衡编写的UI测试量.请参阅此文章以获得深入的教程.

业务逻辑:至少,用户为实现关键目标(即您的收入流,基本采用)而采取的关键路径上的所有任务.所以是的,这包括注册,登录和密码功能......但可能不会涵盖所有首选项/配置及其效果.

测试类型:每种类型测试应用程序的不同层/方面,因此请问自己"我应该关注的应用程序层中的哪些细节"?

unit用于基本代码验证,所以是的,总是如此.这只是那里的基本开发效率101.高代码覆盖率可帮助您及早发现错误.

集成:是的,并且取决于您的应用程序的复杂程度,但是测试具有/不具有依赖性的应用程序有助于在测试失败时隔离谁的错误.

功能测试(UI测试):是的,简单的交互或完整的工作流程,但它是关于用户如何使用您的应用程序.如果不经过一系列其他步骤,则无法测试应用程序的某些功能.再次,与实际使用和业务预期保持一致.将您的工作量映射到现实,使用指标,对收入的影响等.

表现:这很难,而且有不同的思想流派.我们看到的是,沿途的性能"检查"是必要的,但是完整的性能测试周期往往会阻碍开发,除非团队/组织中的成熟度和流程高度成熟.

回归:不要让回归到最后的巨大任务!通过您所做的更改得出的较小的回归集有助于减少在后期循环回归测试中捕获的缺陷数量.早期意味着更小,并且不要忘记我们正在处理非常分散的Android生态系统,因此需要在回归策略中包含多个设备/平台/条件!

工具:你几乎已经锁定了当前的工具链.对于Android UI测试,Espresso/Dagger/mockito是一个巨大的胜利.保持这些类型的测试小而集中.对于端到端测试,Appium仍然是你最好的朋友,但是有些东西甚至是它无法做到的(比如视觉验证和某些弹出窗口),你需要寻求超越它们才能实现自动化.

此外,虽然我完全理解你的陈述" 无论出于何种原因都无法自动测试",但我认为这是一个大红旗,细节很重要.汽车与手动的选择应该是关于如何实现速度目标的业务决策,而不是技术限制和不足.我一直听到客户的意见,直到他们意识到正确的技术使他们能够达到适合他们的自动化水平.

我今年协助了两项研究,我认为这将有助于这次对话:

    将质量扩展到构建周期

    在构建时提高应用程序质量

希望这一点和我上面的研究有助于你的工作.


推荐阅读
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 开发网站你需要知晓的部分专用术语
      越来越多的企业和个人都在拥有属于自己的网站门户,首当其冲的就是你得知晓几个网站方面的专业术语,先是中就有好多的客户不明白这些,造成误会是正常的,那不如我们对它有个大致的了解,这样就不容易感觉 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • 【SSH网上商城项目实战15】线程、定时器同步首页数据(类似于博客定期更新排名)...
    转自:https:blog.csdn.neteson_15articledetails51387378上一节我们做完了首页UI界面,但是有个问题 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • Whatisannotation?annotation的中文意思就是注解,注释的意思。注解也属于一种类型。它是在JavaSE5.0版本中开始引入的概念。它的形式跟接口很类似,不过前 ... [详细]
  • UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
    一、IPv4与IPv6的互操作性1.IPv4客户与IPv6服务器拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户。这是通过使用IPv4映射 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 这篇文章将为大家详细讲解有关C#开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C#开发技 ... [详细]
  • 一篇文章帮助您了解什么是云游戏以及它的优势和缺点
    云游戏是云计算的一个子类别。与电影和连续剧非常相似,游戏可以流式传输到用户的设备以播放内容。详细了解云游戏、其技术背景、优缺点以及市场上最好的云游戏提供商。相信随着技术的不断发展, ... [详细]
  • Smali代码注入
    以下的内容是对官方MIUIV4移植教程的补充,其中一些工具的使用就不在这里赘述,请大家参考官方教程。好的,话不多说,进入正题 ... [详细]
  • 先看看效果是不是自己想要的吧item及item内部控件点击事件不懂的可以先点击查看 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
author-avatar
似是故人来
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有