• 关于 IOS 的 monkey 测试 at 2023年08月02日

    那就不清楚了,我这没有 xcode 14 + ios 13 这个组合。

  • 不是很确定,你可以试试?

    没有维护不代表不能用,我当时找 istanbul-middleware ,就已经有一段时间没维护了。

  • 因为实际落地没有提效,所以还需要加班。

    从你描述上看,就没太感觉到这些工具平台在你们团队的落地,有起到提效作用。可能你们耗时最长的部分,就不在你们现在花精力提效的部分。

    我目前接触到能起到提效效果的,基本都是先手工测试并且明显感受到有些地方比较重复繁琐,评估提效方案和预期能起到的提效效果,然后再落实提效的。没有前面的评估分析,只是单纯别人有我们也需要有,很可能最后起不到想要的效果。

  • Monkey 的操作间隔,以及执行量一般是个什么策略呢?

    操作间隔我们没有特别设定,反正上一个事件跑完下一个立马接上。至于执行量,这个由业务根据情况设定,一般至少跑 2 个小时。

    还有这两个,自动遍历型、随机时间型,大致是个什么意思呢?

    自动遍历型,指的是这个程序会识别界面内容,把可以打开的界面、可以点击的按钮全部点击一遍,把程序整体进行遍历。最典型是字节开源的 fastbot 。

    随机事件型,指的是不会理会当前程序界面情况,只是无脑把一些事先设定好的随机事件(如点击、长按、滑动等),按一定的比重直接应用到 app 中。最典型的是 android 自带的 monkey 工具。

    从时间线以及技术难度上说,最先出现的是随机事件型,然后实际使用会发现对于比较复杂、界面比较多的应用,一些操作路径比较多才能进入的界面经常进不去,而且很容易一直停在某个页面出不去,所以才会诞生自动遍历型,解决覆盖度低的问题。在很多云测平台上,也会把它叫做智能 monkey。

  • 基于人工智能的测试流程 at 2023年07月28日

    分享一些个人对于人工智能以及如何将其转换为实际落地的一些思考。本身这方面不算专业,仅供参考。大家有其他意见也欢迎交流分享。

    个人觉得目前接触到的人工智能从大类上,大致分为两类。一类是机器学习,另一类是今年开始火的大模型。

    • 机器学习

    基本上今年之前提到的智能化测试,都属于这类。核心逻辑是把问题转换为模型,然后用机器学习,让模型输出更准确。大致步骤:

    1、把输入转变为数据(或者叫提取特征),然后对数据进行清洗、打标,产生训练集和测试集。
    2、基于场景需要,寻找合适的机器学习模型,然后用训练集进行训练,用测试集检验效果
    3、最后放到实际业务里面使用,过程进一步循环 1、2,使模型输出更精准。

    详细步骤可参考:https://www.51cto.com/article/661538.html

    目前看到过的应用场景:精准用例推荐降噪、流量回放降噪、图像元素识别等。可以看看 MTSC 大会历年和 AI 或者智能化相关的议题看看。

    优势:已经发展很多年,比较成熟
    不足:对数据比较依赖,且基本只能用于特定场景,换个场景复用度比较低。所以中小厂一般很少做,只有大厂有足够的资源进行相关基础设施建设,以及有足够大的数据规模,才比较能做起来。

    • 大模型

    这个最典型的就是今年开始火热的 chatgpt ,或者也叫 AIGC 或者 LLM(Large Language Model)。相比机器学习类,因为 openai 直接提供了很方便的 api 调用接口,所以也相对来说比较容易落地。

    目前了解到或者接触到的应用场景:业务测试用例生成、自动化测试脚本生成、代码 review 意见生成进而辅助人工 review 等。建议可以看看这个文章,里面有其他人对于大模型赋能质量保障的一些想法和探索,讲得会比较全:https://testerhome.com/topics/37001

    由于通用模型的返回太通用,很多时候不一定可以准确匹配需要,据了解各个大厂都有在基于开源的大模型,结合自己的业务场景数据,训练适合自己的大模型,提高准确度。

    优势:模型强大,且外部有第三方直接调用 api 使用的模型,接入成本很低,可以快速尝试
    不足:使用通用模型的话,返回结果还不是特别靠谱,需要多次交互才能得到一个比较不错的回答。更适合作为参谋,辅助工作。

  • 把 yaml 这个依赖库重装试试?

  • 没看明白你的问题。。。

    另外,这类问题应该搜索引擎或者 chatgpt 可以找到一些相关答案吧,可以说说这些答案是哪些部分觉得不满足,希望有其他人给你更好的意见?

  • 建议不要只看未来,也看看自己的过去,从过去中分析自己,再做选择。

    工作了 3 年,可能对自己长期想做什么还没想清楚,但对于自己不想做什么、擅长做什么应该是有比较明显的感知了。可以总结下自己擅长什么,然后从擅长点出发去寻找合适的方向。比如擅长业务逻辑的梳理设计的话,可能相比测试,产品会更适合你。

  • "增删改查的用例" 这个信息有点模糊,不知道你具体指的是纯接口,还是包含前端界面?

    另外,不是很建议你一上来就做用例自动生成。一般需要先明确用例的模板以及变化点,才好做自动生成。而你现在自动化用例还没做起来的情况下,直接做用例自动生成,难度比你直接做自动化高不少。

    PS:你确认真的纯粹是数据库的增删改查,没有额外计算逻辑么?如果是,那这些功能前端以及后端都有自动代码生成工具或框架的,只要用这些工具生成。且测试确认过生成的代码靠谱,这些简单功能甚至可以直接免测。

  • 目前使用 monkey 在工作中发现的问题较少,大家是怎么使用的呢?

    我们发版流程会固定跑 monkey,而且是好几种类型的 Monkey(自动遍历型、随机时间型都会跑)。

    上线后出现的崩溃闪退问题,Monkey 也并未出现,但是查明原因后,特定场景可以通过手工方式触发,有什么办法能让 monkey 跑出类似异常呢

    这个没办法。monkey 本身主打的就是随机型动作,特定场景特定操作步骤的事情,不是 monkey 测试范畴要做的。通过跑 monkey,可以快速发现应用是否存在高崩溃率问题,但没法保障所有崩溃或者异常都能跑出来。

    要有效控制实际用户手上使用的崩溃率,一般需要通过崩溃监控平台 + 合适的灰度策略,逐步放量并通过监控平台查看整体崩溃率,如果过高就从 top 1 崩溃开始修复,直到崩溃率达到公司或行业标准。

  • 不想一直做重复没有意义的工作

    可以把自己目前最重复的工作,变成由机器自动完成,节省自己投入开始。自己的事情自己掌控度是最高的,而且做出来确实给自己省力,成就感也强。

  • 使用 mock ,和单接口、接口场景是相互独立的关系。单接口或者接口场景都可以使用/不使用 mock,取决于你的需要。

    单接口、接口场景主要是指用例测试内容。单接口是只关注一个接口,接口场景一般是关注多个接口。

    而 mock 则是通过直接固定外部系统的返回内容,解决涉及多系统交互时,外部系统难以控制,影响稳定性和场景丰富度问题。

  • MTSC 2023 深圳站议题征集 at 2023年07月25日

    都欢迎参加~

  • 信息有点少,而且也不清楚你现在个人能力情况和你自己的目标期望,很难说建议你选哪个。我按自己理解分别对两个做一些简要分析,你看看哪个适合你自己吧。

    创业公司 001 QA:高风险高收益,容易变成多面手和随着业务增长自己获得上升。比较适合你已经有很不错的技能和体系,想挑战一下从零到一。不过前期杂活估计会比较多,如果股权不多,没有太强的和公司同进退的想法的话,慎重选择。

    热门爆款项目专项大头兵:比较适合专注深入技术,可以获得一项比别人有优势的技能,不过上升机会可能相对少一些,要耐住性子出成绩。

  • 学习了,怪不得我的搜狗输入法是不是会抽疯。。。

  • Hmm,就一个 001 号 QA 的信息,不知道可以给啥建议😂

  • 这种代码分享有风险吧,毕竟一般都算公司财产,不能随便公开的。一般最多就公开整个平台大概啥样 + 部分关键代码,完整代码不大可能直接给到。

    如果想看完整代码,甚至直接搭建起来做二次开发,待建议上 github 或者在社区开源项目板块里找找。

  • 关于 IOS 的 monkey 测试 at 2023年07月24日

    https://github.com/bytedance/Fastbot_iOS/commit/cf58560f0439bb1be4759dbb031d1332d269e7b8

    你用的是最新版本的代码吗?这个问题官方 22 年年底已经修了呀

  • 没怎么用过 phpmyadmin ,不确定这个平台有没有定时备份数据库的功能。

    备份数据库命令不复杂,一个 mysql 命令行命令就可以 dump 出指定数据库的所有内容到 sql 文件了,然后你可以用操作系统自带定时任务,或者 jenkins 服务之类的来让它定时执行。这里面最核心的是数据库的连接地址、账号、密码。phpmyadmin 你能连上,我理解这三个信息你应该都知道了。

    具体命令你可以百度或者 google 一下,问一下 chatgpt 也可以。

  • 保持用例独立是可以做到的,把造数据和你用例核心要测的部分分开就可以了。

    首先要区分两个概念,你这里提到的其实是数据依赖,并不是用例依赖

    “2 模块需要依赖 1 模块主要流程执行成功” ,完整地说应该是 “2 模块需要依赖 1 模块主要流程执行成功后得到的数据” 。这里的数据可以通过实时调用 1 模块的主流程生成,也可以通过在数据库里捞取符合条件的数据,甚至通过定时任务提前造好数据,使用时直接获取。

    所以针对长流程的业务,完善的造数据,或者说测试数据管理能力非常重要。这不仅自动化用到,对于平时的业务测试也可以起到很明显的提效效果。你可以搜一下数据工厂、造数据平台、数据银行等关键字找一下相关资料。

    印象中之前陆金所也曾经在 MTSC 有分享过相关议题,你可以去看看。

  • 不知道你说的这个结合具体是怎么结合,不过看了下 testlink 一些官方文档,升级过程有提及数据库备份,所以应该是可行的。

    如果你不知道怎么弄,找个身边的开发或者运维和你一起看看?

  • 关于 IOS 的 monkey 测试 at 2023年07月21日

    你单独发一个贴,把你完整的启动过程和报错日志发一下吧。光靠现在的信息没法给到有效的意见。

  • 看你学习计划已经有比较丰富的安排了,不过偏通用技能多一些。

    建议你可以自己尝试整理下自己的简历,选一些公司投一下练练手,同时也在过程中调整优化下自己项目经验或者测试技能方面的内容。

  • 理解。那就先写着,主管问起就说自己想尝试一下咯。只要不影响你本职工作,我觉得你主管不会为难你的。

  • 建议你可以自己直接测试下?

    这里绑定的值,有可能是 input 标签的,也可能是 select 标签的,要深究得看 js 代码。建议你直接测试下,看哪个有效。