• 我发表一下态度吧,利益相关:我在第四范式工作,公司主营业务就是人工智能,我的工作是测试我司的机器学习平台。

    其实开不开我觉得都行,开了大家一起学习讨论挺好的。暂时不开呢也有道理, 因为现在拿人工智能做测试当做噱头的骗子实在不少。 现在知乎上,gitchat 上等各种知识变现平台上凡是跟人工智能测试挂钩的都是骗子。 都是看了几天入门课程就跑出来忽悠人的。目前人工智能在测试领域的应用可以说是凤毛菱角,场景十分的受限。 只能做比较简单的分类场景。 例如照相机的美颜,滤镜功能。 用模型区分是否加了效果。 又或者说十分简单的小游戏,简单到可能像天天酷跑的操作一样只有 1,2 个跳跃的简单操作。 那么也可以让模型自动判断要执行的操作。 即便是这么简单的操作,但是能解放的人力程度依然是有限的。例如说前者如果我们做测试的时候每次拍的图片都是一样的,我们大可以使用一些图片对比库来做校验,犯不着上人工智能。如果要测试更复杂的场景,例如各种角度和背景的自拍,那么依然少不了人来去拍照。而且模型只能判断是不是加了效果。 但是效果加的如何,仍然要用人的审美观点来判断。 对于后者呢,效果好一些,首先这种自动执行游戏按键的场景是无法验证功能的,只能是运行过程中上监控判断异常和性能等, 当然了达到这个目的也是不错的了。 但是为了上人工智能而要做的准备工作很多的。首先数据的收集, 我们都知道数据越多越真实模型效果越好。 但是这个数据从哪来? 现在拥有人工智能服务的大公司哪个不是费尽九牛二虎之力做数据采集。 那么问题来了谁给你测试这边费劲做数据采集系统? 能想象到的就是人工来做, 那么你要收集那么多数据有多少成本? 数据少了 AUC 上不去,正确率上不去,你怎么办。 再一个是数据一定要是稳定的,也就是你应用的场景要是稳定的。 别一次迭代过去了数据来了个大变样,那你觉得你的模型还有用了么? 那就要重新采集数据重新建模。 就现在软件都走敏捷的套路来,维护模型都累死你。 你看那些公司做人工智能服务,他们用来建模的场景肯定是稳定的,数据是不会三天两头就大变样的。用脚趾头想一下,要是围棋规则三天两头变一次,阿尔法狗早就被人类给虐的死死的了。

    最后总结一下, 人工智能在测试领域的应用在未来肯定是有的,但是现在还太早了。大家学习一下了解一下就可以了。 不要把它当做救命稻草。觉得学了就能赶上下一个风口走上人生巅峰了。人类的科技进步是有规律的,一个事情一定是所有人才先不计成本的实现之后, 才开始慢慢的降低成本并扩展到其他领域。 现在优秀的人工智能领域的人才都在学术领域或者在各个公司为其创造商业价值。 等他们能腾出手来辐射测试领域那就不知道能等到什么时候了。再说一下人工智能也不是能速成的,不要妄想随便培训一下,看一下教程就完事了。随便用 python 里的机器学习库写点程序训练出个模型这谁都会,我们部门里基本上是个写代码的就能在 1 小时之内学会。 但是这又有什么卵用~~, 训练出的模型跟屎一样。 想训练出好的模型,不仅要懂调参,还要懂数据统计与处理,要懂业务,要懂很多。曾经有好几个来面试的候选人跟我说他熟悉机器学习的各种应用,但基本上都过不了我的第一个问题就跪了。曾经有个大厂的 QA 跟我吹牛说自己用深度学习干了什么什么事,然后我就直接问一句,你每一层用的激活函数是什么,激活函数有什么用,他就蒙了,他都不知道激活函数是啥。 甚至有个哥们更离谱,吹了一通牛,我就问了一句什么是监督学习,他都答不上来。 迄今为止,来我这面试说自己会机器学习的 QA,能撑过一个问题的只有一个,撑过两个问题的一个都没有。 所以各位,不要让满嘴喷粪的骗子们给骗了,那些骗子们也请别打着人工智能的旗号到处忽悠人了。

  • 问题已解决 2 at 2017年11月05日

    不要互相伤害了~~ 带节奏是不对滴~~

  • 测试开发都在开发些什么 at 2017年11月05日

    其实开发任务都是测试这边自己想出来的,这个挺正常的。 要是等着别人告诉你做什么那么你的测开之路就基本到头了。复制其他公司的成功案例也是不智的行为。因为每个公司的情况不一样,需要的东西也就不一样。就算是需要同样的东西,但因为产品的特点,公司制度的特点等最后做出来的东西也很可能相差的很多。 做测开就要自己想需求,根据项目特点开发出提升效率的东西,不停的精益求精。 其实可以做的东西非常, 偏测试本身方向的可以开发各种测试框架和工具,偏开发方向的可以开发各种跨部门协作软件,偏 testops 方向的可以玩 Jenkins,docker 和 k8s,把 CI,CD,整个公司内部的容器生态搭建起来。当然你也可以跟我一样全搞,但就是非常耗经历了。 如果你还是很迷茫的话建议去搞 docker 和 k8s。这个在未来的 5 年内肯定都是主流,未来会有很多的偏运维方向的测开职位需求的。现在的 docker 生态已经很普及了,很多公司都在用。我在公司内搭建了一个 k8s 集群, 我们所有的测试环境,测试服务,测试平台等都是运行在这个集群上的。有了 docker 以后你会发现你做什么都很方便,现在 docker 已经变成了我们这边测试技术栈的根基了。

  • 额,好久不写了。

  • 走的比较急没有问~, 看网络攻防比赛的时候就比较好奇了。 上面的系统会显示每个团队的进度和分数,谁正在攻击谁的。弄的跟拍电影似的

  • 深度学习基础 -- 二分类 at 2017年10月23日

    恩,我学这些也是为了能测试

  • 深度学习基础 -- 二分类 at 2017年10月23日

    不是~ 讲浅层神经网络。 我没怎么研究过非监督学习。 就先不讲了

  • 深度学习基础 -- 二分类 at 2017年10月23日

    额,慢慢等吧。我讲完原理以后就会讲测试了。 在之后的帖子里

  • 深度学习基础 -- 二分类 at 2017年10月22日

    如果只是调用调用 API 或者调调参数做做测试什么的。其实不用数学有多好,算法都有框架实现了, 懂原理是为了能测试或者能用。 我数学可垃圾呢,也是照学不误~~

  • 请教关于测试调度 at 2017年10月09日

    有 jenkins 就掉 jenkins 的 API 集成就行了。 应该不难的

  • 针对这种情况我们是专门做的 migration 测试,我在上上家公司的时候,开发会专门研发出版本升级时的 migration 程序。而我们会有一个专门的拥有数据的环境进行测试 (环境部分我不太清楚,是美国那边的人搞得,据说是他们做的数据快照)。 而我现在的公司的做法比较类似,我们在不同客户那的版本是不同的 (TO B 业务),而客户那时常会有版本升级的需求。 所以如果新版本数据库的变动和 hadoop 的更改不兼容老版本的话,就要在升级工具中引入 migration(刷数据)。所以开发那边专门做了升级框架,每个版本都有对应的升级到下一个版本的机制。 而相应的,测试这边就要对每个版本进行升级测试。 方法很暴力,因为我们是用 docker+k8s 部署的测试环境,所以每个版本的镜像我都存到镜像仓库里了。 我可以随时部署任何版本的全套环境。 部署完旧版本环境后开始跑自动化 (全量的,能造多少数据就造多少)。跑完自动化后开始升级,升级后继续跑自动化 (同样的 case,还是全量的),然后配合手动的方式上去验证老数据是否正常,老任务是否能够重新运行等等,反正就是验证升级并没有影响老的数据。 验证完升级以后接着验证降级,套路都差不多。 这是我们 TO B 业务的玩法

  • 这个问题在我们这还真有段历史了。 过程不表了, 直接说我们的方案吧。 我们测试环境和线上 SAAS 都是用 docker+k8s 部署的,所以直接解决了环境不同的问题,开发,测试,线上用的都是一个镜像。 对于客户方的私有云部署, 我们有专门的部署测试。

  • 三线城市蛮尴尬的。注定了软件行业在这种城市中是疲软状态的。 我老家在哈尔滨,刚毕业的时候我在招聘网站上搜老家的职位的时候。我就找不到专门招软件测试的。老家软件培训业不少。 但是专门做软件的出名一点的也就神州吧。 国企之类的我同学进了移动做开发。总之我毕业那两年的时候再老家基本上就看不到啥希望。不想混日子,就来北京了。

  • 多线程的东西我都忘光了。。。。几年前还专门学习过一阵但一不用没多久就忘了。。。。。

  • 不是顺序执行,就是并行的

  • 你可以看看我之前写的文章

  • 恩。。是的。。我们这招人的时候也有这个问题。。 我们现在也是手动,自动化,工具开发,性能测试一把抓。 全都干

  • 其实成长有两种方式,一种是进入一个好平台,在成熟的体系下学习。这种情况下学的快,视野宽,少走弯路,干的舒服,应届生首选路线。只是体系太成熟就会变成接触的都是人家封装好的东西,很多东西不需自己考虑,时间长了容易形成被动的思维惯性,没有自己的思维和技术体系,这是被动学习的一个缺点吧,很多大厂的螺丝钉都是这么形成的,所以在中期需要强烈的自驱力或者机遇跳出这种状况,但只要跳出来了,也是前途光明的。 另一种是开荒,从 0 到 1。自己从头开始面对一切困难。这种情况下跟第一种完全相反。学的慢,视野窄,走的弯路多,干的很不舒服。是需要打从一开始就要有强烈的自驱力才能坚持下去的路线,不少人都在前期被干掉了。但是一旦坚持下来,中后期成长飞速。由于一开始就选择了 hard 模式,所以接触的广,接触的深。也很容易形成自己的思维和技术体系。

    以上两种方式各有各的好处,也各有各的缺点。前者的具体经验我给不了你。当初我基础和背景都很差, 好平台不收我。 所以我走的是后者的路线。 这是一开始就选择了 hard 模式的游戏体验。 该做什么没人告诉你, 该怎么做也没人告诉你。所以最好在工作中寻找突破口。 加入什么技术能让工作做的更快更好。 不建议脱离工作去学习,学习一项技术应该有目的性,一定要是你觉得能对之后的工作有很大帮助的才去学。 如果你们测试还是手动的,那就学学 UI 自动化,接口自动化。 如果你们的环境还要靠手动搭建,那就想办法学 linux,学 shell。 如果想要更好的维护多套环境,那就学 docker。如果你们的团队越拉越大,就学学 web 和底层技术去搭建测试平台, 一点点来,随着团队和业务的发展。 技术栈也就这么积累起来了。 我就是这么走过来的。

  • 这个我也不知道😂

  • 多谢指正~

  • Builder at 2017年08月29日

    直接开迅雷下几个电影,热的比起线程快 哈哈哈哈

  • 最近有点忙,写到一半还没发出来。 这两天我把下一篇写完就发出来哈

  • 啊? 难道不需要写自动化脚本么,还能闲着?赶紧补脚本啊。 没脚本也得开发工具吧

  • 电商:功能遍历场景 at 2017年08月08日

    刷屏了。。。。

  • 就是多线程,testng 里能配置的