草庐IT

软件测试---微信小程序测试点

LilGaage 2023-04-10 原文

一、小程序如何定位问题:
        前端,后端还是第三方组件的问题,可以依靠完备的日志(接口日志,前端日志)
二、 小程序测试点
        1. 权限测试:
                (1) 未授权登录小程序
                     ①未授权时,一般使用一些业务功能的时候,都会弹出提醒‘先授权再操作对应功能                         ②在提交数据到后台的时候,会提示补充相关身份信息才能提交
                (2) 已授权登录小程序
                      ①授权微信访问小程序,意味着自己的微信账号可被小程序管理方获取
                      ②自动以微信的身份行使业务操作权限,比如咨询、支付、数据查询等
                      ③所能查看的数据和操作的权限都应该是同步一致的 同一微信号在不同手机端登
                (3) 授权查看数据权限
                     同一微信号在不同的手机端登录查看数据的权限。是否需要重新授权--小程序在更换了设备登录后,需要进行重新授权
                (4) 授权定位、相机等服务
        2. 程序入口测试设计
                (1) 主页上搜索 --- 最上端 和微信发现页--小程序
                (2) 扫一扫
                (3) 消息中心
                (4) 卡卷包---个人中心的卡包里面
                (5) 别人分享的链接
                (6) 直接退出
                (7) 直接关闭

        3. 功能模块测试
                (1) 根据设计好的各个大类功能模块划分,然后再逐级细化,覆盖到每个功能尽可能全面的测试点
                (2) 用户上传文件,是否有文件格式和大小的限制

        4. 业务流程:
                (1) 小程序的业务,比如支付、播放
                (2) 把各个功能点串联起来生成完整的业务流程来检查
                (3) 同一个业务,可能有不同的路径来实现,每个路径都需要覆盖检查

        5. 数据方向:
                (1) 根据数据从某一端操作输入和输出流向,设计基于数据流的测试用例,输出的数据也可能成为另外一段的输入
                (2) 检查输入的数据是否按照代码逻辑执行正确的输出
                (3) 是否数据发生异常(无法输入、有输入却无任何输出、输出不正确,多余的输出其他信息)

        6. 同一功能不同入口:
                (1) 小程序中在首页、列表页、详细页、其他的业务功能相关页面,都有可能存在同一个功能的入口
                (2) 每一个入口路径都需要覆盖检查(如驾考宝典 VIP 功能;在首页有一个专门的入口;做题页面-课件视频引导购买)

        7. 交互性测试:
                (1) 交互的分类前台--前台,后台--后台,前台--后台
                (2) 前台从 A 页面提交的数据,可能在 B 页面查看到,也会在对应后台 C 页面查看记录
                (3) 后台 B 页面修改 or 添加的数据,对应到前台 A 页面产生交互变化,后台本身的不同页面之间可能存在同一个数据的输出值
                (4) 和微信的交互
                (5) 和对应的 app 或者是 web 的数据互通。

        8. 兼容性测试:
                (1) 手机的操作系统:Android 苹果 鸿蒙 ---对应的主流产品
                (2) 屏幕的兼容性
                (3) 横竖屏
                (4) 和不同微信版本的兼容
                (5) 小程序码的兼容性--目前小程序不支持直接分享朋友圈,只能分享微信好友。所以很多小程序都通过生成带有小程序码的图片,用户可以退出小程序将图片发布到朋友圈。既然把小程序码作为图片的一部分,就涉及到小程序码的位置,尺寸,还得不影响原有图片的美观,生成
的小程序码还需要是可识别的

        9. 交易功能测试
                (1) 小程序支持交易,那么它与微信的钱包、卡包都是可以交互的。
                (2) 如果有交易功能,需要验证各种交易场景。

        10. 异常测试:不同网络,断网恢复的情况,弱网

        11. 性能测试:白屏时间,首屏时间,资源占用,页面渲染时间,帧率

        12.UI测试:

                官方样式:

                        
                (1) 检查小程序的界面美观度、字体大小、字体格式、按钮布局--页面展示元素
                (2) 字体、图片、动态交互效果:字体(标签、标题、内容、动态播放字体)、图片(轮
播、背景、封面、触屏交互图)

         13. 网络切换:
                (1) WiFi→2、3、4、5G;
                (2) WiFi→无网;
                (3) 2、3、4、5G→WiFi;
                (4) 2、3、4、5G→无网;
                (5) 无网→WiFi;
                (6) 无网→2、3、4、5G

        14. 导航栏测试:定位到页面某个模块所在位置,回到顶部 or 底部,导航条的收展,导航标签的文字是否容易理解

        15. 功能入口
                (1) 重要且常用业务的功能入口,是否在比较显眼的位置,业务操作过程是否便于大多数用户使用和查看
                (2) 上下层级进入&返回:首页→列表页;列表页→详细页;首页→详细页;同步层级之间返回实现是否易操作
                (3) 操作是否过于繁琐

        16. 更新测试:新版小程序上线后,自动、强制更新

        17. 小程序规则测试:
                (1) 小程序的功能定义与实际提供的服务必须一致;小程序所提供的类目,必须放置在首页,最深也只能放置在二级页面
                (2) 小程序所提供的服务目前暂时不能涉及游戏、直播等服务(涉黄涉赌就不用多说了)内容也不能涉及测试类内容;比如:算命,抽签,星座运势等;
                (3) 小程序所提供的服务可以允许设置付费可见及隐藏可见-主要是付费交易在 iOS 审核过关难;
                (4) 小程序不能提供与微信现有功能相似的服务,如含朋友圈、漂流瓶等,也不能提供导航、排行榜、互推的服务;
                (5) 小程序一如既往的不支持诱导分享、诱导关注,虚假欺诈等内容,也不支持广告展示比例超过 50%的页面内容;
                (6) 小程序不得诱导、泄露、转让用户的任何数据。所有行为都必须经过用户授权或有明显提示
                (7) 一个小程序应用同时只能打开 5 个页面

三、注意事项

        1. 上线
                (1) 上线配置:内网测试、线上测试对应不同 url 接口;上线前,需要修改内网测试接口地址为正式环境使用的接口。同时还有一个配置参数的 转换设置也要关注到
                (2) 审核:将程序包提交给微信官方进行审核,工作日审核一般 0.5d-1d 之内可以搞定
                (3) 发布:微信官方审核通过后,即可发布小程序到正式环境中访问使用,通过手机微信端搜索对应小程序的名字即可搜索到

        2. 缓存清理
                微信 Web 开发者工具、手机端微信的缓存清理。
                使用场景:数据修改后检查修改的效果,程序修改代码后检查效果等情况,可清除缓存后再检查

        3. 编译
                更新测试版本时使用。小程序需要经过几轮的循环测试和修复,开发人员每次修复 Bug 完成之后会添加新的程序包给到测试人员,测试人员则需要通过微信 Web 开发者工具删除旧版本的项目程序,重新添加新版本的程序包,然后编译调试。

        4. 页面回退(页面路径最多只能十层)
                在这个保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页面。在官方文档中,有提示注意:目前页面路径最多只能十层。如果开发在这里处理不当,有可能出现超过十层回退,则会导致白屏,无法操作,导致必须重新打开小程序才能正常工作。

        5. 留意分享功能的权限:若某页面对游客访问有权限限制,则需要设置取消其分享功能

四、微信小程序测试与web APP测试的区别     

有关软件测试---微信小程序测试点的更多相关文章

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

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

  2. 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(在整个项目的根目录中),然后当

  3. 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?并散列所有无济于事。

  4. 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

  5. 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/

  6. 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

  7. 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

  8. 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

  9. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  10. ruby-on-rails - 如何调试 cucumber 测试? - 2

    我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element

随机推荐