软件测试的基本概念是什么?
软件质量与软件测试:软件测试是软件质量保证工作的一个重要环节。
软件测试和软件质量保证是软件质量工程的两个不同层面的工作。
软件测试只是软件质量保证工作中的一个重要环节。
质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量,它所关注的是软件质量的检查和测量。
软件测试所关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。
以上是我对于这个问题的解答,希望能够帮到大家。
软件测试的基础知识概要是什么?
信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。
不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。
用户为了保证自己业务的顺利完成,当然希望选用优质的软件。
质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。
在一些关键应用 (如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御和核电站安全控制系统等) 中使用质量有问题的软件,还可能造成灾难性的后果。
软件危机曾经是软件界甚至整个计算机界最热门的话题。
为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。
现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。
有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。
问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
给软件带来错误的原因很多,具体地说,主要有如下几点: ①、交流不够、交流上有误解或者根本不进行交流 在应用应该做什么或不应该做什么的细节(应用的需求)不清晰的情况下进行开发。
②、软件复杂性 图形用户界面(gui),客户/服务器结构,分布式应用,数据通信,超大型关系型数据库以及庞大的系统规模,使得软件及系统的复杂性呈指数增长,没有现代软件开发经验的人很难理解它。
③、程序设计错误 向所有的人一样,程序员也会出错。
④、需求变化 需求变化的影响是多方面的,客户可能不了解需求变化带来的影响,也可能知道但又不得不那么做。
需求变化的后果可能是造成系统的重新设计,设计人员的日程的重新安排,已经完成的工作可能要重做或者完全抛弃,对其他项目产生影响,硬件需求可能要因此改变,等等。
如果有许多小的改变或者一次大的变化,项目各部分之间已知或未知的依赖性可能会相互影响而导致更多问题的出现,需求改变带来的复杂性可能导致错误,还可能影响工程参与者的积极性。
⑤、时间压力 软件项目的日程表很难做到准确,很多时候需要预计和猜测。
当最终期限迫近和关键时刻到来之际,错误也就跟着来了。
⑥、自负人更喜欢说:'没问题','这事情很容易','几个小时我就能拿出来' 太多不切实际的‘没问题’,结果只能是引入错误。
⑦、代码文档贫乏 贫乏或者差劲的文档使得代码维护和修改变的异常艰辛,其结果是带来许多错误。
事实上,在许多机构并不鼓励其程序员为代码编写文档,也不鼓励程序员将代码写得清晰和容易理解,相反他们认为少写文档可以更快的进行编码,无法理解的代码更易于工作的保密(“写得艰难必定读的痛苦”)。
⑧、软件开发工具 可视化工具,类库,编译器,脚本工具,等等,它们常常会将自身的错误带到应用软件中。
就象我们所知道的,没有良好的工程化作为基础,使用面向对象的技术只会使项目变得更复杂。
为了更好地解决这些问题,软件界做出了各种各样的努力。
人们曾经认为更好的程序语言可以使我们摆脱这些困扰,这推动了程序设计语言的发展,更多的语言开始流行,为了使程序更易于理解开发了结构化程序设计语言,如pl/1,pascal等;为了解决实时多任务需求开发了结构化多任务程序设计语言,如modula,ada等;为了提高重用性开发了面向对象的程序设计语言,如simlasa等;为了避免产生不正确的需求理解,开发形式化描述语言,如hal/s等,这使得建立基于自然语言的描述成为可能,人们以形式化语言来描述需求;为了支持大型数据库应用,开发了可视化工具,如visual studio、power builder等。
程序语言对提高软件生产效率起到了一定的积极作用,但它对整个软件质量尤其是可靠性的影响,与其他因素相比作用较小。
可能是因为程序语言基于严格的语法和语义规则,人们企图用形式化证明方法来证明程序的正确性。
将程序当作数学对象来看待,从数学意义上证明程序是正确的是可能的。
数学家对形式化证明方法最有兴趣,在论文上谈起来非常吸引人,但实际价值却非常有限,因为形式化证明方法只有在代码写出来之后才能使用,这显然太迟了,而且对于大的程序证明起来非常困难。
受到其他行业项目工程化的启发,软件工程学出现了,软件开发被视为一项工程,以工程化的方法来进行规划和管理软件的开发。
针对需求不确定的应用,可以使用渐进和迭代类的开发模型。
还可以采用快速应用程序开发(rad)和协同应用程序开发(jad)技术,由软件开发者和用户代表共同参与开发软件规范。
rad和jad的基本思路是开发者和用户共同设计系统中的屏幕,开发者迅速地把实现这些屏幕的最基本功能编写好,然后把它们交给用户看,然后用户和开发者回顾这些屏幕以确认它们达到了用户的要求,这个周期一直持续到系统的基本部分定义...
软件测试基本理论?
软件测试概念:通过各种手段和测试工具,判断软件系统是否能够满足预期期望。
从软件开发的过程按阶段划分有A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试 * 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
* 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
* 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
* 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
* 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
单元测试 (Unit Testing) * 单元测试又称模块测试,是针对软件设计的最小单位 — 程序模块,进行正确性检验的测试工作。
其目的在于发现各模块内部可能存在的各种差错。
* 单元测试需要从程序的内部结构出发设计测试用例。
多个模块可以平行地独立进行单元测试。
1. 单元测试的内容 * 在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。
(1) 模块接口测试 * 在单元测试的开始,应对通过被测模块的数据流进行测试。
测试项目包括: – 调用本模块的输入参数是否正确; – 本模块调用子模块时输入给子模块的参数是否正确; – 全局量的定义在各模块中是否一致; * 在做内外存交换时要考虑: – 文件属性是否正确; – OPEN与CLOSE语句是否正确; – 缓冲区容量与记录长度是否匹配; – 在进行读写操作之前是否打开了文件; – 在结束文件处理时是否关闭了文件; – 正文书写/输入错误, – I/O错误是否检查并做了处理。
(2) 局部数据结构测试 * 不正确或不一致的数据类型说明 * 使用尚未赋值或尚未初始化的变量 * 错误的初始值或错误的缺省值 * 变量名拼写错或书写错 * 不一致的数据类型 * 全局数据对模块的影响 (3) 路径测试 * 选择适当的测试用例,对模块中重要的执行路径进行测试。
* 应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。
* 对基本执行路径和循环进行测试可以发现大量的路径错误。
(4) 错误处理测试 * 出错的描述是否难以理解 * 出错的描述是否能够对错误定位 * 显示的错误与实际的错误是否相符 * 对错误条件的处理正确与否 * 在对错误进行处理之前,错误条件是否已经引起系统的干预等 (5) 边界测试 * 注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。
对这些地方要仔细地选择测试用例,认真加以测试。
* 如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。
2. 单元测试的步骤 * 模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。
– 驱动模块 (driver) – 桩模块 (stub) —— 存根模块 * 如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。
必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。
* 对支持某些标准规程的程序,更要着手进行互联测试。
有人把这种情况特别称为模块测试,以区别单元测试。
集成测试(Integrated Testing) * 集成测试 (集成测试、联合测试) * 通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。
这时需要考虑的问题是: – 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; – 一个模块的功能是否会对另一个模块的功能产生不利的影响; – 各个子功能组合起来,能否达到预期要求的父功能; – 全局数据结构是否有问题; – 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
在单元测试的同时可进行集成测试, 发现并排除在模块连接中可能出现 的问题,最终构成要求的软件系统。
* 子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。
* 通常,把模块集成成为系统的方式有两种 – 一次性集成方式 – 增殖式集成方式 1. 一次性集成方式(big bang) * 它是一种非增殖式组装方式。
也叫做整体拼装。
* 使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统。
2. 增殖式集成方式 * 这种集成方式又称渐增式集成 * 首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统 * 在集成的过程中边连接边测试,以发现连接过程中产生的问题 * 通过增殖逐步组装成为要求的软件系统。
(1) 自顶向下的增殖方式 * 这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装。
* 自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断点。
* 选用按深度方向组装的方式,可以首先实现和验证一个完整的...
软件测试的几个基本原则
我一直认为软件测试是一件很有原则的工作,这个原则是最重要的,方法都应该在原则指导下进行。
软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现 Bug,并负责跟踪和分析产品中的问题,对不足之处提出质疑和改进意见。
软件零缺陷(Zero-Bug) 是一种理念,足够好(Good-Enough)是测试的基本原则。
为了达到这个足够好,在软件测试过程中,应注意和遵循的一些基本原则,可以概括为以下几项,我认为适合绝大多数的软件测试工作了。
1. 所有测试的标准都是建立在用户需求之上。
正如我们所知,软件测试的目标就是验证产品的一致性和确认产品是否满足客户的需求,所以测试人员要始终站在用户的角度去看问题、去判断软件缺陷的影响,系统中最严重的错误是那些,导致程序无法满足用户需求的缺陷有那些。
2. 必须基于 “ 质量第一 ” 的思想去开展各项软件测试工作,当时间和质量冲突时,时间要服从质量。
强烈质量的意识、理念和文化(如零缺陷、足够好的目标)同样是软件测试工作的基础。
3. 事先定义好产品的质量标准。
有了质量标准,才能依据测试的结果对产品的质量进行正确的分析和评估,例如,进行性能测试前,应定义好产品性能的相关的各种指标。
同样,功能及其它测试也应该事先定义好标准,包括测试用例应确定预期输出结果,如果无法确定测试结果,则无法进行校验。
4. 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。
这个观念现在越来越受重视了,在代码完成之前,测试人员要参与需求分析、系统或程序设计的审查工作,而且要准备测试计划、测试用例、测试脚本和测试环境,测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后开始。
应当把“尽早和不断地测试”作为测试人员的座右铭。
5. 穷举测试是不可能的。
甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一种组合,然而,充分覆盖程序逻辑,包括业务逻辑、数据流程逻辑等,并确保程序设计中使用的所有条件是有可能的。
6. 第三方进行测试会更客观,更有效。
程序员应避免测试自己的程序,为达到最佳的效果,应由第三方来进行测试。
测试是带有 ”挑剔性” 的行为,心理状态是测试自己程序的障碍。
同时对于需求规格说明的理解产生的错误也很难在程序员本人测试时被发现。
要做出“经得起考验和测试的产品”。
7. 软件测试计划是做好软件测试工作的前提。
所以在进行实际测试之前,应制定良好的、切实可行的测试计划并严格执行,特别要确定测试策略和测试目标。
有效的测试策略和明确的测试目标。
8. 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
除了检查程序是否做了应该做的事,还要看程序是否做了不该做的事;不仅应选用合理的输入数据,对于非法的输入也要设计测试用例进行测试。
要知道好的测试用例真的会有效且事半功倍。
9. 不可将测试用例置之度外,排除随意性。
特别是对于做了修改之后的程序进行重新测试时,如不严格执行测试用例,将有可能忽略由修改错误而引起的大量的新错误。
所以,回归测试的关联性也应引起充分的注意,有相当一部分最终发现的错误是在早期测试结果中遗漏的。
其它所有工作都应该避免随意性。
10. 对发现错误较多的程序段,应进行更深入的测试。
一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
越需要深入和多次测试。
在实际的测试中时刻牵记这些基本原则,不仅会让工作更充分,而且会让工作越来越轻松,关键是有效果。
所以让我们做有“原则性”的测试工作吧!
软件测试的基本标准是什么?
1)所有的测试都应追溯到用户需求。
软件测试的目标在于揭示错误。
从用户角度来看,最严重的错误是那些导致程序无法满足需求的错误。
(2)应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
应该在测试工作真正开始前的较长时间内就进行测试计划。
测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。
因此,所有测试应该在任何代码被产生前就进行计划和设计。
(3)pareto原则:测试发现的错误中80%很可能起源于20%的模块中。
当某个功能出问题,其对用户的影响有多大?然后根据风险大小确定测试的优先级。
优先级高的测试,优先得到执行,一般来讲,针对用户最常用的20%功能(优先级高)的测试会得到完全执行,而低优先级的测试(另外用户不经常用的80%功能)就不是必要的,如果时间或经费不够,就暂时不做或少做。
(4)完全测试是不可能的,测试需要终止。
测试无法显示软件潜在的缺陷,“测试只能证明软件存在错误而不能证明软件没有错误”。
最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。
在测试中不可能运行路径的每一种组合。
然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。
(5)应由独立的第三方来构造测试。
第三方测试最大的特点在于它的专业性、独立性、客观性和公正性。
对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观、科学的评价,有助于开发商认清自己产品的定位。
对于行业主管部门以及软件使用者来说,由于第三方测试机构独立公正的地位,可以对被测试的软件有一个客观公正的评价,帮助用户选择合适、优秀的软件产品。
(6)充分注意测试中的群集现象。
测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。
不要在某个程序段中找到几个错误就误认为该程序段就没有错误而不再测试,相反应该对错误群集的程序段进行重点测试。
(7)尽量避免测试的随意性。
测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等以及评价标准。
(8)兼顾合理的输入和不合理的输入数据。
(9)程序修改后要回归测试修改程序后,应该重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
(10)应长期保留测试用例,直至系统废弃。
妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护等提供方便。
学习软件测试如何入门?
软件测试入门的话,首先需要掌握测试一些基础概念:比如白盒测试,黑盒测试,回归测试,探索测试等。
其次需要了解测试用例设计方法,测试用例要素,及如何编写好的测试用例。
最后要了解测试流程,如何开展测试工作。
在这基础上,可以在黑马程序员再针对性的学习一些自动化测试相关的技术和方法。
学软件测试一般需要学哪些课程~
第一阶段(软件测试理论及基础)Windows操作系统及网络基础:软件测试概念、计算机层次、软件分类、 互联网概述、 IP地址、虚拟机使用、操作系统安装软件测试基础理论:软件开发阶段划分,软件测试阶段划分,模型和分类、软件测试主要原则、测试用例概念、 测试方法选择、 TestDirector概述、软件测试计划编写功能测试项目实践:熟悉软件需求、编写测试计划、编写测试用例、 执行测试用例、提交bug、 编写测试总结报告第二阶段(编程开发技术)Java程序设计:Java开发环境变量的配置, Java程序的基本结构变量、常量、基本数据类型、流程控制,Java面向对象编程的基本概念,Java I/O核心技术, Java网络编程技术,Java的事件处理模型、Swing组件模型, HTML技术、Servlet/JSP技术数据库基础:数据库系统的基本概念,基本SQL语句, 数据完整性约束,索引的创建和使用,视图的创建和使用,高级查询,存储过程的定义和使用, Oracle及SQL Server2008基本操作, SQL Plus的基本使用,PLSQL Developer的使用, 序列,索引,视图,函数和存储过程第三阶段(测试工具)功能测试工具QTP:QTP的基本使用流程, 使用QTP录制应用程序及Web程序,QTP的测试对象管理机制、对象仓库的使用, 标准检查点、文本检查点、文本域检查点、图像检查点、数据库检查点、其他检查点, 脚本参数化, 使用模拟录制模式、使用低级录制模式、使用QTP进行回归测试, VBScript基本语法结构性能测试工具LoadRunner:自动化工具分类,性能测试简介,Loadrunner概述;负载/压力测试计划的编写;开发脚本VuGenerator; 设计和运行场景---Controller;分析结果Analysis,LoadRunner数据池技术剖析; HTTP的报文结构,Correlation 技术,Web_reg_save_param函数, LoadRunner中文件下载,网页细分图,LR浏览器模拟设置,LR监视的性能计数器,LR中资源分析实;测试管理工具Quality Center:Quality Center概述,Quality Center产品框架; Quality Center的站点管理; Quality Center的项目管理; Quality Center测试管理中的白盒测试技术与白盒测试工具:白盒测试的方法;圈复杂度的计算; 面向对象的测试; 使用Junit进行单元测试第四阶段(测试实践)Unix操作系统及网络环境:Unix的历史,安装;Unix文件系统结构,FTP工具,目录共享; Unix常用命令; Unix Web服务器安装与配置,MySQL数据库的安装使用,邮件服务器的安装与使用; Unix Perl模块的安装,Shell编程,SecureCRT和SSH;Unix SVN的配置和使用自动化工具项目实践:使用QTP对Web项目进行功能测试;使用LoadRunner进行性能测试; 使用QC进行测试管理
软件测试具体的流程及所要用到的工具
一般测试流程:1.需求分析阶段:只要就是对业务的学习,分析需求点。
2.测试计划阶段:测试组长就要根据SOW开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
3.测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。
《测试方案》编写完成后也需要进行评审。
4.测试方案阶段:主要是对测试用例和规程的设计。
测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。
这时开始编写用例才能保证用例的可执行和对需求的覆盖。
测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。
其中操作步骤和预期结果需要编写详细和明确。
测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。
同样,测试用例也需要评审。
5.测试执行阶段:执行测试用例,及时提交有质量的Bug和测试日报,测试报告等相关文档。
软件测试师要掌握的基础知识有哪些?
1)熟悉计算机基础知识; (2)熟悉操作系统、数据库、中间件、程序设计语言基础知识; (3)熟悉计算机网络基础知识; (4)熟悉软件工程知识,理解软件开发方法及过程; (5)熟悉软件质量及软件质量管理基础知识; (6)熟悉软件测试标准; (7)掌握软件测试技术及方法; (8)掌握软件测试项目管理知识; (9)掌握C语言以及C++或Java语言程序设计技术; (10)了解信息化及信息安全基础知识; (11)熟悉知识产权相关法律、法规; (12)正确阅读并理解相关领域的英文资料。
通过本考试的合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理方法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。
做软件测试都要会哪些?
、 软件测试基础知识: 测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等、CMMI /ISO9001 2、 各种测试工具的使用: 我们在测试的工作中为了能够提高工作效率进程会用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、虽然说工具不是万能的但是工具能为我们提高工作效率所以不能吧工具当神一样看待、但是必须得会熟练的使用 3、 操作系统相关知识: Windows、linux、uinx这些都必须会使用、而且不仅仅是简单的操作、一般的服务管理、注册表编辑、命令行操作都需要会、可以想象下一个连apache服务都不会安装配置的人、谁能想象你可以做好基于apache环境的测试工作、什么?不知道怎么查看磁盘压力、IO数据。
windows linux都有提供自带的工具可用于查看这些数据、perfmon、top什么的。
4、 数据库知识: 现在Oracle的DBA待遇比一般的开发人员待遇还高就知道数据库在企业中的重要性了、作为测试人员虽然不需要有DBA的能力、但是基本的数据库操作你必须得会把、不管是Oracle、DB2、MSsql还是mysql最少都应该能熟悉使用其中的一二。
5、 计算机硬件知识: 做过性能测试的朋友都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。
那么就更不用说了。
交换机、路由器、防火墙这些设备都需要有所了解。
6、 网络协议: 如果你还知道TCP和UDP有什么不一样的话请赶快去补充点知识吧、互联网时代、一切都通过网络传输、常用协议必须得了解、曾经面试了一个测试工程师做了2年的测试居然不知道自己测试软件使用什么协议、这样的人是你的话你敢招么? 7、 开发语言即代码编写能力: 虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。
高级测试工程师的一部分工作就是在写测试工具。
虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是java或者是VB什么的)所以在开发语言中测试需要更广的学习。
8、 行业知识:行业知识之所以写在最后面是因为前面的7条我们都可以通过学习来掌握、但是唯独行业知识却只能通过工作经验来积累、不要说你去看几本书就知道通信行业、医疗行业、或者是航天行业、你认为在书本上面能学到么? 由于行业知识的特殊性所以建议朋友们不要频繁的跳槽、经验的积累是需要时间来沉淀的。
9、 具有一定的美学观: 这个说起来比较拗口一点、简单来说不管是开发活动还是测试活动、最后的目标就是将产品推向市场、而且得到用户的认可。
所以如果产品在需求分析阶段就出现了偏离用户航道、那么就算测试 开发做得再好这个项目也是一样会失败。
所以各位如果有幸能够参加需求评审的话、请不要吝啬你的言论。
10、请不要忘记时刻学习着: 这点我相信大家应该都能理解所以不用写什么:仅此一点“不学习就会落后” 总结:说了那么多技能或者是说是需要掌握的技术、如果你没有一颗发现缺陷之美的心态、没有一颗以提高质量为前提来投入工作中、那么就算你其他做得再好也不过是万千软件测试从业人员中的一枚。
测试活动大部分用于发现缺陷、而发现缺陷之后的工作尤为重要:怎么样从发现缺陷到提高质量。