软件测试的发展方向,应该学习哪些知识?
软件测试工程师未来的发展 从事软件测试有没有前途,未来的职业发展方向怎样呢? 陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。
第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。
第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。
陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。
陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。
其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。
软件测试是正在快速发展,充满挑战的领域。
尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。
网络测试是一个新环境,而且是很大的挑战。
软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。
软件测试需要熟练掌握测试的相关理论,熟悉测试的流程和测试的技巧,可以给你推荐一本书《测试的艺术》,网上可以下载到电子版的。
熟读这本书基本上就可以应付笔试了,呵呵。
另外,想要在测试方面取得更好的成绩,呵呵,也就是想拿到更多的薪酬,进入更高的层次,要学习性能测试和自动化测试,国内目前已LoadRunner和QTP为主,可以多关注一下。
有基本的编程技能学习起来会比较容易,这也是一般的公司喜欢招收计算机相关专业毕业生的原因,据我的经验,只要掌握了基本的C语言就差不多够用了,后期用到的东西可以找开发人员请教,顺便学习。
呵呵另外,要多搜集网络资源,几个有名气的测试网站上都有很多入门级的建议,可以好好的参阅一下。
(1)熟悉计算机基础知识; (2)熟悉操作系统、数据库、中间件、程序设计语言基础知识; (3)熟悉计算机网络基础知识; (4)熟悉软件工程知识,理解软件开发方法及过程; (5)熟悉软件质量及软件质量管理基础知识; (6)熟悉软件测试标准; (7)掌握软件测试技术及方法; (8)掌握软件测试项目管理知识; (9)掌握C语言以及C++或Java语言程序设计技术; (10)了解信息化及信息安全基础知识; (11)熟悉知识产权相关法律、法规; (12)正确阅读并理解相关领域的英文资料。
通过本考试的合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理方法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。
软件测试的独立路径如何确定
熟悉测试理论的人都知道,路径覆盖是白盒测试中一种很重要的方法,广泛应用于单元测试。
那么基于路径覆盖的分析方法是不是只能应用于单元测试呢,能不能将其推而广之呢。
一般而言,在单元测试中,路径就是指函数代码的某个分支,而实际上如果我们将软件系统的某个流程也看成路径的话,我们将可以尝试着用路径分析的方法来设计测试用例。
采用路径分析的方法设计测试用例有两点好处:一是降低了测试用例设计的难度,只要搞清了各种流程,就可以设计出高质量的测试用例来,而不用太多测试方面的经验;二是在测试时间较紧的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍。
下面就具体的介绍一下如何用路径分析的方法编写测试用例。
首先是将系统运行过程中所涉及到的各种流程图表化,可以先从最基本的流程入手,将流程抽象成为不同功能的顺序执行。
在最基本流程的基础上再去考虑次要或者异常的流程,这样将各种流程逐渐细化,这样既可以逐渐加深对流程的理解,还可以将各个看似孤立的流程关联起来。
完成所有流程的图表化后就完成了所有路径的设定。
找出了所有的路径,下面的工作就是给每条路径设定优先级,这样在测试时就可以先测优先级高的,再测优先级低的,在时间紧迫的情况下甚至可以考虑忽略一些低优先级的路径。
优先级根据两个原则来选取:一是路径使用的频率,使用越频繁的优先级越高;二是路径的重要程度,如果失败对系统影响越大的优先级越高。
将根据两个原则所分别得到的优先级相加就得到了整个路径的优先级。
根据优先级的排序就可以更有针对性的进行测试。
为每条路径设定好优先级后,接下来的工作就是为每条路径选取测试数据,构造测试用例。
一条路径可以对应多个测试用例,在选取测试数据时,可以充分利用边界值选取等方法,通过表格将各种测试数据的输入输出对应起来,这样就完成了测试用例的设计。
利用软件测试技术的基本路径法,控制流图怎么画?怎么简单快速测...
语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;路径覆盖是每条可能执行到的路径至少执行一次;if A and B then Action1 if C or D then Action2 语句覆盖,只需要让程序中的语句都执行一遍即可 。
上例中只需设计测试用例使得A=true B=true C=true 即可。
路径覆盖:要求覆盖程序中所有可能的路径。
所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。
...
关于IT 行业以后的发展,和对次行业的看法,软件测试以后的发展会怎...
其实我觉得软件测试工程师是个非常有前途的职业.现在软件测试工程师的缺口非常的大. 程序员跟测试员是相互对应的.以前国内认为只要有好的程序员就行了,其实还要有好的测试员.现在国内的软件厂商越来越注重测试员. 软件测试工程师 一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。
其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。
陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester) 测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。
测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。
产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。
对技术要求最强的是这些人,因为它们要具备写程序的技术。
“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。
” 而Ad_hoc Testet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。
刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。
陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。
有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?”陈宏刚有些吓住,说道:“可能改变了一点。
”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,可以按照自己的想法去做测试。
对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。
做软件测试工程师同样需要开拓和创造性。
” 在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。
这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。
软件测试工程师的素质 因为软件测试仍然处在发展阶段,还没有上升到理论层次。
对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。
陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。
他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。
比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。
做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。
除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。
软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。
这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。
而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。
经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。
性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
如何培养优秀的软件测试工程师 朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。
后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。
而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。
像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水...
硬件测试工程师都做什么工作
硬件测试工程师主要负责硬件产品的测试工作,保证测试质量及测试工作的顺利进行,并参与硬件测试技术和规范的改进与制定。
职业概述:他们是硬件质量的把关者,从各大人才招聘的门户网站上面看,其中手机硬件测试方面的人才需求尤为紧缺。
职业要求:(教育培训)通信、计算机、电子技术、机电、自动控制等相关专业毕业,大专及以上学历。
(工作经验)熟悉相关领域的基本理论知识;熟悉并掌握各种测试仪器的使用;较强的分析问题和解决问题能力。
薪资行情:本科以上学历起薪大多在3000至4000元,在工作一两年后可以获得加薪,从20%至50%不等。
具有4年以上经验,收入则可翻倍,达到1万元左右。
发展路径:测试工程师的发展途径一般有以下三种:一种选择是走测试的技术路线,成长为高级测试工程师,这时他能够独立测试很多软件,再向上可以成为测试架构设计师。
从硬件测试工程师发展到测试经理需要较长时间(3到5年)工作经验的积累和过硬的专业技术背景。
第二种选择是向管理方向发展,从测试工程师到组长(Leader),再到测试经理(Manager),以至到更高的职位。
第三种选择是可以换职业,做项目管理或做开发人员都可以,很多测试工具开发工程师在测试的过程中,因为开发方面积累了经验,同时对产品本身产生了自己的看法,很容易转去做产品开发。