测试开发工程师主要是做什么的呢。工程师是一个比较宽泛的称呼,比如软件工程师、硬件工程师、网络工程师、前端工程师等等,往往工程师岗位的工作内容更偏向于实施,研发工程师的工作范围还是挺广的,其工作流程也是很长的,可以说是贯穿新产品开发的整个过程,包括技术可行性分析、成本分析、专利分析、产品功能实现、产品结构设计、手板(快速成型)制作、功能样机测试实验、模具设计、模具制造、工程试产、工艺试产、小批量生产,产品验证、产品安规认证、大批量生产等等,可以说整个开发过程都是由研发工程师主导的,在很多公司里,研发工程师既要做产品设计、也要做项目管理,是一个对综合能力要求比较高的岗位。
1、什么是软件开发工程师?
软件工程师(SoftwareEngineer),是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称,通常人们会和程序员(英文Programmer)产生混淆,但其实是两种不同的性质。程序员是从事程序开发、维护的专业人员,一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。
2、互联网开发测试工程师是个什么职位?
除了BAT,很多大公司都有测试开发工程师的位置,有时候这种团队会叫EP(EngineeringProductivity),在谷歌,其EP团队人数达到了四位数,那么测试开发工程师主要是做什么的呢。从名字上就能看出,这个位置与测试和开发都有关系,用一句话来概括,测试开发工程师就是为开发以及测试人员开发工具,从而提高测试人员效率,提高开发人员代码效率的人。
具体以APP测试来说,很多测试人员的工作方式是人工去测试或者自己搭建appium环境写脚本去测试,但是这样的方法有4个弊端:1人工测试效率低,且难以回溯。如果人为测试的时候,发现了问题,通常需要记录执行步骤,但是你可以想象,如果人操作手机的时候,点的每个动作都人工记录的话,那一整天下来,可能也就能测试三四个场景,这个效率可以说相当的低,是绝对不被允许的,
2人工测试覆盖率低。这个很容易理解,假设一个页面有N个控件或者activity,人工测试很难设计出全部覆盖到的测试路径,因此就会有漏测从而出现bug没捕捉到的风险,3appium环境搭建需要成本,且脚本重用率低。appium这个家伙动辄就上G,说句实在话,我是不愿意装的,除了回归测试,验证旧功能不受影响外,新功能上线如果由测试人员自己写脚本的话,很多一次性的脚本写完测完就会被浪费掉。
4测试人员需要每人一个手机,而测试工作不是24小时进行的,会导致设备资源的浪费,每个测试人员在工作的时候,都需要有一台测试设备,但是他们下班后,这些设备就被锁抽屉里,这个时间原本可以继续用来跑测试的,但是就这样浪费掉了。基于以上这样的场景,测试开发人员就可以登场了,测试开发人员可以研制出一套自动化测试的工具,只需要测试人员把apk或者ipa包上传,选择不同的测试方式,就能够自动化的手动触发或者定时触发任务。
这样做的好处一方面节约了测试人员的人力,解决了上面的弊端1和2,另一方面也不需要他们自己搭建环境写脚本(弊端3),最重要的是,他们设计并拥有自己的移动设备管理集群,相当于集中了测试人员的测试机,通过自动化的方式,可以让这些设备7*24小时的运行任务,最大化的榨取设备采购的利益(弊端4),上面这个例子里的服务就是为了测试人员提供,用来提高效率的,因此做这类工作的程序员,就被称为测试开发工程师。
3、工程师、程序员、码农有什么区别?
作为一名从业多年的IT人,我来说说我对这几个概念的理解,工程师是一个比较宽泛的称呼,比如软件工程师、硬件工程师、网络工程师、前端工程师等等,往往工程师岗位的工作内容更偏向于实施。比如我们研究所里有研究员职称体系,也有工程师职称体系,一般从事实施任务的技术人员走的都是工程师职称体系,工程师体系以项目实施情况作为重要考核标准,而研究体系则更多的看研究成果的技术含量、论文质量等等内容。
程序员则是对专注于程序设计工作岗位的一种称呼,程序员的岗位细分也非常多,有后端程序员、前端程序员、嵌入式程序员、移动端程序员(Android、iOS)等,程序员通常分为应用级程序员和研发级程序员,应用级程序员主要的工作内容是做业务功能实现,而研发级程序员往往解决的是系统级问题。简单的说,应用级程序员往往是调用研发级程序员的功能模块来解决业务问题。
文章TAG: