专栏文章 测试环节如何引入技术方案

爱偷懒的QA · 2018年11月22日 · 最后由 shelley 回复于 2020年02月12日 · 3605 次阅读

随着互联网行业的发展,技术行业也发生了翻天覆地的变化。而我们测试行业呢,早期会基本的功能测试,加上对业务的了解,基本的沟通技巧就能很好地完成测试工作。但是近几年来,所有的公司对测试从业人员要求也变高了,在测试环境也需要引入相应的测试技术,才能应付日常的工作需要。

一,功能测试为何要引入测试技术

一切测试都是要以功能测试为基础的,但是现在仅仅会功能测试是不够的。除非在一家公司工作多年,无论给你打的绩效如何都不会换工作;否则你不学点技术还是不行的。
1,业务发展需要技术辅助。
现在的业务发展越来越快,为了更好地服务客户,用户操作正在逐渐变得简单,但是业务却变得复杂了起来。同时业务发展也不会受区域的限制,客户量也变得大起来。公司为了抢占市场,进行业务尝试等,产品迭代速度非常快的。完全通过手工操作业务流程,或是借助简单的工具辅助测试的工作方式已不适应工作需求。
2,测试技术的发展。
测试技术是跟随着开发技术的发展而发展的,比如说出现了新的开发模式,全新的开发框架等等,要不多久就会出现针对着这个新技术相匹配的测试技术,测试框架的。所以不能墨守成规,天天用着一成不变的方法去测试,要根据技术的发展,不断地学习和使用新技术,并能将技术引进行测试工作中来。

二,测试各个环节可能引入的技术有哪些

根据软件工程讲述的软件流程,测试也需要从一开始就介入到项目中去,从而对各个环节进行测试,当然在不同的环节也需要引入不同的测试技术,辅助测试工作。
1,需求评审阶段可能用到的技术
在需求评审阶段,需要管理项目的所有文档,项目规划等。所以项目管理技术,项目管理工具 jira,禅道以及公司内部项目管理平台,如何引入和使用需要考虑清楚。同时选择好测试方案:本需求需要哪儿方面的测试,如功能测试,性能测试,安全测试等。需要对这些方面的测试,所使用的技术,实施成本有一定的了解才能更好地完成项目。
2,用例编写阶段的相关技术
测试用例编写与管理工具:freemind,excel,testlink,公司内部平台都需要熟练使用的。同时,根据需求特点,如果后期需要回归测试或是对相应的功能进行监控的话,就需要引入自动化测试。
(1) 接口自动化测试
目前的主流技术有 java 系列的:Java+HttpClient+TestNG+
Jenkins,通过 HttpClient 模拟发送请求,TestNG 管理测试用例和测试数据,将不同的参数发送给接口,判断返回的结果是否符合预期。Python 系列的:Python+Requests+unittest+Jenkins,通过 Requests 模拟发送请求,unittest 管理测试用例和数据。同时两个语系的测试工程都需要借助于 Jenkins 实现任务调度,完成持续化集成过程。
(2)WebUI 自动化测试
Web UI 自动化测试是需要但其助于开源框架 WebDriver 来模拟用户操作网页,同时和接口自动化测试是一样的,也存在着两个语系,Python+Unittest,Java+TestNG 来管理测试用例和数据的。当然也需要借助于 Jenkins 来完成任务调度和管理工作,实现定时调度和持续化集成。
(3) App 移动端自动化测试
移动端 App 也是一个重要的测试对象,虽然业务强调瘦客户端,胖服务端,但是也需要对移动端的 App 进行自动化测试。App 自动化测试需要借助于开源框架 Appium,常且的两个语系 Python+Unittest,Java+TestNG 来管理测试用例和数据。所有的自动化最终都需要引入到持续化集成环节中,Jenkins 也是必不可少的。
3,开发提测试阶段需要用的技术
开发人员也需要进行相关质量保证的工作,如单元测试,当然现在由于业务发展的需求,开发添加单元测试公司不多。测试人员呢,可以在开发提测试的时候,使用 jacoco 执行静态代码扫描。同时严格把关冒烟测试,开发提测时需要进行自测试,提测后测试人员也需要通过冒烟测试验证提测质量。
4,测试阶段可能使用的技术
在测试环节环境部署是必须的,Linux 相的命令,Shell 脚本的使用,服务器配置与管理等。测试过程中发现的 bug,bug 管理与跟跟踪技术及手段。我们在测试用例编写过程中开发的自动化测试,本阶段就需要引入自动化测试回归,如 Jenkins 的使用,定时任务的使用等。同时在部署环境 ,bug 定位的时候,需要进行日志排查,其他业务相关工具的使用。测试需求抽象,测试平台架构与开发等技术建设。
5,上线阶段自动发布
在测试完成,仿真环境验证没有问题的时候,就需要打包与发布上线了。有的公司是运维同学来负责的,有的是测试同学来负责的。如何通过技术手段来完成自动发布?如果需要定时发布,是否可以做到持续化集成呢?还可以通过流程管理等,来将整个测试过程流程化,按要求来进行测试,回归,上线发布等。
6,线上回归
需求上线需后,需要对线上功进行回归测试。不仅要验证本次需求是否成功上线?还需要验证本次需求是否对原有功能产生了影响。所以线上回归测试覆盖的面还是比较广的,如果全人工来进行回归的话显然是不合适的,所以自动化测试回归是此阶段必须引进的技术。
7,平时工作中测试相关技术的积累,基础设施建设
测试人员根据需求引进不同的技术,同时需要总结平时的经验,测试的诉求,遇到的问题。做好测试开发需求整理工作,根据需要抽象出需求,开发相应的测试工具,测试平台。同时做好业务梳理,用例积累,工具收集等技术相关的工作。

三,如何在测试环节中引进技术

在我们了解了在项目的各个环节都可以引入哪些技术后,必然要考虑,如何才能更好地在平时的工作中将相应的技术引入到测试环节中来呢?同时新技术的引入也是保持团队和个人不断成长的重要手段,是保持持续战斗力的源泉。
1,关注与业务相关的测试新技术
公司业务是引入测试新技术的根本,不存在抛开业务的技术提升和发展的。所以我们要关注公司的业务是什么?关键流程又有哪些儿?现在的业务有哪些公司和你们是同类产品?同类产品的公司的测试方案和技术又是如何?现在有什么技术与公司业务比较切合。虽然这些问题的答案不容易得到,但是在我们探讨这些问题,找寻答案的过程就是一种成长。
2,在需求评审确定测试方案阶段,考虑到相关的技术
需求评审是一个项目的开发,而好的开始是成功的一半。所以在需求评审时就需要考虑,功能测试可以借助于什么测试工具?测试环境搭建的时候,有什么现在的方案或是可引入什么方案?出现的问题的时候如何排查问题和过滤日志?项目后期是否需要回归测试,前期需要自动化测试的准备吗?本需求需要性能测试,安全测试吗?参与需求评审的时候,多考虑一下这方面的事情,有助于你在项目实施的时候适当引入最新技术。
3,注意不断提升自己的技术与团队的整体技术水平
在平时的工作中,要注重个人与团队的全面成长。个人方面,需要考虑一下自己现在拥有什么技术?这些技术对现在的测试工作有什么帮助?平时有没有关注测试行业的新技术?有没有制定阶段性的提升计划呢?同时如果作为管理人员,或是想走管理路线的同学,也要关注一下团队人员的组成,团队的技术水平,以及有计划地进行技术培训与分享。对团队技术发展有个整体的规划,做好团队技术积累与传承,积极向上汇报团队的技术成果,在公司进行相应的技术推广,从而得到领导的认可与支持。
4,技术人员的备份与培训
准确了解团队中的技术大牛,同时全面了解团队中各个成员的技术水平。对他们按技术进行有层次的划分,谁的技术较弱,谁是中坚力量,谁是有发展潜力的人?然后安排他们进行阶梯型的提升,根据发展情况,安排相应的工作。同时要做好关键人员的备份工作,不能把关键技术或是任务交给一个人来做,防止人员请假,流失造成技术的断层。

四,技术汇报与推广

在工作中引进和实施技术建设的时候,如何把相应的成果汇报给上级,从而得到认可和支持是非常重要的。这关系的以后的技术建设能否持续进行,从事技术工作的小伙伴的人心相背。如果你是从事管理工作,必须注重这方面的事情;如果你不是,也可以了解一下,哪些是你的关注点。
1,工作规划中明确技术所占比例,留足充分时间
技术离开了业务就成了无根之水,业务离开了技术就缺少了发展 的动力。完全不做业务,只从事技术建设的同学,最终也是做不好的,要么没有思路,要么做出的东西不适用。所以,在技术建设的时候,根据同学的能力,安排好业务和技术的比例;技术能力强,技术比重就大,技术能力弱,业务比重就大。留足合理的时间去做相应的时候,防止因压力太大产生逆反心理。
2,准确汇报工作过程中的技术贡献
在以往的工作过程中遇到过样的一种事情:在我做技术建设的时候,没有及时汇报相应的工作,造成领导以为我什么也没有做,找我去喝茶了。其实这样的事情是可以避免的,我们要做到提前向上汇报技术建设规划,及时汇报技术建设进度,同时要阶段性的展示技术建设的成果。当然,在技术建设成功后,要进行必要的邀功,默默无闻地 Coding 是不可取的。
3,适当地对技术成果进行推广
无论你是开发个测试工具,还是要架构个测试平台,前期必须考虑通用性。要解决一类问题而不是一个问题,否是你的技术建设对公司来说意义不大。不仅要解决你业务线的痛点,还要能为其他部门服务才行。当然,在小范围内使用没有问题后,可以组织会议,进行大面积的推广,提高影响力,也能争取到更多的利益。
4,对有技术贡献的同学进行认可和奖励
对那些有技术贡献的同学,要适当地进行认可和奖励。这不仅是金钱方面的,还有其他的荣誉。比如说,公司大会上的提名表扬,技术论坛的分享,当然也要接合实际,评个优秀员工,发点奖励。要让马跑的好,跑得久,仅仅通过鞭策,吆喝是不行的,还是要不断的给足草料。管理人员在自己的权力范围内,对有技术贡献的同学进行适当的奖励,这也是做管理的重要手段嘛。
5,识别并留住核心人员
很早以前就有科学技术是第一生产力,企业竞争到最后争的是人才这样的说法。对公司发展能持续输出贡献的同学是非常难得的,首先这样的人才招聘成本是非常高的,而且是可遇而不可求的。识别团队中的核心人才,使其人尽其才,同时又不能让他们感觉到不受重视,心委屈了,留住核心人才。保持团队对外有技术优势,对内有人员培训和发展的空间,这个非常重要。

五,总结

上面我们从各个方面介绍了如何在测试环节中引入技术方案,现在这个社会测试人员不会技术几乎会处处碰壁。而技术发展也会让我们的工作变得非常轻松,所以不能闭门造车,以开放的心态接受新技术,保持持续不断的学习。只有能力不断地提长,才有机会让工作更轻松,生活开心愉快的哟,这才是工作的真谛。

共收到 1 条回复 时间 点赞
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册