软件测试发展的历史及软件测试的现状?
软件测试的发展历史(转). 20世纪60年代(软件工程建立前),为表明程序正确而进行测试。
. 1972年在北卡罗来纳大学举行了首届软件测试正式会议。
. 1975年John Good Enough和Susan Gerhart在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。
. 1979年,Glenford Myers的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。
. 20世纪80年代早期,“质量”的号角开始吹响。
软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。
制定了各类标准。
. 1983年,Bill Hetzel在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。
. 20世纪90年代,测试工具盛行起来。
. 1996年提出的测试能力成熟度TCMM(Testing Capability Maturity Model)、测试支持度TSM(Testability Support Model)、测试成熟度TMM(Testing Maturity Model)。
. 到了2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程
软件测试行业的CMM是指什么?
CMM基本概念:CMM由低至高共分为5个级别:初始级、可重复级、定义级、管理级和优化级CMMI(Capability Maturity Model Integration,能力成熟度模型集成)将各种能力成熟度模型,即:Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM,整合到同一架构中去,由此建立起包括软件工程、系统工程和软件采购等在内的诸模型的集成,以解决除软件开发以外的软件系统工程和软件采购工作中的迫切需求。
CMMI框架包括软件能力成熟度模型CMM 2.0草案,系统工程能力成熟度模型,软件采购能力成熟度模型,继承产品和过程开发等。
CMMI的:“关键过程域”25个,“目标”105个, “关键实践”485条。
CMMI的评估方式:自我评估:用于本企业领导层评价公司自身的软件能力。
主任评估:使本企业领导层评价公司自身的软件能力,向外宣布自己企业的软件能力CMMI的评估类型:软件组织的关于具体的软件过程能力的评估。
软件组织整体软件能力的评估(软件能力成熟度等级评估)。
CMMI的基本思想1、解决软件项目过程改进难度增大问题2、实现软件工程的并行与多学科组合3、实现过程改进的最佳效益背景介绍: CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用,SEI同时建立了主任评估师评估制度,CMM的评估方法为CBA-IPI。
CMMI是SEI于2000年发布的CMM的新版本。
CMMI不但包括了软件开发过程改进,还包含系统集成、软硬件采购等方面的过程改进内容。
CMMI纠正了CMM存在的一些缺点,使其更加适用企业的过程改进实施。
CMMI适用SCAMPI评估方法。
需要注意的是,SEI没有废除CMM模型,只是停止了CMM评估方法:CBA-IPI。
现在如要进行CMM评估,需使用SCAMPI方法。
但CMMI模型最终代替CMM模型的趋势不可避免。
标准特点: CMM/CMMI/SPCA的思想来源于已有多年历史的产品质量管理和全面质量管理。
Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。
SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。
软件能力成熟度模型中融合了全面质量管理的思想,以不断进化的层次定量控制中项目管理和项目工程的基本原则。
CMM/CMMI/SPCA所依据的想法是只要不断地对企业的工程过程的基础结构和实践进行管理和改进,就可以克服软硬件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件产品。
CMM简介CMM(Capability Maturity Model)是能力成熟度模型的缩写,CMM是国际公认的对软件公司进行成熟度等级认证的重要标准。
CMM的工作最早开始于86年11月,当时为满足美国政府评估软件供应商能力并帮助其改善软件质量的要求,由美国国防部资助的卡内基—梅隆大学的软件工作研究所(SEI)牵头,在Mitre公司协助下,于87年9月发布了一份能力成熟度框架(Capability Maturity Framework)以及一套成熟度问卷(Maturity Questionnaire)。
四年后,SEI在总结自87年以来对成熟度框架和初版成熟度问卷的经验基础上,推出了CMM1.0版。
CMM1?0版在成熟度框架的基础上建立了一个可用的模型,该模型可以更加有效地帮助软件公司建立和实施过程改进计划。
两年后,SEI于93年推出了CMM1.1版。
近几年,SEI又推出了CMM2.0版,同时进入了ISO体系,称为ISO/IEC15504(软件过程评估)。
CMM共分五级。
在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。
每一较低级别是达到较高级别的基础。
其中五级是最高级,即优化级,达到该级的软件公司过程可自发地不断改进,防止同类问题二次出现;四级称为已管理级,达到该级的软件公司已实现过程的定量化;三级为已定义级,即过程实现标准化;二级为可重复级,达到该级的软件公司过程已制度化,有纪律,可重复;一级为初始级,过程无序,进度、预算、功能和质量等方面不可预测。
CMM致力于软件开发过程的管理和工程能力的提高与评估。
该模型在美国和北美地区已得到广泛应用,同时越来越多的欧洲和亚洲等国家的软件公司正积极采纳CMM,CMM实际上已成为软件开发过程改进与评估事实上的工业标准。
如今,全球通过CMM五级评估的软件公司大约有十几家,三级以上的大约有100余家,通过二级评估的有300家左右。
软件大国印度在这方面工作开展的比较广泛,受益匪浅。
目前,我国只有清华同方和IBM的合资公司——鼎新信息开发有限公司于99年7月通过CMM二级评估,该公司表示将争取早日通过CMM三级评估。
CMM与ISO9000的主要区别:1.CMM是专门针对软件产品开发和服务的,而ISO9000涉及的范围则相当宽。
2.CMM强调软件开发过程的成熟度,即过程的不断改进和提高。
而ISO9000则强调可接收的质量体系的最低标准。
引...
学习软件测试未来的职业发展怎么样?
1 、就业竞争小软件测试工程师目前正在成为IT行业中一个新亮点,不仅其从业人员薪水高、人员需求增加快而广受关注,而该行业未来良好的发展前景也受到肯定。
据国家权威部门统计,中国软件人才缺口中,其中30%的人才为软件测试人才。
软件测试作为软件质量把关的重要环节,已经愈来愈引起国内软件企业的关注,致使软件测试人才的需求升温,但是,由于我国企业对于软件测试技术在整个软件行业中的重要作用认识较晚,因此,这方面的专业技术人员在国内还是凤毛麟角,人才供需之间的缺口超过20万,这已成为影响中国软件产业发展的瓶颈。
据招聘网站51job数据显示,软件测试工程师将成为2018年最紧缺的人才,该类职位的需求主要集中在沿海发达城市,其中北京、上海的需求量分别占33%和29%。
同一时间中华英才网发布了最新一期的IT职场人气排行榜,IT人才仍是企业需求量最大的人群,作为软件开发流程中的重要一环,软件测试岗位渐渐“浮出水面”,并凭借其庞大的人才需求和广阔的职场发展前景日渐成为IT职场就业的大热门。
2 、职业发展方向由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后的等领域都要涉及。
在这过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,项目管理、沟通协调、市场需求分析等能力都能得到很好的锻炼,从而为自己的多元化发展奠定了基础。
经过软件测试岗位洗礼的人才往往是行业中的多面手,比其它IT人才具有更强的可塑性,在技术、管理、市场甚至其它非IT领域都能得到良好的发展。
3 、越老越吃香软件测试员的一生如同一名医生的一生,随着职业阅历和临床经验的丰富累积,到一定的年龄他们通过“望闻问切”就能知道毛病出在什么地方。
因此,有人说软件测试员和医生是最不需要用“青春”来保证和延续自己职业寿命的职业。
软件测试工程师地位‘翻天覆地’的变化,源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。
”。
一方面,计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通、航天等,他们对软件质量要求很高。
同时一些重大事故的发生,也引发了人们对软件质量的关注。
毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试工程师目前已变得非常抢手。
4 、高薪没商量软件测试工程师作为软件质量的把关者,其职能在于保证交付到客户手中的软件可靠好用,运行畅通无阻。
从产品定义到产品开发再到产品维护,都离不了软件测试。
但由于软件测试的重要性是近两年才被充分认识到的,高校教育和企业培养都还没有跟上,致使软件测试人才严重供不应求,出现跑步上岗、快速提升的状态,薪资也逐步走高,优秀的软件测试人才年薪可达十万,甚至二、三十万或更高。
如何提高软件测试水平
首当其冲要解决软件测试队伍的问题。
某著名国际软件企业的软件测试人员与软件开发人员的比率达到了3:5左右,并且在实践过程已经证明了这种人员结构的合理性。
但国内公司显然一时很难达到,但更重要的是重视程度,在这个基础上壮大软件测试队伍,提高测试人员的素质。
其次是要学习借鉴国外完善的测试机制,包括丰富的软件测试经验,强大的测试工具,优秀的测试管理水平。
真正解决测试手段落后、测试方法单一和测试工具欠缺的问题,在企业内部形成一个严密有效的纠错系统,使国内的测试工作流程、 技术水平接近国外先进水平,这样才能提高国内软件开发与测试的整体管理水平,增加软件产品的竞争力。
此外,要重视第三方的测试力量。
第三方的专业测试企业是靠技术与服务来赢得客户信任的,也因此更加注重测试方法与质量。
对于软件企业来说,从无到有地去建立测试部门,并完善测试体系,需要较大投入,将研发出来的软件产品交给实力强劲的第三方专业测试公司,在提高软件产品的质量问题同时,还节约了产品测试成本。
为什么选择软件测试开发
坦白的讲,刚开始我也不知道。
但现在有一些感触,觉得有必要将“软件测试”继续下去。
先说说软件测试的现状吧! 很多公司都会招聘大专生来做测试,测试工作门槛低,谁都能做。
测试工作,就是别人把软件创造出来后,用一下;或者别人写完代码后,将东西扔过来验证一下,测试人员就是帮着开发人员打打下手。
测试工作做好做坏,没有人关心,或者测试人员到底做什么,也没有人关心。
这就是国内大部分公司的现状,也许有些公司说测试要保证产品质量,测试人员很重要。
只是口头上说说而已,而从实际行动上,当然是开发第一,测试第n。
实际行动有哪些?很多:待遇、测试人员的来源、培训的机会、工作的分工、多方矛盾的化解,等等。
为什么会出现这种现象? 原因之一:软件产品成熟度的问题。
记得产品的竞争力分为多个层次:人无我有、人有我优、人优我廉、人廉我转。
先保证产品存在,然后谈产品的质量,质量好价格低的产品更畅销,质量好、价格低、服务好是用户追求的目标。
以前的软件大多属于形象工程,有就行了。
现在越来越多的软件用起来了,质量自然提上了日程。
怎无奈,花钱的客户不是使用产品的用户,客户不懂产品质量,但他懂价格,导致的问题就是让开发商拼价格,降低成本。
如果有一天,产品的质量对于软件的销售起决定作用的时候,开发商才会想办法提升质量。
原因之二:软件的质量并不完全依赖于测试水平。
软件的缺陷是由开发人员引入的,如果少一点引入缺陷,即使没有测试,软件的质量也会很高。
这是一个不错的观点。
开发人员自身水平的提升对产品质量的影响是第一位的。
ok,站在这个角度来讲,测试人员的存在是对产品质量提升的一个补充。
原因之三:测试人员没有争取。
测试人员往往在公司的位置较低,同时他们却选择了逆来顺受,听之任之的态度。
大多数软件测试人员的水平的确不行,连代码都看不懂,与开发人员根本没有办法交流,当然开发人员瞧不起你。
原因之四:高水平的测试人员都不做测试。
水平高了,为了追求好的待遇,转开发了、做管理了,让自己的测试技能浪费了。
那“软件测试”还有救吗?是不是命中注定就是软件开发的“次要角色”?先提一些观点。
1、软件产品的质量越来越重要,而且是个趋势。
——应该没有人反对吧! 2、为了保证产品的质量,有两条路可以走。
第一预防,让错误少出现;第二验证,如果有错误,发现、处理。
第一条路的主人公是开发人员。
第二条路的主人公是开发人员和测试人员。
测试人员的位置就是通过验证的方式去发现问题。
而这两条路相互补充,在整个开发过程不会舍弃其一。
软件自动化测试好的选择?
女孩子做软件软件测试的还是比较多.这个行业可以让女人工作没那么累.要想学软件测试 可以在网上找一些书看看. 软件测试教程. 软件测试技术.在看点文档.和一些测试模板.在下载些简单的工具.去找工作估计没什么问题了.QTP, silktest 或是 lr 都可以. www.rjzl.gov.cn照大纲复习了.上网找一些最新资料 一、考试说明 1.考试要求: (1) 掌握数据表示、算术和逻辑运算; (2) 掌握相关的应用数学、离散数学的基础知识; (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理; (4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (5) 熟练掌握常用数据结构和常用算法; (6) 熟悉数据库、网络和多媒体的基础知识; (7) 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中的一种程序设计语言; (8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识; (9) 熟悉掌握软件设计的方法和技术; (10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (11) 了解信息化、计算机应用的基础知识; (12) 正确阅读和理解计算机领域的英文资料。
2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。
3.本考试设置的科目包括: (1) 计算机与软件工程知识,考试时间为150分钟,笔试; (2) 软件设计,考试时间为150分钟,笔试。
二、考试范围 考试科目1:计算机与软件工程知识 1.计算机科学基础 1.1 数制及其转换 · 二进制、十进制和十六进制等常用制数制及其相互转换 1.2 数据的表示 · 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出) · 非数值表示(字符和汉字表示、声音表示、图像表示) · 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码) 1.3 算术运算和逻辑运算 · 计算机中的二进制数运算方法 · 逻辑代数的基本运算和逻辑表达式的化简 1.4 数学基础知识 · 命题逻辑、谓词逻辑、形式逻辑的基础知识 · 常用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分) · 排列组合、概率论应用、应用统计(数据的统计分析) · 运算基本方法(预测与决策、线性规划、网络图、模拟) 1.5 常用数据结构 · 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作 · Hash(存储地址计算,冲突处理) 1.6 常用算法 · 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法 · 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决策表)、算法的复杂性 2.计算机系统知识 2.1 硬件知识 2.1.1 计算机系统的组成、体系结构分类及特性 · CPU和存储器的组成、性能和基本工作原理 · 常用I/O设备、通信设备的性能,以及基本工作原理 · I/O接口的功能、类型和特性 · I/O控制方式(中断系统、DMA、I/O处理机方式) · CISC/RISC,流水线操作,多处理机,并行处理 2.1.2 存储系统 · 主存-Cache存储系统的工作原理 · 虚拟存储器基本工作原理,多级存储体系的性能价格 · RAID类型和特性 2.1.3 安全性、可靠性与系统性能评测基础知识 · 诊断与容错 · 系统可靠性分析评价 · 计算机系统性能评测方式 2.2 软件知识 2.2.1 操作系统知识 · 操作系统的内核(中断控制)、进程、线程概念 · 处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁) · 存储管理(主存保护、动态连接分配、分段、分页、虚存) · 设备管理(I/O控制、假脱机) · 文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理) · 作业管理(作业调度、作业控制语言(JCL)、多道程序设计) · 汉字处理,多媒体处理,人机界面 · 网络操作系统和嵌入式操作系统基础知识 · 操作系统的配置 2.2.2 程序设计语言和语言处理程序的知识 · 汇编、编译、解释系统的基础知识和基本工作原理 · 程序设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用 · 各类程序设计语言主要特点和适用情况 2.3 计算机网络知识 · 网络体系结构(网络拓扑、OSI/RM、基本的网络协议) · 传输介质、传输技术、传输方法、传输控制 · 常用网络设备和各类通信设备 · Client/Server结构、Browser/Server结构 · LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接 · 因特网基础知识以及应用 · 网络软件 · 网络管理 · 网络性能分析 2.4 数据库知识 · 数据库管理系统的功能和特征 · 数据库模型(概念模式、外模式、内模式) · 数据模型,ER图,第一范式、第二范式、第三范式 · 数据操作(集合运算和关系运算) · 数据库语言(SQL) · 数据库的控制功能(并发控制、恢复、安全性、完整性) ...
软件测试工程师前景怎么样?有发展吗?
1、软件测试工程师在一家软件企业中担当的是“质量管理”角色,他的职责是及时纠错及时更正,确保产品的正常运作。
软件测试是个可以很快入门的职业,门坎不高。
对于刚刚毕业的学生,如果希望今今后事软件开发,那么先从事一段时间的测试可能更有利于今后的编程;而对于具有多年编程经验的程序员,如果改行做测试,更容易提高技术。
2、在北美,软件测试工程师因不同的级别,获取的薪资是不一样的,特别是近几年,由于越来越备受重视,所以薪资也节节高升。
现在起薪已经在 5 万左右;若经验丰富的话,薪资可以拿到八九万。
实际上,现在就业市场上最难找到的不是最佳程序员,而是最佳软件测试工程师 ! 因为面对软件的规模越来越大,应用的复杂度和集成性越来越高,各种新的软件开发技术不断应用,特别是一些重要领域如国防、银行、金融、通讯、航天等,他们对软件质量要求很高,使得软件测试工程师已变的炙手可热。
目前大中型软件开发与测试人员比率接近 1 : 2 ,巨大的市场空缺,使软件测试工程师从初级到高级,只需要 1 年甚至更短的时间来完成。
所以作为一名软件测试工程师,未来的发展空间是非常广阔的。
3、“软件测试工程师是一个越老越吃香的职业。
” 著名软件测试专家、清华大学教授郑人杰教授说。
他告诉记者软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。
而且随着项目经验的不断增长和对行业背景的深入了解,会越老越吃香。
对于郑人杰教授对测试员的职业寿命的看好,资深测试专家、北大测试负责人肖睿非常赞同。
他认为软件测试员的一生如同一名医生的一生,随着职业阅历和临床经验的丰富累积,到一定的年龄他们通过“望闻问切”就能知道毛病出在什么地方。
因此,有人说软件测试员和医生是最不需要用“青春”来保证和延续自己职业寿命的职业。
4、20多年来郑人杰教授一直软件测试领域工作,如今70多岁的郑教授还在为软件企业“坐诊”。
一些出版社为了出版他的《计算机软件测试技术》几乎成了他家的常客。
作为我国软件测试行业的“泰斗”,他见证了中国软件测试业20年来的发展历程。
“软件测试工程师地位”翻天覆地“的变化,源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。
” 郑人杰教授表示。
一方面,计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,他们对软件质量要求很高。
同时一些重大事故的发生,也引发了人们对软件质量的关注。
如2002年欧洲载重10吨的阿丽亚娜5型火箭发射失败,最后证实是软件质量问题;还有国内的一些银行金融系统,因软件质量问题不得不暂停营业。
毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试工程师目前已变的炙手可热。
随着中国软件市场的发展,越来越多的国外资金投向中国软件行业。
据报道,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇“瓶颈”。
国家为了大力培养软件人才,不断采取积极有效的措施。
前不久,国家出台鼓励软件测试等高职业技能政策后,广大青年学生对软件测试的兴趣骤然上升。
5、软件测试是个可以很快入门的职业,门坎不高。
对于刚刚毕业的学生,如果希望今今后事软件开发,那么先从事一段时间的测试可能更有利于今后的编程;而对于具有多年编程经验的程序员,如果改行做测试,更容易提高技术。
6、软件测试是个需求高,就职机会大的职业。
目前,我国具备软件测试能力的人员数量和市场需求相差巨大,巨大的市场空缺,使软件测试工程师从初级到高级,只需要 1 年甚至更短的时间来完成。
所以作为一名软件测试工程师,未来的发展空间是非常广阔的。
软件测试这个职位还好吗?
楼上几个带链接的回答都是些培训机构的广告。
你自己注意就可以了。
关于测试门槛,在我国比较低,入门也比较快,但你想要把它做的好就困难了(其实什么事都一样呵呵 废话).关于前景,要看你个人能力,如果一直局限于基本的测试工作那是没什么前景的。
你只有不断学习,充实自己。
争取在技术或管理上出人头地,那么这是很有前景的。
月薪的话上海应届毕业生一般3000左右。
当然有例外(关键看能力)还有英文很重要希望能给你些帮助
正在缓冲______