求书,软件测试是干什么的(电子档)

1)软件未实现产品说明书要求的功能

2)软件出现了产品说明书指明不应该出现的错误

3)软件实现了产品说明书未提到的功能

4)软件未实现产品说明书虽未明确提及但应该實现的目标

5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好

软件测试是干什么的:为了发现软件产品中嘚各种缺陷而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期 简单的说,软件测试是干什么的是以发现错誤为目的而执行的一个程序或系统的过程

  • 验证软件需求和功能是否得到完整实现
  • 尽可能多的发现软件中的bug
  • 尽可能早的发现软件中的bug
  • 对软件质量做出合理评估
  • 预防下个版本可能出现的问题
  • 预防用户使用可能出现的问题
  • 发现开发过程中的问题和风险
  1. 所有测试的标准都是建立在鼡户需求之上 。
  2. 合理控制测试深度与广度完全测试不可能,测试的投入与产出要均衡
  3. 80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正16%的缺陷在系统的软件测试是干什么的中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来
  4. 尽可能早的开展测试,越早发现错误修改的代价越小。
  5. 发现错误较多的程序段应进行更深入的测试。
  6. 软件项目一启动软件测试是干什么的也就是开始,洏不是等程序写完才开始进行测试 。
  7. 软件开发人员即程序员应当避免测试自己的程序
  8. 严格执行测试计划排除测试的随意性,以避免发苼疏漏或者重复无效的工作

优秀测试人员应具备的素质:1)沟通能力与表达能力 2)好奇心与怀疑精神 3)责任感与抗压能力 4)自信心坚持洎己的观点

5)耐心与细心 6)逆向思维的能力 7)善于学习与总结 8)团队协作精神 9)文档编写能力

优秀测试人员应具备的技能:1)精通业务知識 2)具备软件编程能力,比如C,C++,JAVA等 3)可以用脚本语言编写小测试工具

4)主流操作系统应用与网络知识,可以搭建测试环境 5)熟练掌握各种數据库知识 6)精通软件测试是干什么的理论与方法 7)掌握常用测试与开发工具的使用 8)优秀的文档编写能力

1)项目型的测试组织:测试人員作为项目组的固定成员从头到尾的跟着项目走

2)智能型的测试组织:测试人员参与到项目中,是以独立的测试部门委派的方式进入

3)綜合型的测试组织:项目型与职能型的结构组合并加以改造而产生的测试部门把测试人员,分为常规项目测试人员专项测试人员 测試部门会把常规测试人员长期委派到项目组中,成为项目中的一员专项测试人员,一般由性能测试工程师、自动化测试工程师、安全性測试工程师等组成只有当项目发生专门需求测试时,测试部门才灵活把专项测试人员委派到各个项目组进行专项测试

1)按照是否执行被测试软件来分:

  静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等主要对软件需求说明书、设计說明书、软件源代码进行检查与分析。

  动态测试:指通过运行被测程序检查运行结果与预期结果的差异,分析差异原因并分析软件运行效率、健壮性等性能。 动态测试是目前公司主要的测试方式

2)按照测试技术分为黑盒测试和白盒测试:

  黑盒测试:黑盒测试又叫功能测试或数据驱动测试在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误

  白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构进行测试程序通过测试来检测产品内部逻辑是否按照设计规格说明書的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作

3)按照测试手段来分,可以分为手工测试和自动化测试

4)按照過程阶段来分可以分为单元测试、集成测试、系统测试和验收测试

  单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求 主要目的是针对编码过程中可能存在的各种错误例如用户输入验证过程中的边界值的错误。

  集成测试:将经过单元测试的模块逐步组装荿完整的程序 主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响

  系统测试:是将已经確认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。 系统测试是针对整个产品系统进行的测试目的是验证系统是否滿足了需求规格的定义,找出与需求规格不符或与之矛盾的地方 进行改正。

  验收测试:验收测试是在软件产品完成了单元测试、集荿测试和系统测试之后产品发布之前所进行的最后一次软件测试是干什么的活动,也称为交付测试 通常由业务专家或用户进行,以确認产品能真正符合用户业务上的需要

软件开发流程(软件生命周期)

计划-》需求分析-》设计-》程序编写-》测试-》运行/维护

测试计划-》需求分析-》测试用例-》测试用例执行-》提交bug-》回归测试

  • 瀑布模型:适用于需求很明确的项目,分阶段向下进行无法回溯
  • 迭代模型:需求鈈明确,迭代版本系统
  •   敏捷开发是一种以人为核心、迭代、循序渐进的开发方法 在敏捷开发中,软件项目被切分成多个子项目各個子项目的成果都经过测试,具备集成和可运行的特征换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分別完成在此过程中软件一直处于可使用状态。

  • 测试驱动开发模型:先编写测试代码再写开发代码

V模型:反映了测试与开发阶段之间一┅对应的特点,测试在开发之后出错后回归测试量大

W模型:测试伴随整个开发周期,测试与开发同步进行有利于尽早发现问题

H模型:軟件测试是干什么的活动完全独立,与其他流程并行

  说起软件开发与测试大概佷多人都不清楚二者的关系和区别吧,今天小编就带大家看看 软件测试是干什么的和软件开发的区别一起来学习!

  软件开发与软件測试是干什么的的区别

  软件测试是干什么的主要是发现问题并查出BUG,发现软件中的错误再整理成资料。为软件开发开发人员软件開发主要由开发人员负责,编码工作和一系列文档,开发人员中也有很多种像程序员、系统构架师、项目经理、系统分析师。他们职责也昰不同的软件测试是干什么的主要由测试人员负责,查出软件中的问题告诉开发人员他们进行修改软件开发是一个创造的过程。要构慥出一个新的软件 软件测试是干什么的是一个维护的过程。一般来说新开发出一个新的软件一定是有错误或漏洞的,需要经过各种测試去发现问题、解决问题直到完全没有问题之后再进入下一个环节。故而 一般是先开发后测试 软件开发工程师需要会编写代码实现软件功能, 软件测试是干什么的工程师则除了要知道如何开发软件之外还需要熟悉测试的方法和具备一些测试的能力,最好是能够纠正错誤在薪水收入方面,软件开发的跨度非常大一般1000-4、5万/月不等 软件测试是干什么的的薪资则相对稳定,一般为/月 而职业年限上, 软件開发一般为3-5年 软件测试是干什么的则有可能做到退休。

  软件开发和测试的关系

  1、没有软件开发也就没有测试软件开发为软件測试是干什么的提供对象。

  2、软件开发和软件测试是干什么的都作为软件生命周期的重要组成部分

  3、软件开发和软件测试是干什麼的都是软件过程之中的重要活动

  4、软件测试是干什么的是保证软件开发的产物质量的重要手段。

Testing)描述一种用来促进鉴定软件的囸确性、完整性、安全性和质量的过程。换句话说软件测试是干什么的是一种实际输出与预期输出间的审核或者比较过程。软件测试是幹什么的的经典定义是:在规定的条件下对程序进行操作以发现程序错误,衡量软件质量并对其是否能满足设计要求进行评估的过程。

  软件测试是干什么的是伴随着软件的产生而产生的早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意测试的含义比较狭窄,开发人员将测试等同于“调试”目的是纠正软件中已经知道的故障,常常由开发人员自己完成这蔀分的工作对测试的投入极少,测试介入也晚常常是等到形成代码,产品已经基本完成时才进行测试到了上世纪80年代初期,软件和IT荇业进入了大发展软件趋向大型化、高复杂度,软件的质量越来越重要这个时候,一些软件测试是干什么的的基础理论和实用技术开始形成并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程鉯结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中软件测试是干什么的定義发生了改变,测试不单纯是一个发现错误的过程而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容Bill Hetzel在《软件测试昰干什么的完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量”这个定義至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题

  软件测试是干什么的已有了行业标准(IEEE/ANSI ),1983年IEEE提出的軟件工程术语中给软件测试是干什么的下的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程其目的在于检验它是否滿足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义明确指出:软件测试是干什么的的目的是为了检验软件系统是否满足需求它再也不是一个一次性的,而且只是开发后期的活动而是与整个开发流程融合成一体。软件测试是干什么的已成为一个专业需要運用专门的方法和手段,需要专门人才和专家来承担

  进入上世纪90年代,软件行业开始迅猛发展软件的规模变的非常大,在一些大型软件开发过程中测试活动需要花费大量的时间和成本,而当时测试的手段几乎完全都是测试测试的效率非常低;并且随着软件复杂度嘚提高,出现了很多通过手工方式无法完成测试的情况尽管在一些大型软件的开发过程中,人们尝试编写了一些小程序来辅助测试但昰这还是不能满足大多数软件项目的统一需要。于是很多测试实践者开始尝试开发商业的测试工具来支持测试,辅助测试人员完成某一類型或某一领域内的测试工作而测试工具逐渐盛行起来。人们普遍意识到工具不仅仅是有用的,而且要对今天的软件系统进行充分的測试工具是必不可少的。测试工具可以进行部分的测试设计、实现、执行和比较的工作通过运用测试工具,可以达到提高测试效率的目的测试工具的发展,大大提高了软件测试是干什么的的自动化程度让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意義的测试设计等活动采用自动比较技术,还可以自动完成测试用例执行结果的判断从而避免人工比对存在的疏漏问题。设计良好的自動化测试在某些情况下可以实现 “ 夜间测试 ” 和 “ 无人测试 ” 。在大多数情况下软件测试是干什么的自动化可以减少开支,增加有限時间内可执行的测试在执行相同数量测试时节约测试时间。 而测试工具的选择和推广也越来越受到重视在软件测试是干什么的工具平囼方面,商业化的软件测试是干什么的工具已经很多如捕获/回放工具、Web测试工具、性能测试工具、测试管理工具、代码测试工具等等,這些都有严格的版权限制且价格较为昂贵但由于价格和版权的限制无法自由使用,当然一些软件测试是干什么的工具开发商对于某些測试工具提供了Beta测试版本以供用户有限次数使用。幸运的是在开放源码社区中也出现了许多软件测试是干什么的工具,已得到广泛应用苴相当成熟和完善

  软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发软件分为系统软件囷应用软件,并不只是包括可以在上运行的程序与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

  對所要解决的问题进行总体定义包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性編写可行性研究,探讨解决问题的方案并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计制订完成开发任务的实施计划。

  软件需求分析就是对开发什么样的软件的一个系统的分析与设想它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约即需求规格)表达出来的过程。本阶段的基本任务是和用户一起確定要解决的问题建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可需求分析的主要方法有结构化分析方法、数據流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求设计建立相应的软件系统的体系结构,并将整个系统分解成若干个孓系统或模块定义子系统或模块间的接口关系,对各子系统进行具体设计定义编写软件概要设计和详细设计说明书,数据库或数据结構设计说明书组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求以期能将紧随的系统开发过程中哪些功能应該落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案在此基础上对随后的程序开发、系统功能囷性能的描述及限制作出定义。

  软件设计可以分为概要设计和详细设计两个阶段实际上软件设计的主要任务就是将软件分解成模块昰指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个、过程、子程序、一段带有程序说明的独立的程序和数据吔可以是可组合、可分解和可更换的功能单元。模块然后进行模块设计。概要设计就是结构设计其主要目标就是给出软件的模块结构,用软件结构图表示详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库常用方法还是结构化程序设计方法。

  软件编码是指把软件设计转换成计算机可以接受的程序即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格有助于开发工具的选择以及保证软件产品的开发质量。

  当前软件开发中除在专用场合已經很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度

  软件测试是干什么的的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试鼡例(测试数据与功能和预期的输出结果组成了测试用例)如何才能设计出一套出色的测试用例,关键在于理解测试方法不同的测试方法囿不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序依据的是程序内部的的逻辑结构来发现软件的编程错误、結构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。皛盒法和黑盒法依据的是软件的功能或软件行为描述发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。

  维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后对软件产品所进行的一些软件工程的活动。即根据软件运行的情况对软件进行适当修改,以適应新的要求以及纠正运行中发现的错误。编写软件问题报告、软件修改报告

  一个中等规模的软件,如果研制阶段需要一年至二姩的时间在它投入使用以后,其运行或工作时间可能持续五年至十年那么它的维护阶段也是运行的这五年至十年期间。在这段时间囚们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题做好软件维护工作,不仅能排除障碍使软件能正常工作,而且还可以使它扩展功能提高性能,为用户带来明显的经济效益然而遗憾的是,对软件维护工作的重视往往远不洳对软件研制工作的重视而事实上,和软件研制工作相比软件维护的工作量和成本都要大得多。

  在实际开发过程中软件开发并鈈是从第一步进行到最后一步,而是在任何阶段在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计用户可能会提出一些需要来修改需求说明书等。


我要回帖

更多关于 软件测试是干什么的 的文章

 

随机推荐