草庐IT

移动端测试

哈哈哈哈04 2023-03-28 原文

在当今竞争激烈的世界中,仅仅创建一个漂亮的应用程序是不够的——你的应用程序还应该在每个用户的设备上无缝运行,让他们爱上它。

为确保这一点,应从开发的早期阶段开始定期测试应用程序。移动测试允许团队评估应用程序的功能、可用性、稳定性、性能、安全性和 UI 等方面。

为了有效地测试您的应用程序,您首先需要制定策略并决定哪些应该手动测试,哪些可以自动化。在每次迭代后获得结果并结合反馈是产品成功的关键。



为什么你应该测试移动应用程序

 为最新的移动设备 测试和优化应用程序有助于提供更好的用户体验。这很简单——如果应用程序有故障或难以使用,人们不太可能使用它。

让我们看一些数字:

• 80% 的客户会删除或卸载不符合他们期望的应用。

• 50% 的人倾向于卸载占用设备太多空间的应用。

• 48% 的应用程序在运行缓慢时会卸载或放弃。

这就是为什么确保您的应用程序可以在各种设备和操作系统上顺利运行至关重要的原因。

截至 2019 年,全球有 9000 多种不同的移动设备,而且这个数字还在不断增长。到 2026 年,全球移动用户预计将达到 75 亿。具有竞争力的应用程序需要进行足够优化,以在当前和未来的所有目标设备上顺利运行。



常见的移动测试类型

移动应用测试人员的目标是在不同的环境和场景中发现尽可能多的缺陷。常见的移动测试类型 包括:

• 功能测试检查应用程序的功能(例如启动、登录等)是否正常工作。

• 中断测试检查应用程序在遇到意外中断时如何响应,例如来电、应用程序关闭等。

• 兼容性测试确保应用程序在不同的系统和设备上运行良好。

• 可用性测试检查应用程序的用户友好性和直观性。

• 性能测试检查应用程序在特定负载下的行为或执行情况。

• 安全测试确保用户个人数据的安全。



手动与自动测试

移动应用程序可以 手动 或 借助自动化进行测试。每种方法都有其优点和缺点。最好的测试策略使用两种方法的组合。

在手动测试中,QA 专家在没有任何软件工具帮助的情况下运行测试。手动测试非常耗时,并且不排除人为因素。这是最适合的选择:

• 探索性测试、可用性测试和临时测试,

• 无法通过自动化测试进行测试的设备兼容性和 UI 交互。

自动化测试使用软件工具。它允许您在更短的时间内运行更多测试,并且更准确但也更昂贵,因为它需要编程技能。自动化测试的主要缺点是它无法发现可用性缺陷。自动化测试最适合:

• 回归测试、重复执行和性能测试,

• 重复的任务,

• 性能测试,针对数千名用户测试应用程序的速度和性能。



跨设备测试

用户通过各种设备型号、操作系统、浏览器版本和屏幕尺寸访问互联网 。兼容性测试有助于确保您的应用程序在尽可能多的设备上都能正常工作和外观。

高效的兼容性测试不需要大量的设备。它只需要设备、操作系统和浏览器的正确组合,就可以实现广泛的覆盖。

从市场研究和分析开始。如果您的产品已经推出,请获取总访问量和特定设备流量的流量概览,以了解您的用户使用什么技术。如果您还不够了解您的用户,请了解在您的目标市场中流行什么



QA与用户测试

用户体验测试旨在改善使用产品的整体体验。UX 是无法自动衡量的方面之一——它需要手动完成。

UX 测试 可以由 真实用户或质量保证 (QA) 专业人员执行。选择取决于要测试的内容。

与真实用户进行测试可以帮助您了解他们的想法。例如,在实现新的应用功能时,用户测试可以确定用户是否喜欢或接受它。相比之下,由 QA 专家运行的可用性测试可以确定新功能是否正常运行。

用户测试甚至可以在开发之前开始。通过调查或访谈进行市场研究可以帮助激发您团队的想法并揭示最佳设计元素。

在开发的不同阶段测试原型,看看你是否走在正确的轨道上。越早发现可用性问题,就越容易解决。如果可能,请在您的应用或网站的每次主要迭代之后进行测试。



功能测试

功能测试旨在验证应用程序的每个功能是否完全按照预期工作。它测试应用程序中的用户流以及这些用户流中的每个功能。

用户会毫不犹豫地删除功能不完美的应用程序。100 名不满意的客户中只有 4 名直接向公司投诉——其他 96 名没有提供反馈就离开了。这就是为什么功能测试是移动测试中最重要的方面之一。

在功能测试期间,检查是否:

• 该应用程序安装并正确启动,

• 用户可以轻松注册并登录应用程序,

• 文本框、按钮、菜单和图标功能正常,

• 推送通知正确呈现并以正确的时间间隔出现,

• 所有交易或购买都是无缝进行的。



用户验收测试

用户验收测试,也称为 beta 测试或最终用户测试,是软件测试过程的最后阶段。这是发射前的最后和关键程序之一。

简而言之,用户验收测试 (UAT) 验证应用程序是否适用于实际用户。它涉及与目标受众一起测试软件以解决出现的任何问题。

UAT通常包括以下步骤:

1.建立确认软件正常工作的标准(系统要求和用户故事),

2.创建测试用例——用户验证软件是否运行良好的一组操作,

3.运行测试并记录结果,

4.完成有序的签字,客户或团队验证测试结果是否符合他们的标准。



尽早测试,经常测试

与后期相比,在早期阶段修复错误所需的时间和精力要少得多。这就是为什么在开发的早期阶段开始测试你的应用程序很重要  ——只要它足够稳定以进行测试。

一开始,考虑如何建立一个标准的测试程序——这可以节省你在实际开发和错误修复过程中的时间。硬件问题约占错误的 30%,因此在您的计划中包括硬件测试。

请记住,即使只有 10% 的代码更改,您仍然需要测试 100% 的功能。构建测试用例以在添加新功能时自动测试它们。作为一般规则,尽可能多地自动化测试通用事物(界面、图形、功能)——这将增加测试的深度和范围。

如果您正在开发创新应用程序,请考虑使用低代码开发平台。它们有助于节省开发时间和成本,并快速测试新想法。一旦证明成功,您的应用程序就可以从原型转向大规模生产。



在真实环境中测试

当公司的目标是发布在市场上大多数设备上流畅运行的应用程序时,他们更喜欢 在真实设备上进行测试

在真实设备上测试您的应用程序可以测试无法在模拟器和模拟器上评估的内容。这将确保您的应用在不同条件下的真实设备上顺利运行。

您可以在真实设备上测试您的应用的一些条件是:

• 不稳定的网络连接,

• 由短信、来电、警报和低电量警告引起的中断,

• 时区和 GPS 位置的差异,

• 声音和通知设置的变化。



纳入反馈

将反馈 与每一轮测试相结合,以做出有数据支持的决策。这将使您能够专注于对用户最重要的事情。

您可以通过以下几种方式将用户反馈纳入您的 QA 测试:

• 在主要的设计或开发周期之后询问用户关于体验的反馈。

• 尽早将消费者输入整合到设计和开发过程中。

• 为参与您项目的每个人创建报告错误和分享反馈的方法。

• 您倾听用户和整合反馈的能力决定了您的产品将有多成功。



以上内容为转载

有关移动端测试的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 多次弹出/移动 ruby​​ 数组 - 2

    我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby​​数组,我们在StackOverflow上找到一

  3. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  4. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  5. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  6. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  7. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  8. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  9. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  10. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

随机推荐