想前往日本的你是否查了很多信息,却依旧觉得对于赴日IT一无所知呢?
今天,我依托于自己的例子,
向你介绍一下在日本制造业,做嵌入式软件测试工程师的工作是什么样的。
写这篇文章的目的
为什么要写这篇文章呢?
我看到一些朋友,认为在日本从事IT行业的工作,有很高的门槛,
甚至觉得自己可能无法胜任在日本的工作。
但其实,作为新人进入日本公司,从事IT行业,其实并没有那么的困难。
毕竟大家只是公司的一个螺丝钉而已。
所以,这篇文章主要是为了让想要到日本来的朋友了解一下,
我作为一个刚刚上陆日本的毕业生,进入日本工作的具体的样子。
希望这些朋友们能够看到我进入公司后,
都在处理什么样的工作内容。
如果对于赴日后的工作内容有了一些了解的话,
可能对于赴日IT的那种未知的恐慌就会少一些。
关于我
我是GAOU。我赴日十年,在制造业从事IT工作,
并已经在今年通过归化解除了在留资格的限制。
今天和你介绍的嵌入式软件测试工程师的职位,是我上陆日本时的第一份工作。
在这里,有这篇文章的视频版本。
因为博客内容有一定的重构,所以内容并不完全相同。
日本的嵌入式软件行业
首先,我们先来介绍一下日本制造业的嵌入式软件行业。
大到飞机汽车,小到一台小小的手机,
都有着嵌入式软件的身影。
嵌入式软件在日语里面被叫做「組み込みソフトウェア」。
「組み込み」正是「嵌入式」的意思,看起来都有点相似。
前一段时间,国内也炒起过一阵物联网的热潮,
想要让各种产品都能连上网络,也少不了嵌入式软件的辅助。
软件工程的定位
在我读大学的时候,计算机专业被分为三个方向,
理科的计算机科学与技术,
以及工科的网络工程,和软件工程。
网络工程对标的是网络管理员,简称网管,
听起来像是网吧的打工小哥,但其实是使用思科或者华为的交换机和路由器,
构建公司内部网络的那种工作。
软件工程对标的是软件工程师,简称程序员或者码农,
也就是通过编写代码实现应用功能的工作。
其实,软件工程的范围也十分广泛,
比如有的语言是被用来编写网站,有的是被用来编写windows上的应用程序,
有的是用来编写ios或者安卓的应用程序,有的是来编写嵌入式软件,
这些都属于软件工程的范畴之内。
嵌入式软件的使用场景
嵌入式软件,是软件工程里面的一个细分领域。
嵌入式软件在编写完成后,会经过编译成为一份烧录文件,
工程师把它烧录在一个小小的芯片上,
然后通过芯片像小章鱼一样的引脚所连接的电路板,
操作马达或者LED灯,去实现他的功能。
像是老式MP3升级固件的感觉,
我到现在也不知道老式MP3升级固件到底有什么用。
听起来没什么了不起的。
但是嵌入式软件可以操纵马达转动这一类的功能,有着很强的实用性。
比如实现空调叶片的左右风向。或者实现电动晾衣杆的自动升降。
又或者变成自动开闭的车辆侧视镜,或者按一下按钮就可以开关的电动车门,等等。
嵌入式软件使用的主要编程语言
因为嵌入式软件和硬件比较接近,所以语言也是相对原始的。
相较于现在的Python之流,
嵌入式软件还停留在汇编语言与C语言的程度。
当然在实际的编码以外,有很多其他的开发辅助的工具,
那些工具会使用很多很先进的语言。
但实际在编码上,依旧还是C语言占据主导地位。
在汽车行业里面,也有通过Matlab模型去进行编码的尝试。
但最终都会把模型以C语言的方式输出,并被编译。
使用嵌入式软件的主要行业
日本是制造业大国,自然少不了嵌入式软件工程师,
尤其是家电行业和汽车行业。
在汽车领域,这样的控制单元被叫做ECU(电子控制单元),
听说一辆汽车里面会有多大100个以上的ECU协同工作。
每一个ECU,无论多小,都承载着一份具体的功能。
这也代表着,一定会存在多家提供这样功能的供应商,来供汽车公司挑选,
也会存在专门负责这个ECU的部门,
负责开发这个ECU的开发团队,以及测试这个ECU的团队。
而这些团队, 就是你作为嵌入式软件工程师,会入职的地方。
嵌入式软件设计工程师的工作内容
与编写一次软件以后就一劳永逸的想象不同,
事实上,这些被写好的软件经常面临着被修改的风险。
甚至多到在职的员工天天加班也做不完。
不断变化的软件更新要求
软件更新的需求有很多种,
比如新车型出现所导致的微小变更,
或者是国际法规更新所制造出的新版要求,
又或者是一些单纯的功能增加或者bug修正,
都要求这些工业级的软件在指定的时间内被修改,并被测试。
因为从修改到测试都需要满足工业级的质检水平,
所以,源源不断的设计工作,测试工作,和制作能够证明一切都OK的事务性工作,
就这样无休无止的发生了。
为了达到工业级质量水平的开发流程
我曾经写过一篇推文来介绍日企IT的软件修改流程。
客户说要加功能,你大概一听,预计应该改一行。
客户花了一周写式样,在客户那review,迟了几天拿到。
你拿到式样,和上一次做比较,出比较报告。
根据比较报告做要求分析,做要求分析review写会议记录。
根据要求拿着模块图做影响调查和修改部位的特定,review写会议记录。
同时改测试用例和预期测试结果,做测试项目review写会议记录。
修改设计书,做修正前后的比较报告,review写会议记录。
更改一行代码,debug,做新旧代码变更报告,code review写会议记录。
做单体,结合,系统测试,写报告书,做测试结果review写会议记录。
把所有资料整理好,交自己的上司和更上边的领导确认,
盖章,刻成光碟,和改了一行的软件一起交给客户。
到这里,你才通过一次工业级的生产流程,以品质有保证的状态把软件交付给了客户。
从这段文字中,你可以看到,尽管实际的修改其实很少,
但为了达到工业级的水准,所有的作为证据类的文件都必须被制作和确认。
这也是工作越干越多的原因。
嵌入式软件测试工程师的工作内容
而上面的这个流程,是嵌入式软件开发工程师的工作内容。
在我刚刚上陆日本的时候,我没能成为嵌入式软件开发工程师,
而是作为嵌入式软件测试工程师,工作了三年并成为了正社员。
所以,今天我想和你介绍的,就是在这个流程中做系统测试的,
嵌入式软件测试工程师的工作内容。
当时的测试业务已经从手工测试编程自动测试了,
所以我的职位准确的来说,是汽车嵌入式软件自动测试工程师。
新手自动化测试工程师的一天
早会
当你是一位新手测试工程师的时候,
你会在早会的时候听说到自己被分配到某一个测试项目的事。
组里面一般会同时进行着不同的项目,
刚刚入职的你也一般会被放进最简单的项目组里面。
leader会告诉大家,xx设计组公布了新的一版软件,
和之前每次发布软件时一样,需要测试组来进行相应的测试。
leader已经掌握了这次的软件修改内容,
而项目组的职责就是理解设计组的修改内容,
接受软件,进行测试并向他们提出测试的结果。
理解软件组的修改内容
因为你是新人,所以自然有一位前辈会和你一起做。
准确的说我们是在给这位前辈打一打下手。
前辈会和你介绍,设计组那边的修改背景和内容,
刚刚通过N1的你可能只能听一个大概,似懂非懂。
在前辈的讲解过后,你把设计组给这边的资料
统统扔进google翻译里面,
终于知道了这软件是做什么的,这次要改什么了。
修改测试项目书,review
既然软件逻辑会发生变动,
所以作为测试工程师的你,
自然也要修改你的测试用例以适应新的软件逻辑。
但这并不需要你从0开始制作测试项目,
因为在之前,也已经有了符合质检标准的上次测试的执行结果了。
前辈会打开一个几年前的文件夹和你说,
几年前,上一版软件发布时,我们的测试用例都写在了这里。
你在他的帮助下找到了你需要修改的那一点点地方,
并在他的帮助下,和上司完成测试项目的review,听到了上司的OK。
你也需要写会议记录,来证明自己的修改符合要求,且获得了leader的承认,
字里行间应该会出一些语法错误,
你的前辈会帮你修正一下,然后存档,结束。
修改自动测试脚本
如果测试还是手工进行的话,
下一步你就应该拿着修改好的项目书去做测试了。
但因为测试已经自动化了,所以单纯的修改刚才的Excel,
并不能让测试的执行也按照你的想法改变。
你还需要改写测试用例的代码,或者说是脚本。
脚本是测试流程的描述,内容与你之前的测试项目书的记载基本是一对一的。
所以你需要根据修改好的项目书,把测试脚本也做同样的修改。
你改好之后和前辈两个人check,没问题了之后写会议记录,存档。
进行测试
软件发布了,你和前辈两个人前往测试区,
你可能会第一次看到一种叫做自动测试机的机器,
使用非常简单,
简单到把修改好的测试脚本选上,
点一个叫做 GO 的按键就可以。
在执行测试之前,你们还会刷写软件,
好把修改好的软件写入自动测试机。
写软件的感觉就和把安卓手机越狱一样,
插上数据线,选新发布的软件文件,点击download,然后进度条就会显示完成了。
用全新的软件接上自动测试机,
你点击屏幕上的那个大大的 GO 按钮,测试就开始了。
每一个测试脚本跑过之后一个个的OK就会跳出来。
突然间,一个大大的NG跳了出来,前辈会和你一起查看原因。
发现是一个小小的错误,你们一起改正,直到测试结束。
然后,你把所有的测试文件打包,
并把测试项目的Excel里面的空白栏全都填上测试完成,结果OK之后,
送交上司确认,软件测试工程师的工作就结束了。
其他更加困难的工作
当然,当你的日语水平逐渐提高之后,你会承担更多的工作,
比如对一个新的软件进行测试用例的设计,或者开始对自动测试机做一些改动。
但是在你刚刚进入日本公司的时候,
大概率还是会在熟悉业务流程的前辈照顾下一点点去进行工作的,
顺便一说,可能在你来之前,这些工作都是由你的前辈一个人完成的。
和你想象的工作内容,差距大吗?
有很多朋友会说,我对于语言没有自信,但如你所看到的,
在一家新公司里面,其实你也就是主要和两个人进行沟通,你的上司,和带你的前辈。
这样想,你会不会觉得心情轻松了一些呢?
或者,你会不会觉得嵌入式软件测试工程师,其实也没有这么难呢?
其实我们在公司里面,都是这样一个小小的螺丝钉。
以前前辈一个人就能干的工作,因为多了我们,变成了两个人干。
所以,是否能够消除对于未知的工作内容的恐惧,
对我们来说就尤为重要了。
希望这篇文章可以对你有帮助,
我也会和你聊更多关于日本工作生活的事情。
小小的宣传
关于我从中国到日本的赴日故事,
欢迎你购买我的新书。
这里面囊括了我是如何和派遣公司斗智斗勇,
最后拿到Offer,成功在毕业后上陆日本,作为派遣社员开始日本生活的过程。
感谢你的支持。
コメント