一文告诉你黑盒测试、白盒测试、集成测试和系统测试的区别与联系

于开发人员来讲,每每对各类测试方法感到疑惑。特别是在整合代码的时候,咱们就能深入感受受到测试的重要性。不少开发人员只注重写代码,轻视测试的重要性。老是代码一写完提交而后就交给测试组测试了,没多久测试组发回测试报告。而后又苦恼的修改本身代码的bug,慢慢地就开始讨厌测试组人员。没有通过本身细心测试的代码,不只浪费了别人时间更影响到了本身的心情。
接下来为你们细心讲述一下各类测试应用的环境及做用面试

1、测试环境和角色
黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试 :
这些测试的范围正好是逐步递增的关系,可是测试的人员角色是不一样。安全

黑盒测试、白盒测试、单元测试:开发人员分在不一样的开发阶段要作的事情
黑盒测试、集成测试、系统测试:测试人员在测试周期内级层作的工做
验收测试:通常是在用户方作的工做服务器

2、根据不一样的范围
测试能够分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、又内至外、按部就班的测试过程和分而治之的思想。网络

3、测试的功能ide

1.单元测试 粒度最小,通常由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,通常来讲,要根据实际状况去断定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中能够指一个窗口或一个菜单等。总的来讲,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程当中要进行的最低级别的测试活动,软件的独立单元将在与程序的其余部分相隔离的状况下进行测试。函数

2.集成测试 界于单元测试和系统测试之间,起到“桥梁做用”,通常由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。 主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的更大部分。方法是测试片断的组合,并最终扩展成进程,将模块与其余组的模块一块儿测试。最后,将构成进程的全部模块一块儿测试。此外,若是程序由多个进程组成,应该成对测试它们,而不是同时测试全部
集成测试进程。性能

3.系统测试 粒度最大,通常由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。在通过以上各阶段测试确认以后,把系统完整地模拟客户环境来进行的测试。系统测试是将已经确认的软件、计算机硬件、外设、网络等其余元素结合在一块儿,进行信息系统的各类组装测试和确认测试,其目的是经过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.。它的的任务是尽量完全地检查出程序中的错误,提升软件系统的可靠性,其目的是检验系统"作得怎样?"。这阶段又可分为三个步骤:模块测试,测试每一个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否知足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题以后要通过调试找出错误缘由和位置,而后进行改正。是基于系统总体需求说明书的黑盒类测试,应覆盖系统全部联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否知足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
系统测试的对象不只仅包括须要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。所以,必须将系统中的软件与各类依赖的资源结合起来,在系统实际运行环境下来进行测试单元测试

4.验收测试与系统测试类似,主要区别是测试人员不一样,验收测试由用户执行。测试

5.黑盒测试:不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否知足需求规格说明书。 通常会有一个输入值,一个输入值,和指望值作比较。黑盒测试也称功能测试,它是经过测试来检测 每一个功能是否都能正常使用。在测试中,把程序看做一个不能打开的黑盒子,在彻底不考虑程序 内部结构和内部特性的状况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
6.白盒测试:主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑构,测试手段有:语句覆盖、断定覆盖、条件覆盖、路径覆盖、条件组合覆盖。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,经过测试来检测产品内部动做是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预约要求正确工做。 这一方法是把测试对象看做一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序全部逻辑路径进行测试,经过在不一样点检查程序的状态,肯定实际的状态是否与预期的状态一致。设计

系统测试和集成测试的区别

通常的小系统区分不是很大的

1.计划和用例编制的前后顺序
从V模型来说,在需求阶段就要制定系统测试计划和用例,HLD的时候作集成测试计划和用例,有些公司的具体实践不同,可是顺
序确定是先作系统测试计划用例,再作集成

2.用例的粒度
系统测试用例相对很接近用户接受测试用例
集成测试用例比系统测试用例更详细,并且对于接口部分要重点写,毕竟要集成各个模块或者子系统

3.执行测试的顺序
先执行集成测试,待集成测试出的问题修复以后,(配置管理,基线化),再作系统测试。

4.用例的数量
系统测试的用例数量通常比集成测试的用例数量少,具体的数量要根据各个公司的性能基线来肯定,通常写不到这个数量的测试用例还通不过审计

系统测试这个称呼每每被用于压力测试、容量测试、性能测试、安全测试等方面。

而集成测试这个称呼每每被用于细节化的功能测试的超集——从用户需求来设计和组织较大颗粒度的功能测试。

系统测试最主要的就是功能测试,测试软件《需求规格说明书》中提到的功能是否有遗漏,是否正确的实现。作系统测试要严格按照《需求规格说明书》,以它为标准。测试方法通常都使用黑盒测试法;
集成测试在系统测试以前,单元测试完成以后系统集成的时候进行测试。集成测试主要是针对程序内部结构进行测试,特别是对程序之间的接口进行测试。集成测试对测试人员的编写脚本能力要求比较高。测试方法通常选用黑盒测试和白盒测试相结合。

集成测试:是在软件系统集成过程当中所进行的测试,其主要目的是检查软件单位之间的借口是否正确。它根据集成测试计划 ,一边将模块或其余年间单位组合成愈来愈大的系统,一边运行该系统,以分析所组成的系统是否正确,各个组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。也能够理解为在软件设计单元、功能模块组装、集成为系统时,对应用系统的各个部件(软件单元、功能模块接口、连接等)进行的联合测试,以决定他们可否在一块儿共同工做,部件能够是代码块、独立的应用、网络上的客户端或服务器端程序。

系统测试:系统测试是基于软件需求说明书的黑盒测试,是对已经集成好的软件系统进行完全的测试,以验证软件系统的正确性和性能等知足其规约所指定的要求,检查软件的行为和输出是否正确,并不是一项简单的任务,被称为测试的“先知者问题”。所以,系统测试应该按照测试计划进行,其输入、输出和其余的动态运行行为应该与软件规约进行对比。软件系统测试的方法不少,主要有功能测试,性能测试,随机测试等。

总结:
通俗的讲,一个产品从研发到出厂的工程中,测试分为三个阶段:单元测试、集成测试、系统测试; 单元测试:一个模块的功能及常规错误测试; 集成测试:完成单元测试后,各模块联调测试;集中在各模块的接口是否一致、各模块间的数据流和控制硫是否按照设计实现其功能、以及结果的正确性验证等等;可使整个产品的集成测试,也可使大模块的集成测试; 系统测试:针对整个产品的全面测试,既包含各模块的验证性测试(验证前两个阶段测试的正确性)和功能性(产品提交个用户的功能)测试,又包括对整个产品的健壮性、安全性、可维护性及各类性能参数的测试

在这里推荐一个我本身建立的软件测试交流群,qq :642830685,群中会不按期的分享软件测试资源,测试面试题以及行业资讯,你们能够在群中积极交流技术,还有行业大佬为你答疑解惑,美哉美哉。

写在最后:对待生命你不妨大胆冒险一点, 由于好歹你要失去它。若是这世界上真有奇迹,那只是努力的另外一个名字。生命中最难的阶段不是没有人懂你,而是你不懂你本身。也许你感受本身的努力老是徒劳无功,但没必要怀疑,你天天都离顶点更进一步。今天的你离顶点还遥遥无期。但你经过今天的努力,积蓄了明天勇攀高峰的力量。最后但愿你们天天努力一点点,一菲期待属于你的一飞冲天。

相关文章
相关标签/搜索