一:软件测试工程师应具备哪些基础知识
是不是所有优秀的开发人员都能够成为优秀的测试人员?
所有的人都知道应该如何进行测试,但是却未必知道要成为一名优秀的测试人员,真正需要哪些素质。
优秀的系统验证测试人员应该具备哪些素质?
在 8 年多的软件开发工作中,我曾从事过各种项目的设计和开发,并且从初级开发人员成长为高级开发人员,最终成了一名软件架构师。在此期间,我意识到测试工作的重要性和挑战,甚至曾自愿地对自己设计的程序进行测试,这是出于“自己解决自己的问题”的考虑。大约在一年前,我成为了系统验证测试 (SVT) 组的负责人。我之所以想到要撰写这个专栏,是因为与所在部门的一名测试人员的闲聊,情况是这样的,该测试人员以前的一名同事申请了我部门中的测试职位。当我向这名测试人员询问有关申请者(当时他正从事开发工作)的情况时,她的回答是“对这个人我已经记不大清楚了,但他肯定是一名优秀的测试人员,因为他是一名开发人员”。
听到这样的评论我感到震惊,但是后来我发现,对于开发和测试团体来说,这是一个普遍存在的观点。的确存在许多优秀的开发人员和优秀的测试人员,但是在某个方面非常一流,并不一定就意味着在其他方面也同样优秀。所以作为一名测试管理人员,我需要说明成为一名优秀的 SVT 测试人员所面临的挑战和应该具备的独特品质,这不仅仅是要吸引高素质人才加入到这个行列,同时还可以分享这项工作给我们带来的自豪感,并且或许可以为测试工作赢得更多的尊重。
发现客户价值
按照规定,SVT 组负责进行系统级测试。什么是系统级测试呢?这是一个常见的问题。我的理解是,进行系统级测试的目的是为了确保通过产品所提供的功能,实现既定的客户价值。
那么,什么是“客户价值”呢?其答案正是为什么客户购买和使用某种产品的原因之一。例如,我使用 Microsoft® Word 已有许多年了。回忆我个人使用该软件的经历,在早期的版本中,最苦恼的事情是它容易在编辑的过程中发生崩溃,这样就会丢失最近一次保存以来的所有工作。幸好,现在的版本不再出现这种情况了。甚至更加完善,它会定期地自动保存文档,这样一来,即使在退出的时候忘了保存文档,仍然可以恢复到最近一次自动保存的副本,对我来说这是个非常好的特性。这种作为客户的经历使我意识到,尽管该产品提供一般性的功能,但正是其独特的特性使得它能够从众多的竞争产品之中脱颖而出,并且正是这些提供价值的特性使得其客户钟情于该产品。因此,对于优秀的 SVT 测试人员来说,最重要的品质是能够清楚地了解每个特性的客户价值。
尽管可以很容易地从设计文档或用户手册的简介部分中找到每个特性所允诺的客户价值,但是要有效地将它们合并为测试设计方案的核心,并不是那么简单。要实现这一点,测试人员需要了解技术的采用周期,以及该技术当前位于其采用曲线中的什么位置。他还需要了解提供类似客户价值的竞争技术,以及有可能共同使用的协作性技术。
测试更广泛的场景
我观察到新的 SVT 测试人员常犯的一个错误是,他们总是从局部而非整体的角度来看待某种技术(或者产品特性)。结果,测试工作重点关注于产品与设计的符合性,而不是它所提供的真正价值。例如,当在 J2EE™ 技术中引入容器管理的持久性时,其目标是为数据库的访问提供一种更简单并且更具可移植性的编程模式,它的竞争技术是其他持久性技术,如 JDBC 和持久的数据对象。如果该技术或特性不易于使用,并且不能够伸缩或至少执行其竞争技术所能完成的任务,那么该特性就难以获得接受,即使客户购买了这个产品,他们也不会使用该特性。因此,SVT 测试......余下全文>>
二:测试工程师都需要掌握哪些知识
测试工程师的主要工作是寻找你能想象到的软件中的各种缺陷,重要的一点是能够站在最终用户的角度上考虑问题,而不仅仅是从开发人员的角度理解软件。优秀的测试工程师要知道哪里最可能出现bug并快速的找到它们,能和开发很好的合作,因此需要很懂业务甚至是开发技能。随着测试自动化技术的发展,掌握一些测试工具的使用及其原理也是必要的。
三:作为一个软件测试工程师应具备哪些技能
如果想成为一个比较好的软件测试工程师的话,以下这些条件是需要具备的:
1.你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作
2.需要对数据库有较为清楚的认识,以及会编写数据库脚本
3.了解至少2种以上的操作系统,并且对问题有较强的分析判断能力
接下来,如果你想成为更优秀的测试工程师,就需要具备如下素质:
(这部分是我转的,因为我也同意这个说法)
1、有相当的白盒测试经验,这就需要能针对核心模块,核心算法进行代码走查和代码跟踪,从代码内部发现问题。要想做到这一点,不仅要了解所使用的编码语言本身,还要会使用它提供的IDE工具进行代码的跟踪和调试,这些功夫可不是看看书就能掌握的呦;
2、熟练使用流行的测试工具,虽然无论是wr还是lr本身在测试工作中并不会每天都涉及到,但是对工具的熟练掌握确实我们职位和薪水得以晋升的一个重要的砝码,所以介于这一点,建议考一些工具方面的认证可能会比较实用一些。
总之,我觉得软件测试工程师的要求比较高,如果你从未有过编程经验,可能几乎没有公司会录用你,实话,莫怪
大三啊,那是可以自学成功的啦,我是电气专业的,都不懂编程的,毕业工作以后自学的,半年已经可以基本满足要求了。
只要你能坚持下来,别半途而废,就好。我是觉得做测试要比做程序员好很多的,呵呵,那你加油咯~
四:如何成为一名优秀的测试工程师
1、基本理论 具有扎实的计算机专业知识,作为一名测试工程师,不能仅仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的,基础方面应需要学习过以下的课程:软件技术基础、C语言、面向对象设计、C++、数据库理论、计算机网络技术、软件工程、数据结构与算法、离散数学等;专业方面应掌握:软件测试技术概论、测试管理、测试工具、软件质量管理、CMM、RUP等等。 软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。 软件本地化技术与软件国际化技术紧密相关,软件本地化又具有软件工程技术的通用特征,所以,有必要了解这些基础专业知识。 1)软件本地化/国际化的基本知识,包括:软件本地化/国际化的概念,软件本地化的作用,发展历史和行业前景等。这些知识可以加深对该行业的认识,增加工作的主动性。 2)软件本地化工程的基础知识,包括软件本地化的一般工作流程,软件本地化资源文件的类型、作用和处理过程,计算机字符编码的知识,包括Unicode和双字节字符集(DBCS)知识,软件的图形用户界面(GUI)的类型和作用等。 2、基础技能 包括熟练的计算机基础知识和良好的语言技能:1)装和配置常用操作系统知识 软件本地化过程可能会在多种操作系统上执行,例如,经常需要在多个操作系统中对本地化软件进行测试。熟练安装和配置常用操作系统是基本要求。例如,操作系统Windows,Unix,Linux,Solaris。 2)计算机网络基础知识 为了便于资源共享,需要在计算机网络环境下完成。此外在与客户的交流过程中也需要因特网技术。例如,下载软件本地化指导文档和其他相关文件,提交工作任务,测试某些软件功能。因此,需要了解局域网和因特网基础知识,通信软件的使用和常用通信协议的基本知识。 3)通用软件的使用知识 软件本地化需要使用多种软件工具,例如常用办公软件,包括字处理软件,表格处理、数据库管理和邮件管理软件等。熟练安装和使用这些通用软件,可以提高工作效率和质量。 4) 良好的语言技能 软件本地化是与语言密切相关的技术,涉及多种语言理解、表达和转换的多方面知识。软件开发商提供的文档以英文为主,良好的阅读理解能力和基本的英语写作基础是从事本软件地化工作的基础技能。如果与软件开发商直接联系,还需要英语听说表达能力。 3、 基础专业知识 主要要是技术能力,如软件工程师需要 1)编码能力:基础软件工程师的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定了项目开发的效率。这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。 2) 认识和运用数据库的能力 信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有甲骨文公司的Oracle数据库和微软公司的SQLServer等。 3)具有一定的编程经验 测试工程师有时候需要对源码进行检查,有时候也会从程序结构的角度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本,显而易见,会写简单代码,能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价;但这一点在国内大部分公司里面是很......余下全文>>
五:测试工程师一般都做什么工作
1、 基础:前文所说的基础技能必需掌握,推荐Java+Oracle+Uml组合。掌握程度一般不用太深,测试工具开发职位的除外。特别注明,Junit是一定要掌握的。市面上书籍很多,笔者推荐《Java编程思想》、 《Oracle 9i 参考手册》、《UML精粹》。
2、 专业:前文所说的测试方法、测试工具必需掌握。其中对于测试工具,如果开源则尽可能阅读源码。推荐书籍《计算机软件测试技术》、《软件测试艺术》、《软件测试》。
3、 实战:前文所说的测试模式必需掌握。 至少全程参与二十次项目,至少参与两次50人以上规模的项目,至少编写测试用例10000个,至少发现缺陷5000个,至少编写测试脚本20000行,至少担任过三次测试负责人,所有产品发布后遗漏缺陷总数小于50个并呈收敛趋势。推荐书籍《设计模式》、《人月神话》、《软件测试经验与教训》。
4、 沉淀:深入了解质量控制原理,对功能性(含安全)、效率、易用性、可移植性、可维护性、可靠性等质量特性均有实际测试经验。推荐书籍《质量无泪》、《质量免费》、《ISO9126》等所有软件质量相关国标。
5、 领域:选取一至两门测试技术作为长期研究的方向,中途可适当调整,这里说的长期指的是五年、十年及以上,在这个层次重点是要做到专精。推荐方向“云测试”、 “基于模型测试”。
6、 专家:理论计算机科学研究。笔者不是专家,因此不敢臆测到达此层次后应该做些什么以及怎么做,但“P/NP问题”是笔者一直有兴趣并持续关注的,也是很多科研工作者选取的研究课题,在此郑重推荐。
六:如何成为一个优秀的测试工程师
1、基本理论
具有扎实的计算机专业知识,作为一名测试工程师,不能仅仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的,基础方面应需要学习过以下的课程:软件技术基础、C语言、面向对象设计、C++、数据库理论、计算机网络技术、软件工程、数据结构与算法、离散数学等;专业方面应掌握:软件测试技术概论、测试管理、测试工具、软件质量管理、CMM、RUP等等。
软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。
软件本地化技术与软件国际化技术紧密相关,软件本地化又具有软件工程技术的通用特征,所以,有必要了解这些基础专业知识。
1)软件本地化/国际化的基本知识,包括:软件本地化/国际化的概念,软件本地化的作用,发展历史和行业前景等。这些知识可以加深对该行业的认识,增加工作的主动性。
2)软件本地化工程的基础知识,包括软件本地化的一般工作流程,软件本地化资源文件的类型、作用和处理过程,计算机字符编码的知识,包括Unicode和双字节字符集(DBCS)知识,软件的图形用户界面(GUI)的类型和作用等。
2、基础技能
包括熟练的计算机基础知识和良好的语言技能:1)装和配置常用操作系统知识
软件本地化过程可能会在多种操作系统上执行,例如,经常需要在多个操作系统中对本地化软件进行测试。熟练安装和配置常用操作系统是基本要求。例如,操作系统Windows,Unix,Linux,Solaris。
2)计算机网络基础知识
为了便于资源共享,需要在计算机网络环境下完成。此外在与客户的交流过程中也需要因特网技术。例如,下载软件本地化指导文档和其他相关文件,提交工作任务,测试某些软件功能。因此,需要了解局域网和因特网基础知识,通信软件的使用和常用通信协议的基本知识。
3)通用软件的使用知识
软件本地化需要使用多种软件工具,例如常用办公软件,包括字处理软件,表格处理、数据库管理和邮件管理软件等。熟练安装和使用这些通用软件,可以提高工作效率和质量。
4) 良好的语言技能
软件本地化是与语言密切相关的技术,涉及多种语言理解、表达和转换的多方面知识。软件开发商提供的文档以英文为主,良好的阅读理解能力和基本的英语写作基础是从事本软件地化工作的基础技能。如果与软件开发商直接联系,还需要英语听说表达能力。
3、 基础专业知识
主要要是技术能力,如软件工程师需要
1)编码能力:基础软件工程师的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定了项目开发的效率。这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。
2) 认识和运用数据库的能力
信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有甲骨文公司的Oracle数据库和微软公司的SQLServer等。
3)具有一定的编程经验
测试工程师有时候需要对源码进行检查,有时候也会从程序结构的角度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本,显而易见,会写简单代码,能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价;但这一点在国内大部分公司里面是很......余下全文>>
七:要成为软件测试工程师,需要计算机哪方面的知识?
楼上乱说了吧,谁说一定要考证,只有在那些国企当中才会注重你的证书,一般的企业根本不会去看你的证书问题。测试这个行业算是入门容易精通难的行业了,前期如果你只是做黑盒测试,那么需要你了解的东西并不多,只要熟悉数据库操作,了解一些计算机基础,比如计算机网络这些,另外最好有点编程底子,但是不用你精通,这就足够了。不过如果你想要向更深层次的发展,那么就有很多很多的需要你学习了,所以说测试员并不需要你精通什么,但是却需要你有足够广的知识面,只有这样你才能从更多的角度来发现问题。不过数据库操作这个是必须的,因为不管是什么软件,都会与数据库打交道,而你要验证数据正确性,那么就必须要会操作数据库。至于其他的软件测试流程,到了公司会有专门的培训的。
八:网络测试工程师需要哪些能力(越详细越好)
1:网络
基础知识:深刻理解网络基本概念,例如>ISO/OSI、TCP/IP、VLAN、各种LAN、WAN协议、各种路由协议、NAT等等
Cisco:熟悉Cisco产品线;会配置主要型号的交换机和路由器,不熟悉的设备能构独立查资料配置;熟悉Cisco一些主要的技术例如VOIP、Qos、ACL等;
Nortel:熟悉Nortel产品线;会配置主要型号的交换机和路由器,不熟悉的设备能构独立查资料配置;
Huawei-3com:熟悉Huawei-3com产品线;会配置主要型号的交换机和路由器,不熟悉的设备能构独立查资料配置;
Foundry:熟悉Foudry产品线;会配置主要型号的交换机和路由器,不熟悉的设备能构独立查资料配置;
2:主机
基础知识:熟悉服务器的基本知识,例如各种RAID、各种外设、SCSI卡等等
Sun Solaris:熟悉Sun小型机产品线,掌握各个版本的Solaris使用
IBM AIX:熟悉IBM小型机产品线,掌握各个版本的AIX使用
HP HP-UX:掌握HP-UX的基础知识
Linux:熟悉主流版本的Linux的安装、使用、配置
MS Windows:熟练掌握Windows NT、2000、2003的安装、使用、配置、排错
3:数据库与中间件
基础知识:深刻理解数据库的基本概念,会使用简单的SQL语句,了解数据库复制、数据仓库等高级概念
Sybase ASE:熟悉Sybase数据库的基本概念、体系结构、安装、配置、维护、排错、复制
Oracle DB:熟悉Oracle数据库的基本概念、体系结构、安装、配置、维护、排错、复制
MS SQL Server:熟悉MS SQL Server数据库的基本概念、体系结构、安装、配置、维护
IBM DB2:了解IBM DB2
MySQL:了解MySQL数据库在Windwos和linux下的安装和维护
Sybase EAserver:熟悉Sybase EAServer在各个平台的安装、配置和使用
Oracle AS:了解Oracle应用服务器的安装和配置
IBM WebSphere:熟悉IBM Websphere各个版本在各个平台的安装、配置和使用
Tomcat:了解Tomcat在Windwos和linux下的安装和维护
4: 英语
在一般人的概念中,网络不过就是通过拨号上上网,发个E-Mail,聊聊天,计算机组装与维护、组建局域网就以为是网络工程师了!其实网络工程师所具备的知识远不只这些,具备了上述所提的只能算是具有电脑维护能力。真正的网络工程师须具备以下几方面的知识:
让学员了解完整的计算机网络系统如何工作
深入学习网络中最核心的路由技术和交换技术
全面掌握网络管理和网络安全知识
全面学习一个网络应用的建设过程
配置和管理你的计算机系统
使学员能够设计一个完整的IT系统
对技术有不一样的追求,有理想,有目标。
增加的更为系统的内容:
网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。
通过等级考试的合格人员能根据应用部门的要求进行网络系统的规划、设计和网络设备的软硬件安装调试工作,能进行网络系统的运行、维护和管理,能高效、可靠、安全地管理网络资源,作为网络专业人员对系统开发进行技术支持和指导,具有工程师的实际工作能力和业务水平,能指导助理工程师从事网络系统的构建和管理工作。 一般具有以下能力:
(1)熟悉计算......余下全文>>
九:什么是初级测试工程师
1,刚入门的拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术2是不一样的软件测试工程师没有初级测试工程师包括的范围大3需要准备的:
1.熟悉软件质量、软件测试及软件质量保证憨基础知识;
2.掌握代码检查、走查与评审的基本方法和技术;
3.掌握白盒测试和黑盒测试的测试用例的设计原则和方法;
4.掌握单元测试和集成测试的基本策略和方法;
5.了解系统测试、性能测试和可靠性测试的基本概念和方法;
6.了解面向对象软件和WEB应用软件测试的基本概念和方法;
7.掌握软件测试过程管理的基本知识和管理方法;
8.熟悉软件测试的标准和文档;
9.掌握QESuite软件测试过程管理平台和QESat/C++软件分析和工具的使用方法
十:要想成为一个合格的硬件测试工程师,需要学习哪些课程?
硬件测试工程师要求
1、计算机相关专业,英语阅读书写良好,对硬件有很大的兴趣,平时对这方面比较关注;
2、掌握硬件产品的硬件结构、应用技术及产品性能;
3、熟练使用各种测试的软硬件测试工具,能够独立搭建软硬件测试平台,并评价产品、写出产品的测试唬告;
4、有相关经验(电脑整机或配件厂商系统测试经验),精通PC机硬件底层技术;
5、掌握主板芯片级维修的基础知识、仪器仪表的使用方法和维修焊接技术,熟悉主板故障现象和维修方法,熟悉主板维修的各种检测方法和器件替换原则;