1、1软 件 测 试 技 术2【 软件测试行业是如何产生的? 】软件测试岗位的出现, “ 源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。 ” 清华大学 郑人杰 计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,对软件质量要求很高。同时一些重大事故的发生,也引发了人们对软件质量的关注。如 2002年欧洲载重 10吨的阿丽亚娜 5型火箭发射失败,最后证实是软件质量问题;还有国内的一些银行金融系统,因软件质量问题不得不暂停营业。毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试工程师目前已变的炙手可热。 3【 软件测试行业的现状 】中国
2、软件产业存在着 “ 重开发、轻测试 ” 的倾向,在造成软件产品质量问题日渐突出的同时,也突显了中国软件测试人才的极度匮乏。制约着软件整体质量的提高,同时也加重了软件产业的开发和服务成本负担。在中国一百二十多万软件从业人员中,真正能担当软件测试职责的不超过 5 万人。在软件业发达国家,软件测试人员与开发人员之比接近 1:1 ,在中国该比例仅为 1:8 左右,很多企业没有专门的测试职位。随着中国加入 WTO 后,相信不久的将来,国内软件测试人员与开发人员的比例将会达到甚至超出 1:1 。 4为了同国际 IT 行业接轨,软件测试行业近几年有了飞速的发展,以前人们认为的 “ 重开发、轻测试 ” 倾向有
3、了很大的改观,测试人员的缺口也越来越大,下面这个图标分析了近四年国内软件测试人才的需求 。5【 软件测试前景如何? 】随着中国软件市场的发展,越来越多的国外资金投向中国软件行业。据报道,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇 “ 瓶颈 ” 。国家为了大力培养软件人才,不断采取积极有效的措施。软件测试就业市场行情也十分乐观,最近,在北京的一次 IT人才招聘会上,有 20多家软件企业亮出底薪 8000元招软件测试工程师的诱人广告。6【 软件测试是青春饭吗? 】软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄
4、没有限制。而且随着项目经验的不断增长和对行业背景的深入了解,会越老越吃香。软件测试员的一生如同一名医生的一生,随着职业阅历和临床经验的丰富累积,到一定的年龄他们通过 “ 望闻问切 ” 就能知道毛病出在什么地方。因此,有人说软件测试员和医生是最不需要用 “ 青春 ” 来保证和延续自己职业寿命的职业。 由于软件测试人才更强调经验积累,在几年的测试经验背景下,可以逐步转向管理或者资深测试工程师,担当测试经理或者QA部门主管,所以职业寿命更长; 另一方面,由于国内软件测试工程师人才奇缺,并且一般只有大中型企业才会单独设立软件测试部门,所以很有保障,待遇普遍较高。 7软件测试工程师的进阶之路初级测试工程
5、师测试工程师 /程序分析员高级测试工程师 /程序分析员测试组负责人测试 /编程负责人测试 /质量保证 /开发(项目)经理计划经理软件测试人员的三大发展方向一是走软件测试的技术路线,成长为高级软件测试工程师。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。三是可以换职业,做项目管理或做开发人员。具有 1 2年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期领导工作。拓展编程语言、操作系统、网络与数据库技能。刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术。 具有 3 4年经验的测试工程师或程序员。帮助开
6、发或维护测试或编程标准与过程,负责同级的评审,并为其他初级的测试工程师或程序员充当顾问。 具有 4 6年经验的测试工程师或程序员。负责管理 1至 3名测试工程师或程序员。担负一些进度安排和工作规模 /成本估算职责。具有 6 10年经验的测试工程师或程序员。负责管理 8至 10名技术人员。负责进度安排、工作规模 /成本估算、按进度表和预算目标交付产品。 具有 10多年的工作经验。管理 8名或更多的人员参加的 1个或多个项目。负责这一领域(测试 /质量保证 /开发)内的整个开发生存周期业务。 具有 15年以上开发与支持(测试 /质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。
7、负责把握项目方向与盈亏责任。8第一章 软件测试基础知识 1.1关于软件测试课程 1.2 软件开发过程 1.3 软件质量保证 1.4 理解软件测试 1.5 软件测试的分类 1.6 软件测试工作流程 1.7 软件测试的职业要求9 编程大师说: “ 任何一个程序,无论它多么小,总存在着错误。 ” 初学者不相信大师的话,他问: “ 如果一个程序小得只执行一个简单的功能,那会怎样? ” “ 这样的一个程序没有意义, ” 大师说, “ 但如果这样的程序存在的话,操作系统没有意义最后将失效,产生一个错误。 ” 但初学者不满足,他问: “ 如果操作系统不失效,那么会怎样? ” “ 没有不失效的操作系统, ” 大师说, “ 但如果这样的操作系统存在的话,硬件最后将失效,产生一个错误。 ” 初学者仍不满足,再问: “ 如果硬件不失效,那么会怎样? ” 大师长叹一声道: “ 没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。 ”没有错误的程序世间难求没有错误的程序世间难求101.1 关于软件测试课程有关测试的思考题: 软件测试是一门非常重要的学科,主要研究内容是什么? 软件测试需要什么样的专业基础? 软件质量到底是什么? 测试的目标是什么? 开发一个测试系统之前你是否明白 : 测试什么?怎么测试?测试效果如何?