51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 26598|回复: 70
打印 上一主题 下一主题

【你来问我来答第88期】:如何做好自动化测试技术和区块链技术?(活动结束)

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    #
    发表于 2017-12-1 10:54:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    论坛IDcwb007
    真实姓名: 程文彬
    现任公司: 嘿丫科技
    现任职位:创始人
    工作经验:
    04年入职华为,在华为从事了十年的研发工作,离职前为华为某产品族集成与验证(I&V)部部长。在华为十年,当过测试小兵,做过工具开发,担任测试领域专家,也带过上规模团队;
    14年,离开华为,创办嘿丫科技,先后为业界多家知名企业提供业界领先的自动化测试解决方案。
    17年3月,和一帮华为离职同事启动区块链项目,负责区块链底层技术平台研发。

    各位会员可以在12月10日前以回帖的方式向客座专家提问。
    (请大家围绕本期客座专家的擅长领域进行提问、探讨)
    客座专家将在12月11日—12月31日为大家集中解答。

    机会难得,欢迎大家踊跃提问!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    该用户从未签到

    推荐
    发表于 2017-12-4 11:35:50 | 只看该作者
    我很早就对"自动化测试"有了概念,它的好处简直太多了:解放人力、避免人为因素干扰、更全面的检查问题...
    然而我始终没有学会它。
    首先,作为一个开发人员,我索要的不是LoadRunner这样的一个由外部录制作为展开的测试工具,这个工作是测试人员规划的,我既没有精力去录制,也对我们项目需要测试的点缺乏完整理解——我只知道我的模块这里有哪些地方需要测试。
    其次,我索要的也不是JUnit该怎么用,那个属于技术问题,通过百度可以解决。
    我所面临的困境是:
    1.测试数据从哪来?
    2.模块代码顺利走通之后如何确保数据的完整性?
    3.需求发生细节上的变动的情况下,自动化测试代码如何才能不受干扰的完成使命?

    测试数据从哪来,这严格地说不是一个问题,因为我们可以写死一些假数据供测试类使用,然而悲剧的问题是,有一些数据是很难掌握的——比如加密后的密码。如果想要模拟这些假数据,我必须把密码加密的过程也写到测试代码里去,这使得测试类变得庞大,并且最重要的是不再具有独立性——它与业务代码缠绕在一起了。
    老师你好,请问自动化测试代码怎么写?
    代码在我的模块顺利走通了,全程没有出现任何Exception,但这并不意味着胜利,因为我并不知道走完之后的数据能否在其它模块顺利被使用,如果数据不再完整,那就不能。然而基于同样的道理,我没办法在测试代码中使用大量篇幅去检查数据的完整性——那是业务的范畴,业务需求随时会变。

    所以第三个问题也就是实际上最困难的问题,如何让测试代码与业务需求脱钩?
    至少我认为,一段合格的测试代码,如果需求发生改变,不是功能性的改变,而是细节上的调整,那么测试代码应当是不用动。否则的话,需求天天变来变去的,这测试代码谁都会没精力去维护。
    不维护的测试代码==垃圾。
    哦对了,我们现在不是没有测试代码,只不过我们的测试代码就是长期不维护的垃圾……

    不知道那些拥有完整自动化测试代码的web项目都是怎么做的?
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    推荐
    发表于 2017-12-15 11:20:32 | 只看该作者
    本才 发表于 2017-12-15 09:36
    智能合约功能的测试是侧重智能度,还是侧重合约?

    所谓智能合约只是区块链虚拟机运行的一段不太复杂的程序,一段程序的测试该关注什么,其实不用特别去讲吧?
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    推荐
    发表于 2017-12-15 09:20:53 | 只看该作者
    本才 发表于 2017-12-14 13:04
    如果要测试区块链项目,要从哪几点着手?

    1、要首先掌握密码学的基本知识(例如对称加密、非对称加密、数字签名的原理);
    2、理解数据结构中的链表概念,树的概念;
    3、区块链的交易记账模型(如何实现转账的,如何避免双花的,如何实现所有权验证的);
    4、若是基于以太坊代码做,那还得理解虚拟机运行原理;

    区块链项目重点测试如下内容:①转账,向单/多签名地址转账,向脚本转账;②如果对币的机制有修改,双花攻击测试;③智能合约功能及安全测试;④打包及交易确认效率。
    其实,任何软件的测试,都是可以基于“输入-输出-行为”模型(又叫IBO模型)来做测试分析和设计。
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    推荐
    发表于 2017-12-7 10:20:57 | 只看该作者
    小文0111 发表于 2017-12-4 11:31
    老师你好,我想问下你们公司平时做区块链底层技术平台研发主要做什么项目,能简单的介绍下吗?

    区块链主要有几个特性:①、不可篡改;②所有节点公开全账本;③账户信息持续可追踪;④对等网络,没有上帝角色(什么系统管理员、数据库管理员、公司CEO等)。我们认为区块链会成为未来10年互联应用的一个底层技术,各行各业的各种项目,都可能会找到应用点。就比方说,商品溯源,传统溯源系统采用集中数据存储数据,其实这样的数据对数据库管理员来说/或者对运营公司来说,想怎么修改,就怎么修改,那它的数据可信度有多少?再举个例子,支付宝,马云就是上帝,这个上帝可以让你的支付宝账户瞬间从0变成1000万,只要他愿意。。。一句话,我相信“人之初,性本善”,但是难保不会从善变恶吧?
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    62#
    发表于 2018-5-2 16:43:03 | 只看该作者
    司格特 发表于 2017-12-21 10:48
    还有个问题希望您能回复下,这个技术的开源工具有哪些,请指教!

    我也想知道 +1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-1-9 14:38
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    61#
    发表于 2018-1-9 11:46:23 | 只看该作者
    八戒你干嘛 发表于 2017-12-5 09:40
    老师你好,我这里有个关于自动化的运行问题请指教?
    Selenium python,unittest 测试结果总是 Ran 0 tests ...

    deriver = unittest.defaultTestLoader.discover(test_dir,pattern="tset*.py")

    代码敲错了吧?tset*.py应该是test*.py,unittest框架是需要特定开头的测试case,匹配不到自然不会运行
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    59#
    发表于 2017-12-21 17:04:16 | 只看该作者
    太鼓达人 发表于 2017-12-21 11:27
    使用 selenium 做自动化过程中遇到的一个元素文字展示的问题,请您指教下?使用xpath
    .//*[@id[/backcolor ...

    这个问题很好解决,xpath等式改为包含关系就好   [contains( text()],“合作伙伴”)]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    58#
    发表于 2017-12-21 16:57:18 | 只看该作者
    本帖最后由 cwb007 于 2017-12-21 17:10 编辑
    司格特 发表于 2017-12-21 10:48
    还有个问题希望您能回复下,这个技术的开源工具有哪些,请指教!

    数据驱动/关键字驱动工具很多,qtp/rft/lr/selenium用得好基本都可以归为数据驱动/关键字驱动工具,但是这些工具想要变成业务驱动工具,那就困难了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    57#
    发表于 2017-12-21 16:54:40 | 只看该作者
    司格特 发表于 2017-12-21 10:47
    你好,看了一些你回复的帖子对于区块链技术有了一个初步的认识,貌似这个技术在金融领域涉及的比较多,其 ...

    在金融科技(Fintech)这块提得比较多而已,因为金融这块信任问题比较严重(美国次债危机爆发的原因是次级债券这个金融产品底层资产包不健康导致的,但是底层资产对于次债持有者又是不可见的),所以业界觉得区块链这样的信任机制在金融这块会有很好的应用。我们要理解金融资产都要有底层实物资产支撑的,没有实物资产支撑就没有金融(全球金融产业发达的,要么是物流航运中心,要么是依托于股票/期货交易所,大家有想过为什么吗?),所以金融科技要想很好地应用,实物资产必须要上链。实物资产上链就涉及到各行各业了,比方说企业内部办公资产管理、企业产品溯源、商品流通(物流)跟踪....这些资产(还有数据资产)都在区块链上进行管理后,然后就可以进一步衍生出基于区块链的金融交易。其实,区块链是一个技术解决方案,未来会成为一个底层技术,各行各业都可以用。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    56#
    发表于 2017-12-21 11:27:08 | 只看该作者
    使用 selenium 做自动化过程中遇到的一个元素文字展示的问题,请您指教下?

    使用xpath
    .//*[[color=#069d6 !important]@id
    ='mainRight']//button[text()='+ 合作伙伴']

    去定位元素的时候定位不到
    当即终止脚本运行

    F12,发现在源码显示中显示为两行
    “+
    合作伙伴

    我记得我前面也遇到过这个问题
    始终不明白为什么会这样!


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    55#
    发表于 2017-12-21 10:48:09 | 只看该作者
    cwb007 发表于 2017-12-20 09:57
    前面回答问题,提出了自动化脚本分类的概念,给大家补充点材料。

    还有个问题希望您能回复下,这个技术的开源工具有哪些,请指教!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    54#
    发表于 2017-12-21 10:47:26 | 只看该作者
    cwb007 发表于 2017-12-20 09:57
    前面回答问题,提出了自动化脚本分类的概念,给大家补充点材料。

    你好,看了一些你回复的帖子对于区块链技术有了一个初步的认识,貌似这个技术在金融领域涉及的比较多,其他行业的介绍看的的内容很少,我不知道这个技术适不适合其他领域,毕竟他的安全方面看起来很不错。期待你的回复!谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    53#
    发表于 2017-12-20 09:57:38 | 只看该作者
    前面回答问题,提出了自动化脚本分类的概念,给大家补充点材料。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-15 13:17
  • 签到天数: 486 天

    连续签到: 1 天

    [LV.9]测试副司令

    52#
    发表于 2017-12-18 15:16:01 | 只看该作者
    http://bbs.51testing.com/thread-1040289-1-1.html,扫描式自动化测试,无测试脚本,只要运行一个程序,就可以进行测试,欢迎交流讨论
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-25 14:30
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]测试营长

    51#
    发表于 2017-12-15 09:36:58 | 只看该作者
    cwb007 发表于 2017-12-15 09:20
    1、要首先掌握密码学的基本知识(例如对称加密、非对称加密、数字签名的原理);
    2、理解数据结构中的链 ...

    智能合约功能的测试是侧重智能度,还是侧重合约?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-25 14:30
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]测试营长

    50#
    发表于 2017-12-14 13:04:12 | 只看该作者
    cwb007 发表于 2017-12-7 10:20
    区块链主要有几个特性:①、不可篡改;②所有节点公开全账本;③账户信息持续可追踪;④对等网络,没有上 ...

    如果要测试区块链项目,要从哪几点着手?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    49#
    发表于 2017-12-13 10:02:10 | 只看该作者
    一月蔷薇_456 发表于 2017-12-12 11:30
    在我实施移动应用自动化测试的过程当中,我思考最多的倒不是技术实现上面的问题,而是:
    面对迭代周期短的 ...

    ①UI自动化有其意义(有意义就值得考虑,维护成本高的问题,那如果能找到维护成本低的工具呢?),当然根据各个项目具体情况,可以选择做或不做。
    ②重视接口自动化是OK的。
    给两条建议:①不要为了自动化而自动化;②自动化不是万能的;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    48#
    发表于 2017-12-13 09:57:06 | 只看该作者
    海鸥一飞 发表于 2017-12-12 11:27
    自动化最擅长做重复的工作,随着技术的发展,我们不但能把简单的步骤自动化,复杂的场景也可以支持的越来越 ...

    你说的观点,部分我认可的:①技术在进步,以前不能做的自动化测试的场景,现在能做了,这个我认可;②自动化只是一种手段,用好当然能极大提高生产效率;③性能测试变成很小一部分,我不敢苟同,其实性能测试需要测试的内容太多了,这一点我是深有体会(我在华为亲自做个多个产品的性能测试,某个产品光输出的性能测试设计方案文档就有三四十页)。④安全测试也一样,华为曾经也不重视软件系统安全特性,后来华为用近三年时间在全公司推动各个产品落地安全红线(包括需求、设计、开发、测试的内容)。
    其实我的观点是:①产品质量是设计出来;②出口质量要求越严格,测试投入越大;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    47#
    发表于 2017-12-13 09:37:14 | 只看该作者
    听海——sky 发表于 2017-12-12 11:25
    Robotium 自动化测试  手工用例 和 自动化用例的关系?请大神指导?

    ①Robotium是一个具体的自动化测试工具,我从来不说某某工具自动化测试,而是说某某产品的自动化测试需要某一款工具/更适合使用某一款工具。
    ②用例集=手工用例集+自动化用例集,等式右边是此消彼长的关系,但是强调一点,就目前的测试行业的自动化水平来说,完全替代手工是不现实的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    46#
    发表于 2017-12-13 09:29:45 | 只看该作者
    always_fly 发表于 2017-12-12 11:22
    为什么现在占主导的还是UI自动化,分层测试效果好,为什么实践的人少,甚至有抵触呢?是否有更好的解决方案 ...

    ①UI是所有人都能看得到的,成功/失败直接可见,成就感足;
    ②UI测试,一个用例是从端->服务的全流程测试,分层用例一般一个用例要么对应后台接口,没有覆盖UI,还得补充测试;

    我也认为,自动化落地得比较特别好的,一定是UI+后台服务接口的综合自动化测试。因为UI自动化测试执行效率还是低,而接口自动化测试效率会提升很多。但是,难度也更大:①需要产品在设计阶段就考虑落地一些可测试性需求(让自动化更容易做的需求);②接口自动化用例开发,如果找不到合适的工具,测试人员必须掌握编码技能。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 07:24 , Processed in 0.084634 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表