测试分类
测试分为多类,如下:
功能测试
即测试软件系统的功能是否正确,其依据是需求或者需求分析文档,对所发布的版本进行测试,看看是否满足需求,
是否出现了不必要的功能,如《产品需求规格说明书》。由于正确性是软件最重要的质量因素,所以功能测试必不可
少。
单元测试
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常
而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
集成测试
集成测试,也叫组装测试或联合测试,即对程序模块采用一次性或增殖方式组装起来,对系统的接口进行正确性检验
的测试工作。集成测试是在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,
进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部
反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
系统测试
系统测试。当软件提交给测试组后,是对整个系统的所有功能进行测试,一般来说,功能测试是系统测试的一个部分
。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试
,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据
、某些支持软件及其接口等。
压力测试
(主要是在很大性能的情况下,这个性能已经接近了系统的极限,看看系统运转的情况。压力测试是通过确定一个系
统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。)
压力测试是指在正常资源下使用异常的访问量、频率或数据量来执行系统。在压力测试中可执行以下测试:
①如果平均中断数量是每秒一到两次,那么设计特殊的测试用例产生每秒十次中断。
②输入数据量增加一个量级,确定输入功能将如何响应。
③在虚拟操作系统下,产生需要最大内存量或其它资源的测试用例,或产生需要过量磁盘存储的数据。
性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测
试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试
当负载逐渐增加时,系统各项性能指标的变化情况。
负载测试
主要是用各种不同的性能去检测系统,采集各个数据在这些性能情况下的数据。
黑盒测试
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑
盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格
说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不
考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。(这个是功能测试的方法之一)
灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内
部表现,但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有
时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此
需要采取这样的一种灰盒的方法。(在了解部分系统内部工作机制的情况下,对于系统进行的覆盖性测试。)
白盒测试
主要是在单元测试和集成测试的情况下,开发人员已知代码,对这一段的代码进行全路径的覆盖测试。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指
的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程
序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的
内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
界面测试
主要是看用户界面的友好性和易用性,是否有文字或者排版错误,是否有输入限制等等。
回归测试
(一般是系统发现BUG,开发人员修改后,和BUG直接相关以及可能相关的功能进行的测试。)
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试
将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中
占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布
使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回
归测试策略来改进回归测试的效率和有效性是非常有意义的。
冒烟测试
这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通
过了测试。在软件中,"冒烟测试"这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过
程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会
按预期运行,且不会破坏整个版本的稳定性。
恢复测试
(主要是一个系统在发生了灾难的情况下,从错误中是否容易恢复。)
恢复测试作为一种系统测试,主要关注导致软件运行失败的各种条件,并验证其恢复过程能否正确执行。在特定情况
下,系统需具备容错能力。另外,系统失效必须在规定时间段内被更正,否则将会导致严重的经济损失。
随机测试
软件测试中除了根据测试用例和测试说明书进行测试外,还需要进行随机测试(Ad-hoctesting),主要是根据测试者
的经验对软件进行功能和性能抽查。
强度测试
强度测试检查程序对异常情况的抵抗能力;是检查系统在极限状态下运行的时候性能下降的幅度是否在允许的范围内
。
兼容性测试
一个系统在不同的语言,操作系统下的系统测试。
安全性测试
安全测试用来验证系统内部的保护机制,以防止非法侵入。在安全测试中,测试人员扮演试图侵入系统的角色,采用
各种办法试图突破防线。因此系统安全设计的准则时要想方设法使侵入系统所需的代价更加昂贵。
探索性测试
探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌
握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到
问题时及时改变测试策略。
手工测试
手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
自动化测试
一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常
条件和异常条件。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
Alpha测试
系统在给最终用户前,测试人员在实验室中模拟最终用户的测试。
Beta测试
由部分最终用户通过使用来进行的测试。
比较测试
和其他具有相同或者类似功能的系统进行对比的测试。
验收测试
(一般是最终用户在接受产品前,依据自己所提出的要求进行的测试,很多情况下,验收测试可能委托第三方机构完
成。)
验收测试,系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进
行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这
是管理性和防御性控制。
为了测量系统在某一负载级别上的性能测试属于--强度测试
检查系统对非法侵入的防范能力的测试属于--安全性测试
对系统在异常情况下的承受能力的测试属于--恢复测试
检查系统的功能是否符合规格说明的测试属于--功能测试
检查系统的容错能力的测试属于--负载测试
检查系统是否满足系统分析说明书对性能的要求属于--性能测试