1、按阶段分:单元测试、集成测试、系统测试、验收测试; 2、按是否运行程序划分:静态测试和动态测试; 3、按是否查看代码划分:白盒测试,黑盒测试、灰盒测试; 4、其他划分:兼容测试、安全性测试、回归测试、冒烟测试、随机测试、App测试、接口测试;
(1)单元测试:
①单元测试是对软件基本组成单元(软件设计的最小单位)进行正确性检验的测试工作,
如模块、过程、函数或一个类的方法。
②单元测试属于白盒测试,其主要目的是针对详细设计及编码过程中可能存在的各种错误,
主要测试单元内部的数据结构、逻辑控制、异常处理等。
③单元测试内容:
入口和出口函数
输入和输出信息
错误处理信息
部分边界数值测试
(2)集成测试:
①集成测试也叫组装测试、联合测试、子系统测试、部件测试,是在单元测试的基础上,
将所有模块概要设计要求组装成为子系统或系统,验证组装后功能以及模块接口是否正确的测试工作。
②集成测试属于灰盒测试,其主要目的是针对概要设计中可能存在的问题,
主要测试各个单元与其他程序部分之间的接口、或模块之间的接口和接口数据传递的关系,
以及模块组合后的整体功能。
③集成测试方法:
(1)非增量式集成:采用一步到位的方法构造测试。
(2)增量式集成:采用逐步集成方式实现测试。
自顶向下增量式测试 桩程序
自底向上增量式测试 驱动程序入口和出口函数
(3)系统测试:
①系统测试是将已经集成好的软件与计算机硬件、外设、网络等其他元素结合在一起,
在模拟实际使用的环境下,对软件系统进行一系列的组装测试和确认测试的工作。
②系统测试类型:
*功能测试:验证软件是否符合用户潜在的或明确的需求
*性能测试:主要从时间和空间(相应时间、空间、内存、CPU,IO、网络)
*压力测试:测试系统在一定饱和状态下如:CPU、内存等饱和使用情况下,
系统能够处理和会话能力,以及系统是否会出现错误
*容量测试:确定系统处理同时在线的最大用户数。
*安全性测试:身份验证、授权、加密。测试系统在防止非授权的内部和外部用户的访问或故意破坏的情况时怎么样。
*易用性测试:易学、易操作、易理解。
*GUI测试:Graphical user interface图形用户界面测试;
*配置测试:通过对被测试系统软硬环境的调整,了解各种不同环境对系统性能的影响程度,
从而找到系统各项资源的最优分配原则。(该方法在每次执行测试时更换,扩充硬件设备,调整网络
环境,从而确定各个因素对系统性能的影响,找出影响最大的因素)。
*异常测试:检测系统对异常情况的处理。
*可靠性测试:在规定时间内,完成规定任务的能力。
*安装测试:指软件产品在指定环境中被安装的能力。
1)软件的安装类型是文本界面,还是图形导向。
2)绿色软件。
*文档测试:主要是对用户手册、操作手册、安装文档等进行的测试。
(4)验收测试:
①验收测试也称交付测试,是在软件产品完成单元测试、集成测试和系统测试之后,
产品发布之前所进行的最后测试,是一项确定产品是否能够满足合同或用户所规定需求的测试。
②验收测试属于黑盒测试,其主要目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
③验收测试分类:
*非正式测试:Alpha测试(α测试),Buda测试(β测试)
*正式验收测试:有正规的测试过程,需求制定测试计划,定义测试方案,选择测试用例,进行测试,
结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整,准确、人机界面和其他方面。
按是否查看代码划分:
(1)白盒测试
①白盒测试又称为结构测试、透明测试、逻辑驱动测试或基于程序本身的测试,
着重与程序内部结构及算法、通常不关心功能与性能指标。
②白盒测试主要应用在单元测试阶段。
③白盒测试设计技术可分为逻辑覆盖和路径覆盖,逻辑覆盖从弱到强又可分为以下几种:
*语句覆盖(SC)
*判定覆盖(DC)
*条件覆盖(CC)
*判定/条件覆盖(DCC)
*条件组合覆盖(CMC)
*路径覆盖(PC)
(2)黑盒测试:
①黑盒测试:又被称为功能测试、数据驱动测试或基于规格说明的测试、
注重于测试赛软件的功能需求,不关心程序内部逻辑和内部特性、
实际上是站在最终用户的立场上,检验输入输出信息及系统性能
指标是否符合规格说明书中有关功能需求及性能需求的规定。
②黑盒测试:主要应用在确认测试,系统测试和验收测试阶段。
③黑盒测试设计技术可分为:
*等价类划分类
*边界值分析
*场景法
*错误推测法
*判定表驱动法
*因果图法
*正交试验法
(3)灰盒测试:
①灰盒测试:是介于白盒测试与黑盒测试之间的测试,基于程序运行时刻外部表现同时
又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和
外部用户接口结果的测试技术。
②灰盒测试关注于系统内部模块之间的接口和交互,可以这样理解灰盒测试关注输出对输入的正确性。
同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表整性的现象、
事件、标志来判断内部的运行状态,有时候输出时正确的、单内部其实已经错误了,这种情况非常多,如果
每次都通过白盒测试来操作,效率会很低,因此需要采取这样一种灰盒的方法。
③灰盒测试主要应用在集成测试阶段。
(4)兼容性测试
①在特定的或不同的硬件、网络环境和操作系统平台上、不同的应用软件之间,验证软件系统能否
正常的运行,以及能否正确存取原先版本的用户数据所进行的的测试。
②兼容性测试分三大类:硬件兼容性测试、软件兼容性测试、数据兼容性测试。
*硬件兼容性测试:与整机兼容、与板卡和外设兼容
*软件兼容性测试:操作系统/平台的兼容、应用软件之间的兼容、不同浏览器的兼容、
数据库的兼容、软硬件配合兼容、网络换件兼容性测试、分辨率兼容性测试
*数据兼容性测试:不同版本间的数据兼容、不同软件之间的数据兼容
③Web兼容性测试的侧重点
*操作系统兼容性的测试
*浏览器兼容性测试
*分辨率兼容性测试
④C/S兼容性测试的侧重点
*操作系统兼容性测试
*客户端版本与服务器版本兼容性测试
(5)App测试:
①App是基于移动互联网软件及硬件环境的应用软件。App测试就是要找出App中的Bug
通过人工和测试工具,判断App系统是否能满足预期标准。移动App,由于增加了终端、
外设和网络等多项元素、因此测试内容和类型也响应增加了,主要针对App的功能、性能、安全性、终端适配等方面进行测试。
②功能测试又包括:安装卸载测试、UI测试、交叉事件测试、升级测试、网络环境测试、回归测试、用户体验测试等
③终端适配测试(云测试):通过选择第三方测试平台进行自动测试、如XXXX云平台。目前可以选择适配300
种机型和600种机型,这两种适配方案。在云平台上传app安装包以后(支持android 和 ios两个平台),就可以等待测试报告
(6)回归测试RT:
①回归测试是指修改了旧代码后,对软件的新版本测试时,重复执行上一个版本
测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了”
②回归测试的策略:在测试全部用例、基于分险选择测试、基于操作剖面选择测试、在测试修改部分
(7)冒烟测试BTV
①冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作
(8)随机测试:
①随机测试又名猴子测试,主要是根据测试者的经验对软件功能和性能抽查,测试数据是随机产生的,
在测试用例之外。只能作为一个测试的补充
|