我是做嵌入式自动化测试的,我来回答下吧。
题主你的表达有点混乱,我挑出来三个问题:
1、希望做测试做的高大上
2、不用手工这么累
3、测试做出能看到前景。
我也做测试,虽然自以为也不很高大上
第一个问题,换个说法就是对测试职位的职业发展的思考,确实牵涉到多方面的思考,不那么简单就可以说清楚。
我就想说三个点,
第一个点,基本原则,不管做什么职位的工作,想发展更好,就要想办法做到让自己不可替代性变强。至于怎么做,你可以好好想想。
第二个点,内秀,专注于工作的细节,你是否对自己的工作了如指掌,你的工作有哪些部分构成?如果要你培养一个新人,你多长时间能培养起来和你干的一样好。
第三个点,接触问题的本质, 定义标准,支持外部。你是否能说清楚你的工作(比如产品、项目、过程的时间或者其他、KPI等等)的好与坏的判断原则以及影响面,弄一个benchmark之类的雷达图, 你能形成一套评价体系, 并且能出一份书面形式的文档让小白看了也能照猫画虎,不说做到放之四海而皆准,至少能覆盖到大多数的工作场景,你要像领域内的专家一样,可以给同事或者其他同行提供力所能及的帮助和建议。如果你能做到这个状态, 说明你对你所在领域的一揽子事项都做到了心中有数, 能理解能处理, 这个时候你就距离你所在领域的本质问题很近了. 再努努力甚至可以考虑出书总结下自己的工作积累. 关注行业的论坛等等. 和同行业的其他高手交流.
第二个问题,不用手工这么累,自动化是必须的,搞技术的人 , 其实是不分测试和开发职位的, 只有解决问题的人
There is no rules in the real word. 你有多大能力就能干多少事. 不要想着我就是一个干测试的, 不用学习代码, too yang too native. , 吃这碗饭,必须要有点追求, 不然就换个行业吧.
我说说我的心得
第一个步骤,先做到半自动化。比如你原来是纯手工测试的,你现在应当考虑把你的工作中的若干个典型的场景归纳出来,然后把这些经常要重复的过程做成一个工具,一键执行。这样你每次到这个步骤的时候,点一下就行。电源行业应该有很多仪器有GPIB接口,你可以考虑下Matlab或者Python都可以借由GPIB接口控制这些仪器,达到你的目的。
第二个步骤,当你第一步已经实现了很多子过程了,你就可以考虑实现第二个目标,把所有的过程全部归纳好,然后实现出来。这时候一个测试用例,对你来说,就是一堆积木,不同的测试,就是搭建积木的顺序不同而已。
第三个步骤,当你已经对手动测试的所有过程都了如指掌,且把各个子过程都实现了。这时候你可以考虑全自动化了。学习一个自动化,然后把自己的积木填装进框架里。然后再调试下框架,一个无人值守一键程序就出来了。
以上是整个过程的大致步骤,具体怎么做,你需要自己摸索出来。如果你从零开始,就从做个小工具开始,把工作中的一部分半自动化吧。
第三个问题,当你把第二个问题自己做出来的时候,我觉得你也许有一些答案了,我认为在解决问题的过程中,你的能力和见识都是在增长的,你能看到的前景就会不断拓展,比如实现更多的测试系统啦,对产品学习过后,对它的性能了解更深入啦,然后测试前置、测试后置,如何从根源预防bug的产生等等,测试只是一个问题,你如果把问题内的问题都做的很好了,就可以跳出问题,想想问题外的问题,这样你就可以实现更大的价值,承担更多的责任,完成更多的目标。
通用嵌入式系统测试平台(Embedded System Interface Test Studio,简称:ESITest)是针对嵌入式系统进行实时、闭环、非侵入式测试的自动化测试平台,适用于嵌入式系统在设计、仿真、开发、调试、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。
ESITest提供了针对嵌入式系统的半实物硬件在环仿真测试环境,通过模拟待测系统的外部环境并产生信号输入到待测系统,同时获取并分析待测系统的输出信号,实现针对嵌入式系统的自动化功能测试。
ESITest具有适用范围广、通用性强、自动化测试程度高、扩展性好、携带方便、配置灵活、操作简单以及使用成本低等特点,能满足军事工业、工业控制、仪器仪表、汽车电子等各领域嵌入式系统的测试与验证需求。
1.1 ESITest主要特点
² 是一套完整的针对嵌入式系统的自动化动态确认测试平台,可以实现硬件在环、非侵入式的系统级测试,完成基于实装难以完成的测试任务;
² 集成测试资源管理、测试环境描述、协议脚本开发、测试用例设计、测试执行监控、测试任务管理等功能为一体;
² 具有通用化的通信协议定义与描述语言处理环境,可以定义和描述各类结构的总线协议;
² 具有高度开放的协议模板管理接口,通过不断在测试中积累各领域的应用层协议,实现针对不同领域嵌入式系统自动化测试解决方案的快速构建;
² 提供丰富的测试监控仪表和高度灵活的协议字段绑定方法,支持收发数据字段的双向绑定,并具有表达式绑定能力;
² 集可视化窗体灵活配置的人工测试与脚本化语言高级开发的自动化测试于一体,满足初、中、高不同级别的测试需求;
² 提供测试用例脚本编辑与开发环境,通过简单的通道与协议字段赋值,便可完成测试数据的收发与测试逻辑的判断;
² 在底层实现了接口与通道管理、协议组包与解包、协议的校验、测试参数的组合等功能,测试人员只需将关注点放在测试逻辑的设计与实现上;
² 具有插件化的功能扩充能力,无论是通信协议描述还是测试用例描述,平台都提供了对插件的开发支持;
² 具有分布式的软件体系架构和计算能力,可实现从单机到多机不同规模的测试环境构建;
² 可以完成单配置项单接口、单配置项多接口以及多配置项的系统测试任务;
² 支持多种类型测试:功能测试、接口测试、边界测试、强度测试、安全性测试、恢复性测试、性能测试、敏感性测试、余量测试、容量测试、压力测试、随机测试、异常测试等。
嵌入式软件测试怎么实现自动化测试?shimo.im/docs/R13j8KEoQ9sVrNk5/
1.2 ESITest主要功能
² 支持的I/O接口类型包括:RS232、RS422、RS485、MIL-STD-1553B、CAN、TCP、UDP、AD、DA、DI、DO、ARINC429、FlexRay、SPI、I2C,并可灵活补充扩展;
² 支持对待测系统及其外围环境、接口情况等进行可视化仿真建模设计;
² 提供通讯协议描述语言(DPD语言)及其编译编辑环境;
² 支持自定义可视化数据监控界面以及实时数据监控;
² 具有测试用例脚本编辑、开发与执行能力;
² 实时记录测试数据并加时间戳自动保存;
² 提供测试数据生成、接口调试等相关工具;
² 支持测试数据管理及统计分析;
² 高精度的数据采集及数据转换;
² 可通过表格、仪表、枚举、曲线图以及状态灯等手段实时监测关键变量;
² 可按二进制、十进制、十六进制监测输入与输出的原始报文并查询过滤;
² 支持测试记录及结果的查看、测试报告自动生成;
² 测试脚本语言支持时序测试和多线程任务测试;
² 系统扩展能力强,可灵活组建大、中、小不同规模的测试环境;
² 可根据测试需求集成函数发生器与高性能示波器等测试设备。
1.3 ESITest架构
平台由软件和硬件两部分组成。软件部分主要包括测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块、各类接口设备调试软件及测试辅助软件等。硬件部分主要包括测试主机、各类接口板卡以及相关设备等。
根据不同的客户需求,平台提供USB模式(ESITest-USB)、PCI工控机模式(ESITest-PCI)与PXI机箱模式(ESITest-PXI)三种类型的架构产品。不同类型架构产品测试主机与接口板卡的形式不同。
脚本程序实现自动化测试当然可行,如下:
常用嵌入式系统软件仿真自动化黑盒测试平台
简介
通用嵌入式系统测试平台(Embedded System Interface Test Studio,简称:ETest)是针对嵌入式系统进行实时、闭环、非侵入式测试的自动化测试平台,适用于嵌入式系统在设计、仿真、开发、调试、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。
主要特点
² 是一套完整的针对嵌入式系统的自动化动态确认测试平台,可以实现硬件在环、非侵入式的系统级测试,完成基于实装难以完成的测试任务;
² 集成测试资源管理、测试环境描述、协议脚本开发、测试用例设计、测试执行监控、测试任务管理等功能为一体;
² 具有通用化的通信协议定义与描述语言处理环境,可以定义和描述各类结构的总线协议;
² 具有高度开放的协议模板管理接口,通过不断在测试中积累各领域的应用层协议,实现针对不同领域嵌入式系统自动化测试解决方案的快速构建;
² 提供丰富的测试监控仪表和高度灵活的协议字段绑定方法,支持收发数据字段的双向绑定,并具有表达式绑定能力;
² 集可视化窗体灵活配置的人工测试与脚本化语言高级开发的自动化测试于一体,满足初、中、高不同级别的测试需求;
² 提供测试用例脚本编辑与开发环境,通过简单的通道与协议字段赋值,便可完成测试数据的收发与测试逻辑的判断;
² 在底层实现了接口与通道管理、协议组包与解包、协议的校验、测试参数的组合等功能,测试人员只需将关注点放在测试逻辑的设计与实现上;
² 具有插件化的功能扩充能力,无论是通信协议描述还是测试用例描述,平台都提供了对插件的开发支持;
² 具有分布式的软件体系架构和计算能力,可实现从单机到多机不同规模
的测试环境构建;
² 可以完成单配置项单接口、单配置项多接口以及多配置项的系统测试任务;
² 支持多种类型测试:功能测试、接口测试、边界测试、强度测试、安全
性测试、恢复性测试、性能测试、敏感性测试、余量测试、容量测试、压力测试、
随机测试、异常测试等。
主要功能
² 支持的 I/O 接口类型包括:RS232、RS422、RS485、MIL-STD-1553B、CAN、 TCP、UDP、AD、DA、DI、DO、ARINC429、FlexRay、SPI、I2C,并可灵活补充扩展;
² 支持对待测系统及其外围环境、接口情况等进行可视化仿真建模设计;
² 提供通讯协议描述语言(DPD 语言)及其编译编辑环境;
² 支持自定义可视化数据监控界面以及实时数据监控;
² 具有测试用例脚本编辑、开发与执行能力;
² 实时记录测试数据并加时间戳自动保存;
² 提供测试数据生成、接口调试等相关工具;
² 支持测试数据管理及统计分析; ² 高精度的数据采集及数据转换;
² 可通过表格、仪表、枚举、曲线图以及状态灯等手段实时监测关键变量;
² 可按二进制、十进制、十六进制监测输入与输出的原始报文并查询过滤;
² 支持测试记录及结果的查看、测试报告自动生成;
² 测试脚本语言支持时序测试和多线程任务测试;
² 系统扩展能力强,可灵活组建大、中、小不同规模的测试环境;
² 可根据测试需求集成函数发生器与高性能示波器等测试设备。
价格
共享版免费,商用版本价格不详。
已剪辑自: https://my.oschina.net/u/4391746/blog/3945673
步骤 1:筛选测试用例,按照测试用例的步骤按部就班的写脚本
初步接触自动化测试,对自动化测试不熟悉,对公司产品不熟悉,对用于写自动化的工具也不熟悉的情况下,只能根据给出的测试用例对能够写测试用例的部分进行筛选,然后根据测试步骤以及测试结果来编写测试脚本。
该脚本存在很多的缺点:
1、只能检测测试用例所能测试单个点,甚至因为工具的限制不能遍历多组数据,使得测试不够充分;
2、同样步骤的用例在每一个脚本都必须重新写一遍;
3、脚本的移植性非常弱,及时能够移植也需要更改测试数据;
4、该脚本耗时耗力,编写和调试的周期很长,只适用于周期很长的项目。
步骤 2:自动化测试框架思想的形成
在编写完一个项目的测试脚本之后,对自动化测试工具以及功能模块都有了一定的熟悉,随之而来你的疑问也就来了:
1、同样步骤的脚本我是否可以提取出来作为一个框架应用在另外的脚本中?
2、同样功能的模块是不是可以提取出来作为一个框架应用在另外的脚本中?
3、是否可以利用各功能提取出来的框架,结合各个功能模块之间的逻辑编写场景测试脚本?
4、在测试过程中每一次编写测试脚本都需要更改数据,我是不是可以将自动化程序与测试的数据分开来?
步骤 3:自动化测试框架实现分析
随着上面疑问的产生,如何解决这些问题就成了重中之重。如何形成自己的框架,我觉得可行的方法主要有两种:
1、找度娘,搜索很多的测试代码,选择合适的慢慢的形成自己的代码库;
2、自己会编程语言,慢慢的挑选出能够做自动化的测试用例,自己一条条的编写基本的测试脚本,积少成多形成自己的代码库。
方式一对于不太会编程语言的人来说无疑是一种最好的方式,因为你只需要复制粘贴然后修改里面的一些简单的函数就可以应用。但是该方法也存在一定的缺点,都说别人的不一定是适合自己的,每一个人的工作环境以及需求多多少少都会有差异,所以不 一定全都使用。方式二是测试人员都希望达到的,就有一定的挑战,但是如果做到了却会让你受益非常。那么什么是自动化测试框架?自动化测试框架的就是把公共的累核函数做在一个包里为实现某个测试目的而编写的测试程序。
当前对于不同的测试以及不同的编程语言有不同的测试框架单元 JAVA 测试框架 Junit,JAVA 测试框架 TestNG,以及 python 语言对应的 Pyunit 框架以及 Robot Framework 等,以及 Web 自动化测试工具 selenium、QTP,性能自动化测试工具 loadrunner、jmeter,
接口自动化测试工具 SoapUI、postman,手机自动化测试工具 robotium、appium 等。
步骤四:自动化测试框架实现
编程语言这么多,测试框架这么多我到底选择哪一个?每个人可以根据不同的情况进行选择,由于 python 简单易学,且提供了一个比较完善的基础代码库可以让我们直接调用,当然也因为 python 比较火,因此我选择学习 python 这门语言,对应的自动化测试框架当然也就是 Pyunit 框架以及 Robot Framework 了。