• 删除 at 2022年07月02日

    最近各个大厂都在缩减 hc,行情比较有关系

  • 迟来的总结与回顾 at 2022年03月23日

    飞哥文章写的很棒,期待飞哥的书

  • pytest 怎么异步执行用例呢 at 2022年01月26日

    你要的是分布式执行吧,异步的概念简单来讲是不立马等待响应结果。我的理解如果用例 (function) 异步了的话,pytest 会认为这个用例执行完了,后置 hook 应该会被立马触发

  • 测试开发个人发展疑惑 at 2022年01月14日

    个人理解这里 其实是对 QE(流程质量技术)和 QA(测试质量技术)两个职责的实践。
    先说下这几年我的感受,这几年测试行业很卷,因为在软件流程的末端,整体的生存空间被压缩的比较小,所以也很容易迷茫,为了破局就不得不开疆扩土。
    流程质量技术:我这边更多做的是流程质量卡点和流程提效:将人工操作的流程变为自动化,将容易出问题的流程建立卡点
    测试质量技术:这就是测试的基本功,无非 攻防两种:攻:更有效更多的发现 bug,防:问题发生时候及时的监控到及处理掉,或者预先做好异常测试及处理

  • 我还碰到过更离谱的,我以前在一家公司刚入职的时候 ,丢过来上百个接口文档,让我都自动化掉。用例都没有,都不知道如何下手,最后没办法,只能一点点找人问,整理 请求链路,业务逻辑 写自动化。

  • 如果是源码阅读的话 ,工具:Sourcetrail 非常不错,支持多语言,图形化代码结构

  • 二分查找

  • 我们是做了 UI 测试左移,测试同学写逻辑,前端同学在控件上注入 testId。测试同学和前端同学编辑一份协议 json。
    测试同学用到的 pageobj 自动生成 json,前端通过测试环境打包编译自动填充 testid。整份 json 通过 gitlab pipeline 进行更新来保证 json 是最新
    所以我们就是通过属性 testid 来定位

  • 第一点内容有点多牵扯到整个流程和能力的结合,通过 gitops 实现了 CICD 和代码门禁,因为有 CD,然后就将平台上的测试能力打通来实现持续测试。
    我的实现路径:

    1. 代码门禁 + 代码分支管理规范
    2. 持续集成
    3. 持续部署
    4. 持续测试
    5. 打通业务项目流程 + 建立质量打分模型
    6. 强化持续部署,增加动态测试覆盖率采集注入能力
  • 测试开发个人发展疑惑 at 2021年10月13日

    背景

    回过来看看当初的这个这个帖子和选择的走向
    可惜当初这个帖子的内容被好几个人喷,我删除了原来的内容,这里来回溯下帖子原先的内容

    工作3年多,自认为Java和Python编程水平不错,工作经历主要是做自动化测试和测试工具/平台。拿了两个offer,不知道选择哪个才发帖,当初没说公司,这里来说明下。一个阿里某部门用java,一个网易某部门用python
    

    首先要感谢前辈们的回复,现在回过头来看 思寒 大佬了两个评论说的尤其正确,现在我也能感同身受
    其次当初工作 3 年的时候确实年少轻狂,自认为自己挺屌的, 现在又过去 3 年多,心态也已经和当初不同

    现状

    • 还是测试开发,目前工作 20% 业务测试 80% 测试开发工作
    • 测试开发的内容:流程质量技术 + 测试质量技术
    • 这个帖子勾选的最佳回复里面的内容,除了线上质量监控,其他都做过,且在部门推广落地
    • 对测试开发的看法:测试开发类似于大数据开发,云原生开发,平台开发, 前者是领域/业务,是你要解决的问题,开发只是个 software engineer 的职称, 是使用某种技能的职能,任何职能都是需要解决领域/业务问题,给公司带来价值的
    • 测试能力对测试开发是否有必要:特别有必要,测试开发如果没有扎实的测试能力,和质量技术能力,那就跟招个外包开发来干活没啥区别,越到后面越会发现,业务能力的重要性
    • 总结的重要性:知识的积累,分享和输出,随着工作年限的增加会越重要。
    • 职业发展:工作上的付出收到认可,带来的收益和发展还是匹配的,在这里 3 年半晋升了两次,一次小级别,一次大级别。总包也相当于当初入职时候 double 还多
  • 大佬有点强,连续干货输出

  • 去年定的目标 除了 2.2,2.3 其他都完成了,也是不容易啊

  • 这个问题我觉得是个挺好的 开放性问题。开放性问题没有唯一答案,面试官主要是考察你对问题的思考、语言组织表达、总结能力,开放性问题切记不能一句带过,要有一定的问题回答技巧和结构。
    楼上几位经验丰富的大佬的回答,你可以学习下。

  • 工资低 还没多少成长,跳一跳比较好

  • 很好奇 音频打分模型 是怎么样 的

  • 折中方案 有个问题就是 怎么定义数据结构较大改动?

  • 公务员

  • 之前做过建立关联关系的工具,但是比较粗略。大概思路如下,通过 selenium 起一个 web,这个 web 只监听预设好的待测服务和用例管理平台。当用例管理平台操作某个用例通过/不通过的时候,记录这个用例信息 + 这段时间所有的 API。通过 API 就能得知 后端哪些接口跟这个用例相关。

  • 1.首先可以通过 TestSummary 获取自动化用例的执行统计

    TestSummary = junit testResults: "xml-results/*.xml", allowEmptyResults: true
    

    2.获取细分执行结果

    env.testTotal = TestSummary.getTotalCount()
    env.testFail = TestSummary.getFailCount()
    env.testSkip = TestSummary.getSkipCount()
    env.testPass = TestSummary.getPassCount()
    

    3.接着判断 testFail >0 就可以 使用 error 抛出错误,那么当前 stage 就为 fail 了

  • 挺有意思的题目,根据自己的思路也写了下,就是不知道执行怎么样

    def deal_word(words):
        word_list = re.findall(r'[a-z|A-Z]+', words)
        for i in word_list:
             words = words.replace(i, "'{}'".format(i))
        special_word = re.findall(r"('\w+')\d+", words)  # 处理字母后跟数字的情况
        if special_word:
            words = words.replace(special_word[0], '['+special_word[0]+']+')
        words = words.replace('[', '*[').replace(']', ']+').strip('*').strip('+')
        while ']+]' in words:
            words = words.replace(']+]', ']]')
        words = eval(words)
        words = [''.join(w) for w in words]
        return ''.join(words)
    
    
    if __name__ == "__main__":
        tar_word1 = '3[k]2[am]'
        tar_word2 = '2[k3[am]]'
        tar_word3 = '2[2[k3[am]]]'
        print(deal_word(tar_word1))
        print(deal_word(tar_word2))
        print(deal_word(tar_word3))
    
  • 写个 session 级别的 fixture 来做检查

  • 如何培养结构化思维? at 2021年06月22日

    最简单的学习就是模仿,你可以先从模仿开始,模仿别人的方法,框架,行为等

  • 看楼主的头像,就觉得楼主不简单

  • 流程化壁垒太高,你要打通各个部门 各个环节。但是收益是绝对有的,那么多搞 DevOps,以及现在有些搞 ServerLess 的都涉及到研发流程相关的改造。这事情需要有大领导的支持。

  • 很多自动化测试框架都有数据驱动,我们是用二因子正交 + 数据驱动。像上面大佬说的,也只会对核心的接口会做正交