(转)测试专家问答----如何成为一个专业的软件测试工程师

2012-05-04  白云 

1、怎样把学到的东西运用到实际测试中,例如QTP,不知如何与实际的测试活动相关联,JMeter可以用上但不知如何分析。
专家解答:自动化测试和手工测试一样,它也是有一个流程的,从前期的自动化测试需求分析,自动化测试用例设计、编写脚本、执行脚本、维护脚本。至于如何把您学到的用到实际的测试中,首先您现有的项目环境是否给您提供了这个机会,如果没有,您应该自己去寻找这样的机会。其实有这样的迷茫,说明您已经开始思考了,说明现有环境已经不能给您提供这样的平台,所以才开始迷茫的。关于JMeter,我没有怎么接触过,性能测试这块,我接触的比较少,我觉得您学的东西比较多,我个人建议您应该好好思考一下自己的职业规划,看自己以后想往哪方面发展,不要什么都做,但什么都不精(当然通一晓十,能做到当然好)。

2、安装双系统后,如何在Linux下访问xp上的分区,挂载应该做不到吧,以后应该怎样学习这方面的内容?
专家解答:关于Linux这块,其实挺广的,看您想走哪方面,说的比较俗一点,大家学习技术,无非是希望自己以后的工资稍微能高一点,就我个人来看的话,在测试这块,与linux相关的,我个人比较偏重测试环境的搭建,关于linux的学习我给四个学习阶段吧。
进阶一.Linux系统体系结构和常用的命令
进阶二.Linux 服务器架设
进阶三.Linux shell
进阶四.Linux服务器集群,性能调优 。
或者您可以关注一下招聘信息,看测试领域与linux相关的,市场都需要什么,您就学什么,只有需求和所学一致是,我觉得才有意义。另外给您推荐一个怎样学习linux一篇博文,个人觉得非常的好,相信一定对您有所帮助(http://ixdba.blog.51cto.com/2895551/569329)
至于如何在linux下访问xp下的分区,实在是不好意思,我这里没有双系统的环境,也就不能给出具体的答案了,我觉得通过Mount是可以做到的。在linux下面所有的设备都是文件,而在linux看来,磁盘也是文件,所有也要先挂载才能访问它(建议您先多看一点linux分区和linux系统结构,给您推荐一本书,估计您也许看过<<鸟哥的四房菜基础篇>>)

3、从事一年手工测试,都是功能性测试,发觉想做好还是挺难的,因为对业务了不够深。请问在未来的时间里该如何提升自身的能力呢?
专家解答:其实您说的非常对,手工测试要做好其实挺难的。所谓五年成专家,十年成权威。业务非常重要,现在不是有种职位是领域专家吗?不懂业务,再好的技术好象也使不上力,当然只有业务,没有技术,也不行,就象金庸武侠小说里的剑宗、气宗之争。至于未来的时间里该如何提升自己,这个与您的职业规划有关,看您未来想走什么路,自己在做那方面的准备。就我个人而言(以测试为主,向其它方向发散。没有炫耀之意,个人也学的比较杂),1.健康、养生、医学2.积累业务知识;3.提升技术知识(测试理论、开发技术、linux、测试工具QTP,熟练一门外语);4.管理方面的知识(因为我个人以后倾向走管理路线 ,所以) 5.人文素养(行为心理学、儒家、道家、佛学、琴棋书画、历史) 。

4、自学过一段时间QTP和LR,也在项目中实践过,但是最大的困难是遇到问题解决不了,有时瞎弄就解决了,但是原理并不懂,这使我挺迷茫的,不知道如何继续学习性能测试。
专家解答:自动化测试、性能测试都与编程有点关系,说到底,它就是测试中的开发,所以要有比较扎实的编程功底,这样才能在技术的路上走的比较远。再者,自动化这块本身就比较有挑战性,不要害怕遇到问题,遇到问题是你成长必须要经过的历程。培养自己分析问题解决问题的能力,时间长了,自己积累的多了,自然而然的就变成高手了,其实我们遇到问题,通过google,大部分是可以解决的,如果google都解决不了,我们可以问同事,朋友,或者借助网络,或者自己查找相关的资料,相信最后一定是可以解决的。如果您想走自动化这块的话,我个人建议您还是选择一种,要么走自动化测试,要么走性能测试。不要两种都学,两者都不精。

5、做一个优秀的软件测试工程师要具有哪方面的能力,还是只是靠经验?是多而广的测试工具,还是少而专的工具呢?
专家解答:关于优秀的软件测试需要哪些能力,软件测试是一项很枯燥、很乏味、很无聊,好像没什么成就感,没什么技术含量的工作,这是我第一次接触软件测试的时候的感觉,我想每个刚进入软件测试这个行业大概都和我有同感吧,当然现在的感觉变了,可能是自己渐渐接触时间的变长。其实我们在平凡的岗位上,做着不平凡的工作。在软件测试的历史上,曾有三件因为软件测试而出现的重大事件,事件一:爱国者导弹防御系统把“枪口”对准了自己人。事件二:美国迪斯尼公司的狮子王游戏软件的兼容性问题,事件三:售票系统性能问题。所以成为一个优秀的软件测试工程师,首先你必须是专业的,打个比方,你发现bug了,在你将bug反馈给开发之前,你必须多次、反复的确认你所提问题的存在,不要在反馈的时候,别人几句就给反驳了,你要让别人没有任何反驳的余地,你所说的每一点都要有理有据1.首先必须具备的就是认真、负责、严谨、耐心的态度,因为我们软件测试工程师吃的就是这口饭,所以必须对你所测产品负责,宁可错杀一千,也不可放过一个bug.虽然在软件测试的7条原则里,第一条就是bug本身就是无穷尽的,但我们作为测试人员,应尽可能的确保质量 2.其次就是过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、我们都必须精通一门,知晓其它(当然这个做到比较难,什么都会很难,再者多了之后,就不会精了,什么都会也等于什么都不会,这个自己把握),因为测试与开发或者其它行业不同,它可能更多的在乎你广度而不是深度(这个可能更多的是指手工测试) 3.其实也就是业务知识,光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量, 4.其次就是沟通能力了,测试人员经常要与开发等不同的人员打交道,如何更准确、更简洁、更严谨的描述bug,同时如何让开发人员接受你发现的bug等,所以良好的沟通能力显的尤为重要 5. 缜密的逻辑思维能力。其实我个人感觉测试人员和刑侦有点向,我们测试人员不单单只是发现问题,我们应该更多的关注bug产生的真正原因,准确的定位,更好更快的协助开发人员解决bug,所以这个需要你有很好的逆向反推能力。
关于只是靠经验?是多而广的测试工具,还是少而专的工具呢?当然经验丰富当然好,它能更好的帮助你分析问题,解决问题。关于测试工具,其实测试工具只是为测试服务的,我们不能把重点放在工具上,更多的是人。就好比手工测试与自动化测试,哪个发现的问题更多,我个人觉得肯定是手工测试发现的问题要比自动化测试发现的问题要多的多。

6、功能和性能应该怎样选择?两者在学习或工作中是否存在冲突?
专家解答:首先我大致给软件测试分类做了个整理(如下图)

功能和性能测试在学习或工作中不会冲突的,只是人的精力有限,有所为就一定会有所不为。个人建议选择一种深入,精通下去。另外给你推荐一本自动化测试QTP的书籍(<<QTP从实践到精通>>个人觉得这本书还不错)

7、“Linux测试环境的搭建”网上查阅不到关于软件测试人员应该具备怎样的Linux技能,大部分都是说怎样学习或为什么要学的。
专家解答:这个测试环境一般指的项目的部署,关于“Linux测试环境的搭建”,这个要看项目的大小,是B/S还是C/S的,一般比较大型的应用,服务端大部分都是用的Linux,当然测试环境由谁来搭建,这个要看公司的规模,有些公司有专门负责搭建测试环境的,有些是开发人员帮忙搭建的,有些是测试人员自己搭建的,这个要看环境搭建的难易程度,比如负载均衡的部署,服务器集群,这个一般的测试人员做比较难,一般都是开发人员帮忙搭建的。就我之前的项目,我们会在三个环境上测,也就是一个case至少要跑三遍,一个环境是开发环境,一个是测试环境,一个是QA环境。
关于测试人员需要哪些linux方面的技能,这个我建议你关注与测试相关的招聘信息,比如51testing的招聘版块,51job等,看他们的job  description的描述,多看,多总结。

8、我想问一下你做的自动化是用的业界的自动化工具,还是自己开发的自动化框架,能简单介绍一下你们自动化框架和自动化的一个情况吗?
专家解答:在回答您问题之前,我先声明一下我不是专业的自动化测试工程师,也是一个杂牌的软件测试工程师而已,我之前的项目也只是简单的引入了自动化,而我目前的工作也全部是手工测试,但在自动化测试方面小有点自己的见解,与您分享一下,何为框架?从自动化的发展历程来看,一共经历了四个阶段,在早期,自动化测试并没有框架这一说,所以第一个阶段:无框架阶段,自动化测试只是简单的录制/回放,由工具录制并记录操作的过程或数据,并形成脚本。通过对脚本的回放重复人工操作的过程。这种模式脚本与数据混合在一起。站在软件开发的角度来看,这种开发耦合度高,我们知道软件工程的思想,是高内聚低耦合。而简单的录制回放完全违背了这一思想,简单的录制回放,重用性非常低,同时维护成本非常高。
第二个阶段:数据驱动框架阶段,无框架阶段最大的缺点就是脚本与数据混合在一起。为了解决这一问题,自动化测试框架发展到了数据驱动框架阶段。该框架从数据文件中读取数据,通过参数化的方式将数据文件中读取数据写入到脚本中(好比从数据库中读数据),由于不同的数据对应着不同的测试用例,将脚本与数据彻底地分离,因此提高了脚本的使用率,大大降低了脚本的维护成本。虽然数据驱动框架解决了脚本与数据的问题,但并没有将被测试对象与操作分离。
第三个阶段.关键字驱动框架阶段, 关键字驱动框架是在数据驱动框架的基础上改进的一种框架模型。它将测试逻辑按照关键字进行分解,形成数据文件与关键字对应封装的业务逻辑。主要关键字包括3类:被测试对象(Item)、操作(Operation)和值(Value).用面向对形式将其表现为Item.Operation(Value)。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。
第四个阶段:混合模型框架阶段,关键字驱动框架将自动化测试框架带入了一个新的阶段,自动化测试工QuickTest也很好地使用了该理念,但在实际开展自动化测试的时候,发现测试工具所带来的关键字驱动框架还是无法很好地完成测试任务。该框架虽然将数据与脚本进行了分离,但是如果要更灵活地调用测试用例中的数据或输出测试结果,该框架无法做到;并且如果需要读取其他文件存储格式中的数据时也无法很好地解决。因此,在自动化测试开始的前期,工程师会开发一个符合实际测试的框架来支持后期的测试工作,这就是通常所说的混合模型自动化测试框架。(参考资料:黄文高的 《QTP自动化测试与框架模型设计》)
我想您的问题中,应该指的是混合型框架的开发吧。我之前的项目,由于项目的原因,我们并没有很系统,很专业的引入自动化,所以并没有开发属于自己的自动化框架,只是在开源框架的基础上稍微修改、加强了一下。我们也只是从可重用性、通用性、脚本的组织结构来考虑来修改开源框架的,另外有一段时间没有接触自动化了,也有点生疏了,所以关于框架方面不能给很多建议给你。

9、稳定性测试主要关注点是什么?与性能测试和压力测试的主要区别在哪里?
专家解答:个人觉得稳定性测试在某种程度上就是压力测试,因为压力测试就是关注系统在一定的压力下,系统的稳定性;象负载测试、压力测试、容量测试等,我们都可以把它叫做性能测试,只是他们更具体在某个方面。下面给出一些常用性能测试方面的术语的解释。不要太纠结这个问题。
负载测试:是指在一定的软件,硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率,负载测试强调的是在一定的环境下系统能够达到的峰值指标,
压力测试:指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,是服务器的资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。与负载测试获得峰值性能测试数据不同,压力测试强调在极端情况下系统的稳定性,这个时候处理能力已经不重要了。
容量测试:指在一定的软件、硬件及网络环境下,在数据库中构造不同数量级别的数据记录,运行一种或多种业务在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标,以确定数据库的最佳容量和最大容量。容量测试不仅可以对数据库进行,还可以对硬件处理能力、各种服务器的连接能力等进行,以此来测试系统在不同容量级别下是否能达到指定的性能。容量测试主要关心的是how much,儿负载测试则同时强调how much 和how fast.
基准测试:指在一定的软件、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果或者为系统的选择提供决策数据。基准测试一般基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善。
并发测试:指通过模拟多个用户并发访问同一个应用、存储过程或数据记录以及其他并发操作,测试是否存在死锁、数据错误等故障。为了避免数据库或函数方法在并发下的错误,需要专门针对每个模块进行并发测试。

10、做测试有1-2年时间,对测试也不是很了解。在工作中,测试和文档只有我一个人。由于技术不好,如今越来越偏离了测试。公司也很少让我测试了。我其实非常喜欢测试,但不知道如何去钻研,想学的也很多。想换工作,但因为技术不好,估计很难混进去的。那我要如何提高自己的技术,换个好的工作环境呢?我的目标是:测试经理。。。望专家能解答。
专家解答:首先我想说的是,您要对自己有信心,不要太贬低自己,从您的描述中,可以看得出您公司的测试应该是不规范的,不正规的,也是不专业的。软件测试和软件开发它也是有它的流程的,不可能一个人做所有的事,也许这也是国内软件测试的现状吧,很多公司不重视测试,觉得测试可有可无,觉得测试会浪费成本,一但项目上线,在交付给客户的时候,出现了问题,这个时候慌了,想到测试了。打个比方,就象你去买个手机,你是看它的功能,还是看它的质量,还是两者都看?如果连基本的接和打电话都有问题,再多功能它又有何用?
您说您非常喜欢测试,呵呵,我觉得您已经离高手不远了,因为兴趣是最好的老师,其次,您有求知的欲望,所以我相信您一定能在测试这个领域走的非常远的。其实测试领域是非常广的,从黑盒测试、自动化测试、性能测试、安全测试。自动化测试、性能测试、安全测试等相对工资比较高,您该如何学习,该学什么内容,这个要看您的职业规划,看您今后想走什么路线。从您的问题中您是想从技术到管理,我给个大致的建议,仅供您参考,1.技术方面:首先,您可以测试理论(黑盒测试理论、白盒测试理论),2.其次可以深入研究一门自动化测试或者性能测试,另外学习一下开发基础(java),3.外语:精通一门外语(在外企,工资福利,我个人觉得是比较好的),4.管理:自己可以有意识的关注管理方面的知识,5.人文素养(可以关注一下历史,励志方面的);6.积累业务知识。当您积累3年左右经验的时候,我相信您一定能走上您所希望的岗位的。希望您能坚持到底。
还是想说的,要对自己有信心,要相信自己的能力。其实换工作也没那么难,你都没经历过,你怎么知道自己就不能混进呢?很多伟人,他们一开始也不知道自己在将来的某一条能有很大的成就的,能力是在磨练中成长的。给您推荐一本书<<让我们共同成长>>(讲诉从白手起家到成功企业家的艰难路程)。
以上所有回答仅是个人意见,也许不一定能回答到您的问题,仅供参考。

11、在一家传媒公司负责web测试工作,就是it168文库测试,整个文库就我一个人负责,没有办法保证线上没有一点儿问题,前几日出现了一个大bug,尽管我使用了虚拟机/测试机/远程/等等手段,可是还是觉得有心无力,每次上线都会很担心,怎么才能尽可能多的覆盖呢?
专家解答:我想说的是,测试不是一个人的事,它需要一个团队。从测试需求分析、用例分析与设计、执行测试用例、总结测试结果、每一个阶段都需要人。一个人,就是很粗心、很大意的去把整个系统过一遍都难,何况是测试是需要很严谨、很仔细的工作。再者,任何事物都是有缺陷的,软件测试的七条原则的第一条原则就是bug本身就是无穷尽的,我们软件测试工程师就是尽可能的保证软件的质量。关于最后系统上线,出现问题,这个责任该归咎与谁,这个在测试和开发中一直都在争论中,从开发的角度讲,出现问题,应该是测试人员没做好,不然要测试部门干什么,而测试部门则认为开发部门开发能力的问题,没做好,再者任何事物都是有缺陷的,bug本身就是无穷尽的。
关于如何尽可能多的覆盖,这个问题挺大的,首先,在测试需求分析与提取阶段,您要做的非常细,您要把开发的需求分析的每个功能点提取出来,把能测试的再做进一步的提取,只要把这些功能点覆盖到了,我个人觉得测试人员的职责已经尽到了。
关于系统上线,总担心会出问题,不同的环境,系统会出问题,这个是正常的,即使前期做很仔细的测试。我个人建议,您可以向公司管理层建议加大测试部门的投入,一个人是做不好的,其次是测试流程规范的建立,把自己所做的测试做个总结报告,每个星期,或者每个月,以报告的形式发给您的领导,让它知道您做的事的成果。

12、web测试环境搭建时,网络方面主要考虑哪些点?
专家解答:web测试环境搭建,要看您的项目的大小,就我经历的,开发环境是由开发人员自己搭建的,测试环境,由测试人员搭建,QA环境(也就是产品环境,是最后要交付给客户的,所以这个环境要求是和客户的环境是一样的),如果项目涉及服务器集群、性能方面的,这个环境的搭建需要开发人员、测试人员、系统配置人员、网络人员都参与的。至于这个网络需要考虑哪些方面,全部依赖于客户的环境,比如带宽等。其它的测试环境,网络方面没有考虑很多因素,我只负责项目在Linux下的部署,网络方面由其它人负责,再者我网络也不怎么熟练。所以您的问题也不能很好的回答您,当然如果您有您的好的想法也可以与我分享,谢谢。

13、我是由开发转向测试的,现在做测试刚好半年时间,公司是做互联网的,我是第一个也是唯一的一个测试,关于产品规划到开发代码到测试维护这块公司内部流程很乱很杂,往往是一个产品将要上线了才把文档让我看一遍,对着文档进行测试,什么不懂的就去问产品经理,因为我们公司是电子商务公司,所以我每天还要接收客服反馈的问题,然后再去找开发。我正在规划自己的学习计划,看到好多前人都在讨论QTP和LR,自己也找到这两本书的电子版的,如果后续我单独只提升QTP可以么?或者是只单独提升LR,还是两者都要兼顾,你能不能按照我自身的条件帮我解答一下,万分感谢 !
专家解答:我把您描述的问题从三个方面来回答您
1.您的条件
“我是由开发转向测试的,现在做测试刚好半年时间,公司是做互联网的”首先您具备开发技术的知识,我觉得这个在您做测试时很就有优势的,它能帮助您很好的理解所测系统的原理,从而更好的展开测试工作,做测试是需要开发技术的。
2.您目前工作的状况
我是第一个也是唯一的一个测试,关于产品规划到开发代码到测试维护这块公司内部流程很乱很杂,往往是一个产品将要上线了才把文档让我看一遍,对着文档进行测试,什么不懂的就去问产品经理,因为我们公司是电子商务公司,所以我每天还要接收客服反馈的问题,然后再去找开发”您遇到的问题不能怪您,您遇到的问题在国内很多公司或多或少都存在这样的问题,他们不重视测试,觉得测试时浪费成本,觉得测试一个人就够了,其实这是不对的,测试有流程的,您可以向贵公司提出组建或者扩大软件测试部门的建议,向他们灌输测试的重要性,要想走出现有问题,得建立一套适合贵公司自己的软件测试流程、测试规范、不要做随机测试,感觉贵公司的测试好像就是在系统上线的时候,在交付给客户的时候,才匆匆忙忙的做测试,这样系统肯定会有很多问题的。应该从需求的前期,到系统测试,系统集成测试、用户验收测试,如果贵公司的投入有限,也可以只关注系统测试、系统集成测试、用户验收测试。“所以我每天还要接收客服反馈的问题,然后再去找开发”测试本身就需要很有耐心,很细心,很好的沟通能力,所以您必须培养能的这些能力,我们应该学着如何与客户沟通。
3.我该如何学习软件测试方面的技术
我正在规划自己的学习计划,看到好多前人都在讨论QTP和LR,自己也找到这两本书的电子版的,如果后续我单独只提升QTP可以么?或者是只单独提升LR,还是两者都要兼顾,你能不能按照我自身的条件帮我解答一下,万分感谢 !”首先我想说的是,无论是走自动化测试QTP还是走性能测试,都需要您有很好的开发背景,很好的编程能力,它一点也不逊于开发,其实无论是做开发还是做自动化,都需要有一段过程与经历,其实您可以问一下做过3~5年左右的开发人员,他们开始都有过有心无力的感觉,也害怕leader给的任务,害怕在规定的时间内无法完成,遇到技术问题,害怕无法解决,他们都有过为了解决某个技术问题,长时间的加班到凌晨2~3点,甚至通宵。只是长时间的积累,他们变得熟练了,所以就您要达到某个Level,有些阶段是必须要去经历的。当然,正如您自己所说的,也许您真的不太适合做开发,或者更适合做测试,我个人认为测试相对于开发,稍微的轻松一点。如果您想走自动化,当然还有测试理论您也关注,我建议您还是只关注自动化,性能测试可以稍微了解就可以。至于英语的提升,需要您坚持,坚持一年的时间就可以了,这种坚持是每天都要去做的,不然很难有效果的,这里给您推荐《老友记》,练口语的,您需要反复不停的重复,不要当电视看,记住是反复不停的重复,甚至是去背台词,给你推荐一篇博文,http://blog.csdn.net/jasonteststudy/article/details/7312627,是关于英语的。至于数据库,我个人觉得是要学的,而且要学好,不需要太深入,可以选择一种数据库mysql,sqlserver或者oracle。觉得用到最多的可能就是sql语句了,可以加强一下,推荐一本关于sql的书李俊民主编的<<精通SQL结构化查询语言详解>>

14、做黑盒测试2年了,想往白盒测试发展,但是公司目前也没有运用到自动化测试,大多是功能测试,但我感觉测试不全面,因为实际用户情况还是会涉及到并发和性能方面的,这个时候程序的不足就暴露出来了,请问这种情况要怎么去做并发和性能的测试呢?如何自学自动化工具,但是公司实际又用不到,头疼。
专家解答:您都做黑盒测试两年了,我不知道您为什么想做白盒测试,做黑盒测试不好吗?白盒测试不一定就比黑盒测试高深,都一样,每个领域都有专家,每个领域都需要专家。我们做测试是要确保软件的质量,不要为了自动化而自动化,自动化只是为软件测试提高效率服务的,它并不能帮助我们发现更多的bug,再者并不是所有的项目都适合做自动化,并不是在软件测试的每个阶段都能引入自动化,自动化只是用于回归测试阶段的(只针对于GUI层的自动化),在系统达到稳定状态下,在没有开发那边没有频繁的更改功能或界面组件的前提下,我们为了降低成本,提高效率产对之前的功能通过自动化做一次或者几次回归的。我们测试是以客户需求为导向的,只要把所有的需求点都覆盖到了,都测试过了,大体就达到要求了,为什么要做并发或者性能测试,如果客户本身就没有这个需求,您为什么要去做它呢,不一定只有通过性能测试才能发现问题的,再者引入性能测试是需要成本的,当然您能发现性能方面的问题也是很好的。如果您不是走自动化测试路线,可以把自动化测试做个了解,学到一定程度就可以了,等以后有项目机会了再深入也不迟。

15、做手工测试快一年了,感觉有点迷茫了。总觉得自己现在停止不前,不知道从哪方面提升自己。但细想起来,我需要学习的东西太多,又不知道从何入手(数据库知识、外语、自动化测试、强化理论知识等),希望你能给我些建议,谢谢!
专家解答:迷茫的时候,说明我们开始思考了,其实,人生的每个阶段都有它的迷茫期,从一个阶段到另一个阶段。该如何学习,学习的东西太多,该如何下手。这些要根据您的职业规划,其实您已经把您要学的知识都罗列出来了,您可以一个接一个学,不要太着急,慢慢来。关于数据库,您可以选择一门数据库就可以了,建议选择mysql,这个比较简单,主要关注sql语句就可以了,熟练常用的sql语句,数据库理论知识就可以了,推荐<<精通sql机构化查询语言详解>>,关于外语,这个需要您长时间的坚持,可以看一些好的美剧来练习英语,记住不停的反复,坚持,一年以后就会有效果了(个人体会),关于自动化,这个可以做一些了解,可以上播布客网找小强老师讲的视频,在找一本自动化测试方面的书,学完这些大概就差不多了,至于测试理论,这个也需要您强化,可以找一本比较系统的测试理论书籍,过一遍就好了。

16、想做好手工测试对性能方面的知识是否要进行系统的学习,在写测试用例的时候,怎样能全部覆盖,又不出现冗余?
专家解答:性能测试可学可不学,不过可以做一下了解,不需要深入。测试用例如何全部覆盖,其实这个是有难度的,总有些地方考虑不全,可以把所有的需求点一个一个的罗列出来,如果一个用例不能覆盖完,可以多写几个,或者借用一些常用的测试用例设计方法帮助自己分析,进而避免遗漏。

17、你好,我想咨询下如何给桌面类的软件做自动化测试。我们现在的产品测试太依赖人了,bug往往隐藏在多个操作的组合里,而这些组合太多太多,觉得用列是写不完的感觉。所以像这样的再系统测试阶段怎么做自动化测试?
专家解答:像这样的情况,我个人觉得您应该更多的关注测试用例的设计,如何让测试用例覆盖到所有的组合点,自动化测试,它的脚本录制或者编写也是需要依赖于测试用例设计的。我建议您把所有的组合都好好的思考一下,之后写成测试用例,然后按照这些测试用例录制成自动化脚本,然后再修改增强脚本,看如何让脚本更优化,其次自动化测试是用于回归测试阶段的,而不是系统测试阶段的,如果您系统测试阶段,系统GUI没有变动,当然也可以引入自动化,不然后期的脚本维护是相当大的。至于如何给桌面类的软件做自动化测试,您的这个问题太大了,它和给web app做自动化应该没什么区别,只是协议不同而已,QTP支持B/S和C/S的。

18、你在设计测试用例的时候会用到因果图吗,我为什么觉得画这个是在浪费时间呢?
专家解答:测试用例的设计方法是为我们测试用设计时候服务的,不一定要用它,您觉得您分析能力很强,能够很容易、很清楚的设计出来,为什么还要多此一举去用那些方法呢!!不要为了用方法而用方法。您说的非常对,有的时候,用因果图确实是在浪费时间,就我个人,用到因果图的时候也不多,除非牵涉到的条件非常多的时候,可能会用到因果图帮助分析,一般也不怎么用。


----------------------------------------------------------------------------------------------------------------
转自:51testing你问我来答 http://bbs.51testing.com/thread-553711-1-1.html
回答者:王文革



480°/4770 人阅读/3 条评论 发表评论

袁帅  2012-05-30

写的真好


辜顺利  2012-06-03

不错,收藏了


张林  2012-06-04

PS,
1.不要忘了价值驱动测试......
2.据说3-5双眼睛才能找出80%的bug


登录 后发表评论