不知道你这个 nid 是怎么来的,但从截图里的值看,末尾的那个 6 位数字应该是内存地址的 hash 值,这个值不要说换设备,重启 app 都会变(只要重新 new 对象,内存地址就会变),所以不可能用来做控件定位。
然后你没有提你这里到底测试的,是自家 app 还是第三方的。如果是自家的,android 本身就提供给了 accessibility id 这个属性值供自动化专用(应该对应你截图里的 desc 属性值),和你的自定义 id 是一样的作用。如果是第三方的,个人想到的招只有先逐个适配,再找共通点尽量简化代码。参照 airtest 通过图像识别找控件也是一种方式,appium 也支持的。
同样你也没提到你的用途是做什么,如果是用于自动遍历,android 的返回完全可以直接用返回键,压根不用找控件。而其它控件,只要找到可点击的都去点一下,也可以满足?
我一般考的是某个核心接口背后的处理逻辑,比较期望的是看到用时序图来表达,用户的输入在各个模块之间具体是怎么处理和流转的。大部分情况下,时序图可以比较清晰表达各个模块/服务是怎么串起来完成完整业务逻辑的。如果发现本身被面试者没 get 到时序图这个,我会明确提一下建议用 uml 时序图。但如果明确说了时序图还是不知道怎么画,那就不强求用时序图了,能说到我能听明白也成,只是实际上大部分不会画时序图的,也很难给我讲明白逻辑。
不过楼主说的是 数据流程、数据流向 ,这个我就不大清楚了,比较少弄这个,但我估计应该也有对应的专业图类型的。个人经验,这种面试题,主要考察被面试者对自己测试系统背后逻辑的梳理归纳能力和经验,梳理归纳比较多的,一般也会需要用上相关的图便于清晰表述,因此也应该知道相关的图怎么画的,只是实际面试看,日常会做这种归纳的确实很少。
先问下开发这个下拉框用的啥控件实现的?然后完整的下拉框下拉/非下拉状态对应的截图、xml 控件树都发上来?如果下拉和非下拉有差异,那基本上差异点应该就是你那个下拉框控件带来的了。
你现在提供的信息只足够说明有什么问题,提给手里有源码、可以调试应用获取更丰富信息的开发或者同团队测试专家是足够的。但对于我们这些对你的应用一无所知的外部同学,这些信息不足够定位和解决问题。
目前看有支持,但还在 beta 版本:
https://appium.io/docs/en/drivers/mac/
你可以试试?
是不是可以先列举下你们有什么课题可以分享的?以及你们对于这次分享,除了让这些同学听懂外,还有什么额外的目的么(比如期望推动大家 “质量不只是测试的事情” 这类思想上的转变)
这么问很难给到合适的建议,毕竟每个人能分享的课题都不一样。而要让大家看懂,关键不是课题本身,而是讲述者的水平。只有真正掌握到位,才能把一个内容讲得通俗易懂。
对楼主说的这个现象,特别是现象 2,我只能想到研发是不同分辨率、不同设备用了不同的布局代码,但这个我觉得可能想很小(但凡对兼容多设备的布局有一些了解,都不会用这种维护成本这么高的方案),所以可以先去找研发沟通了解下,他们是怎么去做不同设备、不同分辨率下的布局兼容的?
另外,也希望楼主可以提供更多的信息,比如界面截图及布局信息之类的,这里信息脱敏太厉害,有点没看懂。
需求不够全面吧,只有价格区间一个要求,电商网站按价格筛选就可以了,没必要问,所以应该背后还有隐藏需求。
楼主可以说下你电脑的主要用途(越具体越好,比如 android 开发,比单纯 写代码 要具体),和比较看重的一些指标(如续航、性能等)?
很清晰的问题分析和技术方案选型说明你。好奇问下,最终选择了哪个方案?
听楼主的说明,本质问题是 “改动点的影响开发也不是能评估到” ,即代码质量失控。本质问题不解决,你能做的只是把兜底做得更完善(比如用更多的回归用例兜底,最多加点自动化减少下人力成本),没办法真正减少工作量,而且也只会越做越累。
这类问题背后有可能是因为开发新接手不熟悉,也可能是本身架构设计不好太多共用,牵一发动全身。个人想到的几个解决方向,大方向还是测试要提高代码能力,倒逼和补充开发这个地方的短板:
1、联合开发做好 bad case 收集学习。正文里提到的这些曾经遗漏到线上的问题,都进行复盘,明确直接原因(代码改动点)和根本原因(为何会产生预期外影响但开发 + 测试都评估不到),以及制定落实优化措施(代码本身耦合度高的,提技术优化任务,进行重构优化;新人不清楚的,代码里补充好注释和写好项目代码介绍文档),持续提高这些容易出问题地方的代码质量。
2、经常出问题的部分项目,要求开干前做技术方案设计,测试参与到方案评审中。通过这个来倒逼开发做好设计方案,和评估好此方案的影响范围,思考好再开始写代码,降低风险。这个要去争取开发 leader 的支持,一般他参与评审,开发才会更认真进行设计,而且他把关质量才有保障。
3、提高自己的代码能力,去 review 开发代码,做到每一行改动都明确是在干嘛,和本次需求是否有直接关系,是否有连带影响其它位置。
压测礼包折扣挺吸引,但没找着对应的专栏文章呀,是还没发布?
不知道你这个安全测试的目的是啥,可以先说明下?这样才好划定范围给建议。安全的范畴很大的。
大部分专业的 web 端安全测试,大多是在做渗透测试,这块要求的技能比较多,一般得专业安全测试工程师才能做得来。测试工程师一般能做的,也就只是针对最常见的漏洞进行挖掘和测试,以及用一些第三方的安全扫描工具扫描下。比如 https://www.cnblogs.com/fundebug/p/details-about-6-web-security.html 里面提到的各种常见漏洞。
以前安全还有个 OWASP 组织,定期采集高危安全漏洞,并出一些报告和安全标准的,好像最近几年没怎么见到新消息。官网倒是有些可以参考的资料 http://www.owasp.org.cn/OWASP-CHINA/owasp-project/
你这个不像是 UI 自动化测试的需求,更像是爬虫。遍历所有数据,并根据条件做不同的操作。
既然目的是遍历数据做操作,建议可以考虑换用爬虫的方式,从接口来抓取数据?效率更高、更稳定。
基本都是从抄别人框架开始的做起的。看得多、用得多了,慢慢就熟练起来了。
没太明白,你具体是要做什么?
你图里看起来有文字型控件,基于这类控件的 text 属性来定位是否可以满足?
没有例子,看不懂这个题目描述。。。
看了下,好像主要是识别文字的,和大厂们分享的可以识别控件并生成控件树的还是有点不大一样。
具体报啥错?
截屏和查找界面元素是完全没关系的,截屏是获取帧数据,查找界面元素获取的是控件树,两个完全是两码事。而且根据一个 uiautomatorviewer 的报错就说 “禁止截屏” ,这个结论是不是下得有点不够严谨?
这问法很常见,就是最常见的行为面试法问的问题。现场记不起来就提前准备好示例,背好吧。
你们用的什么 OCR 框架做控件定位,可以分享下么?
类似 airtest 这种图像识别的,分辨率变了或者有些图标变了很容易直接 gg 。而那种直接根据一个图生成一个控件树的,可以自由定位的,只在各家大厂 ppt 看过,实际可用框架暂时没见过,不确定具体的效果。
PS:OCR(Optical Character Recognition)我理解是特指文字字符识别的,控件等图像特征识别叫这个好像不大准确?
原因和解决方案,可以发上来分享下?
握个手,点个赞。确实年龄大了有家庭,不再有那么多时间 “晚上求发展” 了。但也不需要直接躺平,只是要选性价比更高的学习方式而已。比如工作里面多做总结沉淀、多向身边人交流学习、上班路上听听书、偶尔参加下沙龙大会充充电,也是一种 “求发展”
你的期望是跳过这些已删除的回答吗?还是什么?
如果是跳过,那现在程序的行为和你的期望不一致,属于不正常。那你改下代码,在采集逻辑里根据答案是否被删除状态,剔除掉删除状态的回答就好了。哪个字段代表删除,你需要自己找下、验证下。
另外,你的日志加一些描述信息吧,像截图里面那样的纯数字,完全看不懂对应意义,你就算用红框框住还是看不懂的,所以没法基于你这个信息给建议。
举个例子:
459 [xxx,xxx]
改为
回答抓取完毕,共计抓取到 459 个回答。对应id为:[xxx,xxx]
不用羡慕,你可以对比看看能自动生成的 case 和你自己设计的差异。
新接口的自动生成 case(特指有效的用例,那些单纯各个参数为空、为数字、为字母之类的用例,个人觉得意义不大),目前还没见到能达到接近人设计的水平的用例。
倒是建议可以搞流量录制回放,这个比较多公司在做,且也有开源的平台了,之前问过,roi 还是比较高的。
提个小建议,对于如何开发一个小工具可以单独放另一篇文章?前半部分的经历已经可以独立成文了。
现在 “如何开发一个小工具” 这部分讲得有点简单,有点像 我要做 xx,只需要写 xx+xx 就可以了 ,只讲了 what ,没有讲 why ,对于真正的新手会很难记住。更建议是先讲一下这个开发框架的整体架构分层,然后说要实现的功能是什么,在这个架构分层下对应怎么拆,最后才是拆完后每个分层的具体实现。
个人觉得,对于开发过程来说,代码只是最后的运行产物,中间的逻辑设计才是精华呀。