作为软件测试人员,大家都知道自动化测试将我们从重复、枯燥的手工测试中解放出来,帮助我们和企业减少了时间和劳力成本。但在实践中发现自动化测试没有我们想象中的万能。比如大家熟知的UI自动化,写好自动化脚本后,可以进行大量的页面测试,节省很多时间,但是我们为了完成这个自动化脚本,搭建环境花了几天?熟悉那套自动化测试框架花了几天?掌握那套框架的编码能力又花了多少天?最后,我们辛苦写好的自动化脚本失败,真的有发现研发同学的bug么,还是都是因为部署环境失败引起的失败?因为执行机挂了引起的失败?同时我们为了排查出这些失败,又花了多少时间?还有接口测试,若想全覆盖接口的所有参数场景,对测试人员要求很高,要求对系统的结构和系统间的调度非常清楚。
大家一起探讨一下:做好自动化究竟有多难?您所在公司现在在做自动化测试吗?如果有,您觉得自动化测试的好处是什么,不足是什么?能给自己工作带来多大改变?在自动化过程中遇到过哪些问题,目前这些问题是否得到了解决?如果公司目前没有做自动化,那么现在主要的测试方法是什么?有没有想过尝试自动化测试?最担心使用自动化测试碰到什么问题?
小实践:看这里的商品详情页,假设我们这次要测试立即购买这个下单的功能,大家觉得这个功能适合什么样的测试方法?是否需要分层,对应的分层应该是什么呢?
优酷VIP月卡 x 1
蚁步
已获得优酷VIP月卡
复制链接去分享
小实践
1.根据用户购买习惯搭建场景测试用例;一般从小到大,小到按钮的样式、布局,大到完整的业务流。
2.需要分层
立即购买有前提、有后续业务,前提包括:1.已登录or未登录;2.有库存;3.有该颜色。后续业务包括:是否跳过购物车直接显示支付等。
自动化测试增加了学习成本,小公司可能用不起。
而且自动化测试的准备过程也是真心累啊!
首先要做好手工测试并了解各种测试的知识->学习编程语言->学习Web基础(HTML,HTTP,CSS,DOM,Javascript)Winform
-> 学习自动化测试工具 ->学习自动化测试框架 -> 实现自动化测试用例 -> 开发自动化测试工具 ->开发自动化测试框架。
过程已相当费力费时了!
自动化测试的自动化和高效率是建立在前期耗费时间和资源建立的测试方法和脚本的基础上的,这个时间和资源的成本目前不太适合于大部分的测试项目.另外目前的自动化测试的技术.更多也更适合一些机械的,客观的,不涉及变化的测试.小企业目前可能无法使用自动化测试,但随着技术的发展,越来越多的项目可以使用自动化测试.能够机器做的,而且效率费用都合适的情况下,没人会拒绝,当然了,涉及主观层面的测试还是要人的,而且还得有一定的采样率。
作为公司第一个做GUI自动化的人,综合公司现在自动化(包括GUI和功能)现状,谈一下自己的感想:
自动化必要性
1.1 自动化测试的最重要的作用就是解决“反复“的手动测试对于N多简单的动能,可能需要在不同平台,不同工作场景,不通的版本上面都会测到,而这个功能又是一个很稳定的功能, 这时自动化的效率是很明显的。
1.2 自动化覆盖的内容是老的功能,也是在产品发布前最后的质量保证。
自动化开发
2.1 自动化架构
当时我写的gui自动化是用java +junit 的架构,后来我去做功能测试,又有人写的自动化是python写的。
每一个架构都不可能一开始就运行的很好,只有在不断执行的过程中不断改进。
2.2. 自动化覆盖范围
能够自动化的功能模块很多
根据需要尽量把自动化的模块细化,这样比较方便自动化的执行
2.3 自动化执行效率
自动化的执行效率一定是要优先考虑的,现在公司有个自动化脚本要跑1星期,这是不能忍受的。因为自动化一般做regression 测试,在candidate build上面跑自动化检查基本老的功能是否pass。一般最多两天。
2.4 自动化系统的维护,因为是程序总会有bug
自动化执行
自动化执行需要有专门人或团队执行,以保证产品在发布之前基本功能可以work,执行团队两个作用:
3.1 发现产品功能问题
3.2 发现自动化程序问题。
自动化团队与其他团队的合作
有的公司是测试人员自己写自动化脚本,有的公司是有专门的自动化团队
4.1 与内部人员的沟通,保证尽可能代码一致性
4.2 与手动测试人员的沟通,每个自动化程序都有文档跟踪,有专业人员review, 其实自动化是手动测试最重要的补充。如果手动人员知道自动化cover 的哪些功能,他们就不需要重复测试了。
以上,还在工作,这里只谈了功能方面的自动化,对于性能方面的没有过多经验,但是性能测试会有工具完成。
1.首先应该从客户的角度去考虑,细节决定成败:
①整体效果要注意,细节的东西更重要;
②要注意页面各个组成要素的颜色,颜色可以影响一个人的心情;
③各个组件的布局也至关重要,对客户来说是否方便,组件的功能是否易懂;
这些都应该考虑到。
2.测试时可以先内测,再公测,收集大众的意见,公测应该是必不可少的一步,客户的意见更有针对性,一边找到最重要的问题。
3.关于自动化问题:
①适用范围,使用自动化要考虑这个东西的适用范围,有的测试就不适合去使用自动化,任何东西都会有出错的时候,机器也不例外;
②经济效益,有时使用自动化可能得不偿失,要考虑整体的经济效益,选择合适的测试方法,这就应该是展现一个领导者的才能的时候
嗯,不错哦~分层里主要说了ui相关的?
仔细划分的话,考虑的还是挺多的:
1.从ui上来看,按钮的样式、布局、字体、大小、颜色、多浏览器兼容性、多终端的适配;从区域来看,并不支持所有区域的货物配送,是否显示正确;点击是否有动态效果(如颜色变换)。
3.从用户体验来讲,延时等待是否有提示信息、是否易识别、用户感官是否不适、连续点击是否会重复提单等;
4.从功能上来看,则根据前提条件的不同,以及所在不同的业务流,是否满足功能需求,总体来说,是一个由点到线再到面不断完善的过程(这样不就是测试各个阶段应该考虑的事情吗,尽早测试,持续测试,不断回归,貌似又联系到自动化....)
最后,啥阶段干啥样的活,哈哈~
嗯,分析得很详细~不过还都基本是基于ui功能的哦,ui自动化受环境等外部因素影响很大的,全部用ui测试,性价比可能并不高~其实底层接口也有很多可以测试的,这样上层测试就可以少很多了
恩
单元测试阶段,获取接口说明文档,启动接口测试工作。
对于接口的简单理解:根据接口文档,通过 方法 | 地址:端口+路径 + 必填参数,从数据库传回参数值,然后前端根据参数值进行重组展示。
这里能想到的:
1.测试接口是否返回正确;
2.数据是否正确;
3.接口响应时间是否符合需求(如银行支付业务的高并发、股票系统的低延时等)。
求指教~~~
话说如果真要说全,估计得从需求评审阶段开始一点一点梳理,针对不同测试阶段选用不同的测试工具,测试方法。
PS:是打算送我奖品的节奏吗? 哈哈
这么详细,不送木道理呀,奖励已发。。。。接口测试看样子只是开发同学的思维,简单的参数比对,木有场景哦
场景?请指教,实在不知道接口还能怎么玩