1)按照测试技术划分
黑盒测试:功能测试,必须
白盒测试:逻辑结构测试,代码的逻辑、算法、结构是否正确,要求必须懂得代码,需要编写测试用例,可选
灰盒测试:介于中间
注意:在单元测试时,白盒应用相对较多,在集成测试时,灰盒测试应用相对较多,在系统、验收测试时一般就不会使用白盒测试和灰盒测试了。
2)按是否需要运行代码划分
静态测试:界面测试,文档测试,代码测试【重点关注代码的规范性,一般检查变量的命名,注释的频率,编程的规范性,不需要写测试用例,一般只需要有代码审查单】
注意:一般经常把白盒测试和静态测试的要素结合在一起,形成静态白盒测试
动态测试:运行程序进行检查,检查实际输出结果和预期结果是否相符
3)按软件特性分类
功能测试
性能测试
软件测试分类 软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法,对测试进行分类是为了更好的明确测试的过程,了解测试究竟要完成哪些工作,尽量做到全面测试。
1,按是否需要执行被测软件的角度 按是否需要执行被测软件的角度,可分为静态测试和动态测试,前者不利用计算机运行待测程序而应用其他手段实现测试目的,如代码审核。(我认为主要是让测试人员对编译器发现不了的潜在错误进行分析,如无效的死循环,多余的变量等),而动态测试则通过运行被测试软件来达到目的。
2、按阶段划分: 1 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要。
一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。
单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 2 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。
3 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。
软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。 4 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。
它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。
这是软件在投入使用之前的最后测试。 5 回归测试 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。
其目的是检验对软件进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。
6 Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
7 Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
3、按测试方法划分: 1 白盒测试 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了一些与数据相关的错误。 白盒测试可以借助一些工具来完成如Junit Framework,Jtest等。
2 黑盒测试 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有。
1、从是否关心内部结构来看 (1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看 (1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看 (1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。在系统测试中,对于具体的测试类型有:(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试) (9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。4、从执行过程是否需要人工干预来看 (1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)5、从测试实施组织看 (1)开发测试:开发人员进行的测试 (2)用户测试:用户方进行的测试 (3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性6、从测试所处的环境看 (1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试 (2)。
《全国计算机等级考试三级教程软件测试》目录 第1章 软件测试的基本概念1.1 软件质量的概念1.1.1 软件质量的定义1.1.2 软件质量的属性1.1.3 软件质量模型1.1.4 软件质量的度量1.1.5 影响软件质量的主要因素1.2 软件测试的概念1.2.1 软件测试的定义与目的1.2.2 软件测试的原则1.3 软件的缺陷与错误1.3.1 软件缺陷的定义和类型1.3.2 软件缺陷的级别1.3.3 软件缺陷产生的原因1.3.4 软件缺陷的构成第1章 软件测试的基本概念1.1 软件质量的概念1.1.1 软件质量的定义1.1.2 软件质量的属性1.1.3 软件质量模型1.1.4 软件质量的度量1.1.5 影响软件质量的主要因素1.2 软件测试的概念1.2.1 软件测试的定义与目的1.2.2 软件测试的原则1.3 软件的缺陷与错误1.3.1 软件缺陷的定义和类型1.3.2 软件缺陷的级别1.3.3 软件缺陷产生的原因1.3.4 软件缺陷的构成1.3.5 修复软件缺陷的代价1.4 软件测试的经济学与心理学1.4.1 软件测试的心理学1.4.2 软件测试的经济学1.5 软件质量保证1.5.1 软件质量保证概要1.5.2 软件质量保证活动的实施1.5.3 软件的验证与确认1.5.4 验证和确认任务分析 本章小结 第2章 软件生存周期中测试的实施2.1 软件开发阶段2.1.1 软件生存周期2.1.2 软件测试的生存周期模型2.1.3 软件测试过程模型2.1.4 测试信息流2.2 需求获取与分析阶段的测试2.2.1 需求评审的实施2.2.2 需求规格说明的评审2.2.3 Wiegers 用例与需求评审表2.2.4 基于原型的测试2.2.5 基于需求的测试覆盖率评估2.3 设计阶段的测试2.3.1 设计的测试因素2.3.2 设计评审的实施2.3.3 设计规格说明的评审2.3.4 设计元素的覆盖原则2.4 编程阶段的测试2.4.1 白盒测试与黑盒测试2.4.2 源代码的控制流覆盖原则2.4.3 源代码的数据流覆盖原则2.4.4 源代码的静态分析与动态测试2.5 运行和维护阶段的测试2.6 回归测试2.6.1 回归测试的概念2.6.2 回归测试的类型2.6.3 回归测试的时机2.6.4 回归测试的实施 本章小结 第3章 代码检查、走查与评审3.1 桌上检查3.1.1 桌上检查的实施3.1.2 桌上检查的检查表3.2 代码检查3.2.1 特定的角色和职责3.2.2 代码检查的实施3.2.3 用于代码检查的检查表3.3 走查3.3.1 特定的角色和职责3.3.2 走查的实施3.3.3 走查中的静态分析技术3.4 同行评审3.4.1 同行评审的角色和职责3.4.2 同行评审的内容3.4.3 评审的方法和技术3.4.4 评审工作 本章小结 第4章 白盒测试4.1 覆盖率的概念4.2 逻辑覆盖4.2.1 语句覆盖与块覆盖4.2.2 判定覆盖(分支覆盖)4.2.3 条件覆盖4.2.4 条件/判定覆盖4.2.5 条件组合覆盖4.2.6 路径覆盖4.2.7 ESTCA覆盖4.2.8 LCSAJ覆盖4.3 路径测试4.3.1 分支结构的路径测试4.3.2 循环结构的路径测试4.3.3 圈复杂度与基本路径测试4.4 数据流测试4.4.1 定义∕使用测试的几个定义4.4.2 定义∕使用测试举例4.4.3 定义∕使用路径测试覆盖指标4.5 基于覆盖的测试用例选择4.5.1 覆盖率的使用4.5.2 使用最少的测试用例来达到覆盖4.6 程序插桩技术4.6.1 程序插桩4.6.2 用于测试覆盖率的程序插桩4.6.3 用于断言检测的程序插桩4.6.4 用于数据流异常检测的程序插桩 本章小结 第5章 黑盒测试5.1 等价类测试5.1.1 等价类的概念5.1.2 等价类测试的原则5.1.3 等价类方法测试用例设计举例5.2 边界值分析5.2.1 边界值分析的概念5.2.2 选择测试用例的原则5.2.3 边界值方法测试用例设计举例5.3 基于判定表的测试5.3.1 判定表的概念5.3.2 基于判定表的测试用例设计举例5.4 基于因果图的测试5.4.1 因果图的适用范围5.4.2 用因果图生成测试用例5.4.3 因果图法测试用例设计举例5.5 基于状态图的测试5.5.1 状态图5.5.2 利用状态转换树生成测试用例5.5.3 利用状态转换表生成测试用例5.6 基于功能图的测试5.6.1 功能图5.6.2 功能图法设计测试用例举例5.7 基于用例和场景的测试5.7.1 基本流和备选流5.7.2 利用用例和场景设计测试用例的实例5.8 基于有向图的测试用例设计5.8.1 使用基于有向图的测试的场合5.8.2 基于事务流建模设计测试用例5.8.3 基于控制流建模设计测试用例5.8.4 基于有向图设计测试用例的过程5.9 基于正交实验设计法的测试5.9.1 提取功能说明,构造因子/ 状态表5.9.2 加权筛选,生成因素分析表5.9.3 利用正交表构造测试数据集5.10 其他黑盒测试用例设计技术 本章小结 第6章 单元测试和集成测试6.1 单元测试的基本概念6.1.1 单元测试的定义6.1.2 单元测试与集成测试、系统测试的区别6.1.3 单元测试环境6.2 单元测试策略6.2.1 自顶向下的单元测试策略6.2.2 自底向上的单元测试策略6.2.3 孤立测试6.2.4 综合测试6.3 单元测试分析6.3.1 模块接口6.3.2 局部数据结构6.3.3 独立路径6.3.4 出错处理6.3.5 边界条件6.4 单元测试的测试用例设计原则6.4.1 单元测试的测试用例设计步骤6.4.2 单元测试中的白盒测试与黑盒测试6.5 集成测试的基本概念6.6 集成测试策略6.6.1 基于分解的集成策略6.6.2 基于功能的集成6.6.3 基于路径的集成6.6.4 基于调用图的集成6.7 集成测试分析6.7.1 体系结构分析6.7.2 模块单元分析6.7.3 接口分析6.7.4 风险分析6.7.5 可测试性分析6.7.6 集成测试策略分析6.7.7 常见的集成测试故障6.8 集成测试的测试用例设计原则6.8.1 集成测试的测试用例设计步骤6.8.2 场景测试 本章小结 第7章 系统测试7.1 系统测试概念7.2 系。
测试人员一般分为如下三种(当然还有很多其它的分类方法,如感兴趣可以再查找):
黑盒测试:
黑盒测试,指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。主要是针对软件界面和软件功能进行测试。
白盒测试:
白盒测试,指的是完全了解产品的源代码和程序结果。按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作
灰盒测试:
灰盒测试介于黑盒测试与白盒测试之间。可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
这三种测试方式各有各的优点,楼主可以根据需要去选择
——“搜狗测试”
测试类型有:功能测试,性能测试,界面测试。
1、功能测试 在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
2、性能测试 是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
3、界面测试 界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。
同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
扩展资料: 测试原则 1、测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。 2、程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
3、设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态,如网络异常中断、电源断电等。 4、应该充分注意测试中的群集现象。
5、对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。
严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。 6、制定严格的测试计划。
一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
7、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。 参考资料来源:搜狗百科--软件测试。
第一类测试方法是试图验证软件是“工作的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的;而第二类测试方法则是设法证明软件是“不工作的”。
还有两大类:白盒法和黑盒法。
白盒法:你清楚程序的流程时,用不同的数据测试你程序的代码,验证程序的正确性,有:条件测试,路径测试,条件组合。。。。
白盒法用在程序开发阶段的前期。
黑盒法:主要用于程序开发阶段的后期,即程序的流程测试正确后,测试程序的结果。有什么因果法,边缘值法等。
具体你可以买本软件工程方面的书看看。
还有一下方法:
功能测试:可接受性测试:用户界面测试:探索或开放'型的测试:性能测试:回归测试:强力测试:集成与兼容性测试:装配/安装/配置测试:国际化支持测试:本地化语言测试:
这些都是测试的方法.
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.478秒