《软件测试技术实战:设计、工具及管理》作者的IT工作生涯

举报
xenia 发表于 2019/12/15 14:44:18 2019/12/15
【摘要】 顾翔,毕业于北京工业大学,毕业后即从事软件开发,2002年开始从事软件测试工作,曾经在各大知名的互联网公司、嵌入式软件公司、通信公司和网络管理软件公司等担任软件测试工程师、软件测试经理等职务,积累了丰富的软件测试知识和实践经验。现专职从事软件开发与测试、大数据及云计算相关的培训工作,是中关村智联软件服务业质量创新联盟成员,被北京软件和信息服务业协会、北京课通天下、上海宇谷培训公司、上海知言网...

顾翔,毕业于北京工业大学,毕业后即从事软件开发,2002年开始从事软件测试工作,曾经在各大知名的互联网公司、嵌入式软件公司、通信公司和网络管理软件公司等担任软件测试工程师、软件测试经理等职务,积累了丰富的软件测试知识和实践经验。现专职从事软件开发与测试、大数据及云计算相关的培训工作,是中关村智联软件服务业质量创新联盟成员,被北京软件和信息服务业协会、北京课通天下、上海宇谷培训公司、上海知言网络科技有限公司和中睿信息技术有限公司聘为高级资深讲师。2014年,接受51测试网的专访:《51Testing专访顾翔—解读开发转测试的趣味人生》,并且在51testing发布了一系列个人专刊,如《测试专刊-顾翔与你一起漫谈测试》和《测试专刊-白云群中话计算》等。

1997年我毕业之后,中国互联网在中国刚刚开始,我非常荣幸地进入一家互联网公司从事互联网网站开发工作。那个时代的互联网网站基本上全是静态页面,我是用一款叫Hotdog的工具来制作网页的。这是一件非常麻烦的事情。并且Hotdog这个工具会产生很多不必要的代码,由于当时还是手工拨号上网的方式,只要有一些乱码就会给网页的载入性能带来很大的影响,所以每次用Hotdog生成代码后我还要花费很大的精力把这些多余的代码给删除掉。这是我毕业之后第一次意识到性能在软件中的重要性。

后来得知微软公司发明了一种ASP技术,ASP技术使用VBScript的语言,可以把数据先存在数据库中,然后再用动态的方式把数据调用出来,然后通过HTML语言把它显示在WEB界面上来。为了让我们掌握这门技术(当时已经有3名开发工程师了),老板从深圳,当时在“深圳热线”网站工作的一位女工程师来我们公司进行指导工作,教我们使用ASP技术。这位老师姓余,我一直叫她余老师(可惜后来失去了联系)。余老师为人和善、幽默,我从她身上学了很多东西,也就是从这以后我就开始了真正意义上的互联网开发工作了。给我印象最深的是刚从事网站开发的时候我没有对任何异常情况进行处理,比如:数据库连接出现问题,链接的页面没有找到…,通过余老师的指点,我才意识到原来软件代码不仅仅要处理正确的流程,并且需要书写许多代码来处理各种特殊情况。

后来随着技术的发展我们的WEB服务不使用微软的IIS,从而改用了Tomcat、JBoss和BEA的WebLogic,操作系统也换到了Linux平台上,开发语言也被PHP、Perl和J2EE技术来代替。在这期间给我印象最深的有两件事:一件事是我在本书前言提到的与CCTV合作从事“开心辞典”网上答题栏目故事;另外一件事情是我在书中案例5-11提到的巧妙利用Oracle内置字段rowid来提高页面翻页速度问题。这次是我再一次理解的软件性能的重要性以及什么是软件安全性测试。

在2001年底我们公司是没有测试部门的,我们开发出来的产品主要靠自测和开发人员的交叉测试来保证质量的,而每次交叉测试我经常是发现缺陷最多的,并且我觉得测试比开发好玩,不枯燥,另外我感觉找Bug就像寻宝,兴趣就这样产生了。2001年9月公司准备成立测试部门,请外面的老师给我们进行了为期一天的培训,这一天的培训给我留下了深刻的印象,让我第一次知道回归性测试、软件可靠性、缺陷的杀虫剂现象等测试名词,后来我主动报名进入了测试部门。

我的测试之路就这样开始了。后来由于互联网泡沫的问题影响到我们公司,我也回到江苏、上海一带,先后在中兴通信公司南京分公司,蓝信软件有限公司和爱立信中国通信有限公司从事软件测试工作。虽然这些公司都不是互联网公司,但是前五年的开发经验给我带来了很好的基础,我了解了如何开发软件,软件什么地方容易出错。

中兴通信公司最大的特色在前三个月,其他公司前三个月为试用期,中兴通信公司前三个月为培训期。每五个新员工安排一个导师,导师会定期发给你一些文档和标准,一周安排一个小时的答疑。文档主要以通信业务知识为主,辅助一些测试知识。一个月后,就进行专业分组,分为语音通话,彩信,补充业务(呼叫转移,呼叫等待),分组业务等几个方面,由于我以前在互联网公司工作过,自然被派遣到分组业务组,也就是现在比较火热的通过无线通信上互联网业务。三个月过后,就是让人紧张的论文答辩,通过论文答辩来决定你是否留在中兴通信公司或者离开,并且录取率控制在三分之一内。很幸运,通过努力,我最后被录取了。当时中兴通信公司终端产品在深圳总公司生产;南京分公司生产核心网设备,比如电信交换机;上海分公司生产基站设备。当时让公司领导最头疼的事是:核心设备,基站设备,终端设备在各个分公司测试都没问题,而一开始使用,这样中设备集成在一起就发生了故障。于是公司专门成立了系统集成测试部门,我也就被分配到这个部门了。由于这个部门的工作性质,决定了出差是经常的事情,而且出差经常需要好几个月。我主要从事核心设备与基站,终端设备的集成测试,有时候也要根据通信公司的具体情况与其他公司的产品进行集成测试,比如华为、爱立信、大唐、阿尔卡特。由于在外地测试,一旦发现Bug,不能简简单单的报告个错误现象,而且要把对应的log日志获取出来,进行分析,给出大概问题的原因,便于开发定位解决。这个时候我体会到了前三个月的学习时非常有用了,也意识到了业务专业知识对于测试是多么地重要,同时我发现真正意义上的测试并不比开发省力,也是一个技术量很高的职业。由于连续的出差,而且每周的工作量经常在五十甚至六十多个小时,身体真的吃不消,一年后我离开了中兴通信公司,来到了出生的城市---上海。(虽然在中兴通信公司的工作非常累,但是还是真正学到了许多测试知识和方法)

来到上海后我进入蓝信软件有限公司,由于面试非常出色,我拿到了测试组组长的职位(后来随着公司的庞大,成了测试部部门经理)。蓝信软件有限公司是意法半导体有限公司(ST)的合资公司,又与上海交大有着很好的合作关系。我们的主要工作是利用意法半导体有限公司生产的机顶盒硬件产品上面开发软件系统。我的老板是当时从法国回来的博士生,姓廖,我们都尊称廖博士,他曾经参与欧洲数字电视中间件DVB标准的制定,成立这家公司的目的除了开发产品,还要为国家制定中国数字电视机顶盒中间件标准,因为他认为DVB标准有许多重复的部分和不合理部分,作为测试组长我也帮助他一起制定标准中测试部分。蓝信软件有限公司的产品是嵌入式软件。嵌入式软件的测试我一直认为是最麻烦的测试产品,因为它不像WEB系统,看不见,摸不着,只有到最后可以在仿真器或者目标机中才可以看见。在产品开发初期我们主要通过比较严格的单元测试与集成测试为主。单元测试包括白盒测试与黑盒测试两种。黑盒测试除了验证正常功能外,还要输入一些错误输入,来检测函数是否对异常情况来进行处理,比如输入错误的音频文件,甚至是空音频文件;白盒测试主要设计一些测试数据来得到一定的覆盖率。集成测试我们主要采用三明治集成法。单元测试与集成测试结束我们就进入了系统测试,系统测试首先在软件仿真机上测试然后再烧到机顶盒中硬件中进行测试。期间发生了我在本书前言中提到的元旦送礼的故事。这让我一直在考虑如何在有效的时间内做好软件测试工作。也就是前年,我接触了基于风险的软件测试后,才给了我一个比较满意的答案。在蓝信公司中我们不仅从事软件测试工作,同时也从事质量保证的工作,书写公司开发与测试流程规范,开发代码规范并且监督各个小组的执行,使我也学到了不少质量保证的知识。

2011年我进入了爱立信(中国)通信有限公司上海分公司从事IPWORKS产品的测试(包括电信级别的DNS、DHCP和AAA: Authentication,Authorization & Account)。在爱立信功能测试是用TTCN进行的,这也是我第一次接触到用测试代码来进行系统级别的功能测试。TTCN很好学,特别像C,并且底层由西班牙专门负责测试工具部门进行了封装,我们只需要调用他们提供的上层API就可以了。用测试代码来进行系统级别的功能测试优点在于回归测试,爱立信从2010年开始采用Agile开发模式,不断的需要发行新的版本,自动化测试在回归测试中扮演了非常重要的角色,以至于后来采用持续集成技术(CI),自动化功能测试优势得到了更好的体现。但是我认为自动化测试有优点,也有缺点,正如我本书第7.2节分析的那样。在爱立信,性能测试也是非常重要的,由于产品的特殊性,我们的测试工具是专门由测试工具开发小组开发出来的。性能测试主要分为负载测试与压力测试,这两种测试的方法我会在本书5.1进行介绍。


本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF944630000152F7174015301BC7



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。