• mvn install ERROR: 找不到符号 at 2017年10月12日

    应该是,依赖的 JUnit、TestNG,把<scope>test</scope>都删掉就行了

  • 参考一下:http://www.it1352.com/313066.html
    实际操作起来,我发现其实这种操作在【效果上】还是阻塞的,并非异步
    为什么呢?换个角度思考,有了这个 timeout,你在下一个 page 加载完成之前的任何操作(包括断言),也会有同样的超时设置作用于对你的 element 的加载等待,除非你故意在下一步操作之前把超时时间设置为 1s 或者更短~
    所以我在脚本中基本不动这个设置,只有在初始化的时候通过全局设置一下,结合自己系统、环境的性能表现即可。

  • 缺陷增长模型 at 2017年10月12日

    嗯,连测试工程师这个岗位都撤消了还说啥呢

  • 缺陷增长模型 at 2017年10月12日

    链接: https://pan.baidu.com/s/1i5qwsVN
    密码: ddf8

  • 缺陷增长模型 at 2017年10月12日

    我再说一次我去蚂蚁面试的事情,第二次去蚂蚁面试的时候面试题就有一张累积缺陷趋势图,让我来说一下这个项目有什么问题,当时我惊叹于这帮互联网屌丝居然也懂我传统业务的管理办法……那时候开始我以为阿里在这块有一整套的评估和监控体系在实行,现在看你的描述,应该也只是某些团队才会有吧。

  • 缺陷增长模型 at 2017年10月12日

    按照我的经验三五个 release 是要的,然后开始预测,然后分析、优化参数,拍拍脑袋瞎估算一下,稳定下来至少要:

    • 团队人数、任务量稳定
    • 扣腚的团队人数 8 人以上为佳,SRS 至少每个 release 要达到 5 个以上吧
    • 但是新项目、产品研发,我一般第一个迭代上线之后就会立刻开始下一个迭代的计算,拿整个测试团队的平均参数水平来拟合,所以偏差难免会大点,但是越早开始,后面越早贴近真实情况

    每个团队的业务类型、复杂度不一样,即便是同样的开发量,缺陷密度也不一样,所以,参数要具体到每个产品或者业务系统,分析的维度也可以多元化:按产品、按产品的 release、按开发团队、按测试团队……最后在一维分析的基础上再做二维、三维的分析,比如加上时间周期来看整体的趋势,这样在全年工作衡量乃至考核打分的时候都有点参考价值(这是大 M 的事)。

  • 看样子你还是没好好琢磨透 webdriver 怎么工作的啊,给你个样例你看下:
    每一步操作,工具都会自动等到你设置的超时时间(pageLoadTimeout、implicitlyWait)过了才会继续判定为失败,在此时间内会自动轮询检查的
    对 ajax 局部刷新,一样有效

    @Override
    public void startWebDriver() {
        cleanBrowserProcess();
        try {
            initWebDriver();
            driver.manage().timeouts().pageLoadTimeout(maxLoadTime, TimeUnit.SECONDS);
            driver.manage().timeouts().setScriptTimeout(maxWaitfor, TimeUnit.SECONDS);
            driver.manage().timeouts().implicitlyWait(maxWaitfor, TimeUnit.SECONDS);
            driver.manage().window().maximize();
        } catch (Exception e) {
            LoggerUtils.error(e);
            throw new RuntimeException(e);
        }
    }
    
  • 缺陷增长模型 at 2017年10月12日

    丑便丑了,我再晒一图,我一直引以为傲的:


  • 缺陷增长模型 at 2017年10月12日

    一个比较初级的版本供参考,说明:

    • 基础配置数据需要自己灌(劝你别费劲了)
    • 存储过程居然都在 mysql 里面(这个锅我不抗)
    • 前后端分离没做干净,所以有些页面无法访问
    • 地址:https://github.com/fudax/sqcs
  • 缺陷增长模型 at 2017年10月12日
    • 肯定可用,而且具备参考价值
    • 这个公式的每个参数,是需要拿既往数据来调整之后才能去拟合的,并非每个团队都能通用

    我之前在平安科技做这个工作比较久,不过计算用存储过程搞的,推算出预期之后再来观察每天工作是否到位,我们的版本周期只有 15~30 天,所以周期上不会有太大差别
    除了这个 Gompertz 之外,还有个 Rayleigh 模型,更精细,用于分阶段预测甚至推算线上 bug 数,至于效果么,我说两条:

    • 不见得每次都那么好,因为维护性、补丁性的变更版本和大项目不一样,大项目从头来过,没有历史数据好参考
    • 最好把这个计算用规则引擎实现一下,各个参数可以动态调整才是王道,这伴随团队成熟度和管理水平而动态改变,并非一成不变

    图例:

    再看下,到年底了,发生了什么😂

  • 凡是带分支的测试都是不合格的测试,因为你想用一段代码囊括几个场景,包括有效的、无效的等价类,这是违背测试设计原则的:

    • 用尽可能少的 case 覆盖尽可能多的有效等价类;
    • 每一个无效等价类至少需要一个 case 来覆盖!

    所以,你的 test 不能太过纠结于 PO 还是 BOT,要把操作组件拆分清楚,比如

    • 打开 url 做跳转这是一组,跳转的不是你的预期就直接通过 assert 去终止这个测试;
    • 输入用户名、密码、验证码,点击登录,然后 assert 成功还是失败,这是一组;
    • ……

    总之自动化测试也是测试,不要想着偷懒用 if else,select case 去覆盖,应该把每个分支做成一个@Test,换位思考,如果开发的代码里一大堆 if else 让你测试,你恼火不恼火~

  • 节后 renew~
    有意的可先私聊,聊完再决定投不投简历

  • 我只会 apache 的 common-lang、lang3、beanutils,原生的不懂

    • 人家只是想让你谈对线程安全的理解和程序设计时应该注意什么,而不是考察你会不会用 sync 这些,比如,直接回答注意不要用线程不安全对象、不要写静态方法……性能不好,影响体验这种话估计就是托辞吧,只是因为你没答到人家心坎上……若真如此,不去也是对的,这样的面试官很纠结于自己设定的答案,不够 open~

    • 索引,值得每个 IT 从业者去深入研究学习一下,不过也不能说太多,碰到偏执狂把你问到底层算法去,就等于刨坑把自己埋了😂

  • 老湿傅,我有个想法你看行不行得通
    按照的 realtime-reporter 和 reportng 的思路,自己写个漂亮的前端,做成付费版的也去卖,会不会有市场?
    再跟自己的测试框架平台撸在一起,卖给银行、券商这些土豪……想想就很开心,好多钱~

  • 这……丑我认了,全是我自己手动布局一点点写的 css,没用框架
    图也是我自己 P 的,除了一些存储过程,前后端都是我自己写的,需求和数学模型也是我找的……所谓全栈,大约说的就是我这种吧😂

  • struts2+jsp ——> SSM+Vue

  • 估计你没仔细看帖子,extentreports 我这里没写,估计就是你说的所谓 extendreport 吧
    帖子里有 reportng 和 realtime-report 两个,一个是事后汇总,一个是实时输出
    回帖的人基本都在说 extentreports 如何优秀,然鹅,你们看不到 realtime 这个词么

  • 优点:我格局高、见识多、善规划
    缺陷:我说的这些我都不会啊,你可以请人来做😂

  • 我是真不懂……因为我从来没有碰过移动端测试,图里面的点点点除外,所以我还是更欣赏这个图

    • mybatis 不是 mybetis
    • 路走歪了,你用 RF、JMeter 做都可以原谅,用 JUnit、TestNG+httpclient 封装来做更好,尤其是 testNG 的报告和日志做的很棒,你自己搭个 SSM 专门来展示报告,未免有点杀鸡用牛刀的感觉……除非你想做个平台出来
  • 这个问题我拒绝回答,我只欣赏这张图……

  • 今日最佳~

  • 不会搜索?

  • 1、那叫 extentreports
    2、extentreports 是否支持实时报告,这个我没研究过,帮忙解答一下呗,如果也支持,那我就直接上 extentreports 了