本帖最后由 h68810115 于 2022-5-9 15:56 编辑
快活无压力的日子是非常短暂的,所在的无线产品正处于商用发布前夕,开发测试的工作量非常大,自然就非常缺人手。 无线产品 无线是中研部下面成立比较早的业务部之一,前身是在94年由10多个技术人员组成的ETS项目组,那时程控交换机可能刚刚完成万门机的研发。ETS 450是450M 模拟的接入系统,通过控制器连接到程控交换机,用户端使用的是固定台,这是无线最初的产品,积累了最早的无线技术。 之后华为应该还开发过DECT产品,但未上市,CT2好像是研究过,但好像没正式开发。我进入职的时候,GSM已经在1997年打通了样机的电话,1998年正处于商用产品开发及开实验局的前夕。我入职的时候无线好像有4,5百人,具体数字不太清楚,毕竟当时是一个基层小兵,无线主要研发力量是在GSM系列产品的研发上。 GSM产品还是比较复杂的,当时分了BTS(基站),BSC(基站控制器),MSC(移动),VLR(访问位置寄存器),HLR(归属位置寄存器)等几个产品。基站是全新的产品,也是技术复杂度最大,销量也是最大的一个产品,其他产品都是销售单价高,但数量比较少,比如,最早用户数不太多的时候,HLR一个城市可能就1,2个。华为的BSC,MSC及HLR都用了程控交换机作为基础平台,增加相应的单板,实现移动产品功能。最土的是VLR,在最初的产品中,VLR是两台互为备份的工控机,体积过大,在下一个版本中很快用两块单板实现了。 我是分在测试部BSC组,BSC也分很多功能模块,比如呼叫,资源管理,A接口,基站管理等,作为新员工,自然是跟着导师的,当时正好开始单模块BSC 2.2版本的优化开发,我就是从基站管理开始干起,负责基站启动过程及告警部分的测试。 测试的定位 部门领导在我们进部门之后2个礼拜左右的时候和近一段时间入职的新员工座谈,座谈的核心自然是职业发展的问题。 华为的发展虽然是所有员工发展的前提,但对测试员工来说,相比开发还有一个发展空间和路径问题。当时各业务部门都分为多个产品开发部,每个开发部下面再细分项目组,对对员工来说,从基层员工向上,可以做项目经理,开发部长,产品经理等,发展路径是很清晰的,也会更多的新版本,新项目,新产品的机会。但对测试员工来说,每一个产品对应一个测试组,在单个产品领域内版本项目都由测试经理管理,每个业务领域,比如无线,智能网对应一个实体的测试部门,所有的测试部门都是垂直管理,和开发团队人员基本没流动。虽然不是我们新员工所需要担心的,但同事之间总会交流,天花板肯定是话题之一。 领导和我们沟通的角度的核心观点也不复杂,物以稀为贵。领导说,大家不要觉得分到测试部发展空间受限,测试反而是有更大的可作为空间。全中国做开发的人员多的是,但测试很多是开发人员自己做的,专职做测试的非常少,专职做软件测试的就更少了,全中国加起来都不超过500人。领导还说,他也参与过国内的一些测试行业的研讨会,国内测试理论及方法论方面还处于非常原始的阶段,在测试技术及效率方面有非常大的提升空间。
经典测试流程 当然,领导说的也是实际情况,当时在国内软件行业,无论是开发还是测试,都还处于比较低的水准,大型复杂软件不多,能够听到的都是传奇人物传奇的开发经历,测试领域的积累就更少了,一般软件都是开发人员自己做一些测试,有问题直接修改。测试理论,方法和工具都还在探索和起步阶段。当时我们所知道的测试理论无非是测试分为单元测试,集成测试和系统测试,我印象中关于单元测试是不是测试部的工作范围都争论了半年,当然,最后的结论是不做。 华为产品的延续性是比较强的,产品是要达到一定标准(后来定的)才能发布,测试用例管理自然也就成为一个挑战,既要有基本功能覆盖,又要有版本或补丁的针对性。测试的效率也是一个很大的问题,我们刚刚开始的时候,全部都是手工测试,通过更改数据配置,有针对性的创造功能触发场景所需要的条件,因此每天最多也只能完成几个或10多个测试用例。所有测试人员都是在设备旁边做测试,以便调整硬件配置及数据,测试工作环境是比较差的。 华为后来在测试理论,测试方法及测试工具上投入非常大,20年之后我曾经参观过一次测试实验室,测试设备都是集中一个大的实验室,测试人员是在外面专门的测试工作间,测试的自动化率已经非常高,据说已经达到80%,所有的测试用例都集中管理,测试进度也是一目了然。有各种测试仪器测试工具能够自动化模拟测试环境,从而大大提升测试效率。理论和技术的领先也给兄弟创造了机会,前几年也有原来一个部门的兄弟,测试专家,出去创业,专业做测试,现在已经走上了正轨了。 最开始的工作 从第二周还是第三周开始,就在导师的带领之下开始干活了,从基站管理的启动及告警开始。 测试也是先了解业务,听了两次他们设计的讨论,大部分是听不懂的,看了他们的概要设计方案,也只能说有所了解。那时华为的文档要求还不高,详细设计虽然有,但并不是很严格,也不是所有模块都会输出。我负责基站启动及告警是最简单的模块,流程倒不复杂,和开发人员问了两次就基本清楚了。 导师又给我了一份其他人写的测试用例文档,让我参照着写测试用例规划及详细的测试用例,写完之后导师再指导我修改。那时测试部还在讨论单元测试是不是测试部责任的讨论之中,没有结论之前我们小组还是做了单元测试和集成测试的计划。具体有没有发现问题不记得了,反正最初的单元测试和集成测试是要写测试代码打桩的,是华为20多年的工作生涯里为数不多的要写代码的。 进阶版学习 在基本工作之外,作为新员工,最大的任务就是学习,主要是两个方向:产品和业务知识,产品的数据配置。 先说数据配置。数据配置是华为内部的一种叫法,一个产品要跑起来,需要配置非常多的数据,比如有几个机框,每个机框各槽位上有几块单板,机框之间的单板逻辑关系是咋样的,各单板上还有各种运行参数,对下接的基站是哪块单板的哪个端口,基站里面的单板配置是什么样,对上接MSC是哪个机框哪块单板的第几端口,和MSC信令对接的参数是什么,BSC配置哪个几个小区,小区参数是什么,各种切换算法的参数又是什么。总之,数据配置是非常多的,所有的参数加起来可能有上千个,现在可能更多。当然,这里面也有一些是习惯性的默认配置,只要和硬件对应上就可以。
这个界面只是BSC无数张表的一部分
测试最基本的要求就是对产品的数据配置要熟悉,能够通过不同的参数设置创造出能够验证产品功能特性的触发条件。所以进来没多久,部门一个老员工就带着我们几个新员工到实验室,先由他讲数据配置的基本方法,然后我们自己练习,目标是自己独立把一个控制器配置起来跑通,当然,主要是针对核心的参数,一些暂时不涉及的一些算法参数是不影响跑通的。这是非常挑战的,在老员工的带领和指导之下,基本上也算配通了。这个起到的核心作用就是让我们能够了解BSC的配置里面到底有些什么,之后再碰到问题就比较好解决了。 再说产品和业务的学习。学习的方法无非几条,最基础的是看培训文档,看资料,其次参加各类的培训,再进阶的,就是自己去看代码,看协议。看书看资料是最直接的,有些写得好,但大多数写得不太好,脉络和重点是不突出的,虽然最初的2,3个月一直在看,在学,也看协议,也看代码,但总觉得没啥方向感,对产品总体架构理解不深入。
|