软件测试分类
常见的软件测试方法与分类

常见的软件测试方法与分类软件测试是保证软件质量的一项重要工作,根据不同的测试目的和测试对象,可以采用多种测试方法进行测试。
本文将介绍常见的软件测试方法与分类,以帮助读者对软件测试有更全面的了解。
一、黑盒测试与白盒测试1. 黑盒测试黑盒测试是一种基于功能需求的测试方法,测试人员不需要了解软件的内部结构和实现细节。
测试人员仅根据需求文档和用户行为来设计测试用例,并通过输入不同的数据和操作来验证软件功能的正确性。
黑盒测试方法可以测试软件的功能、性能、安全性等。
2. 白盒测试白盒测试是一种基于代码的测试方法,测试人员需要了解软件的内部结构和实现细节。
测试人员通过查看源码、执行路径和数据流来设计测试用例,并针对代码的覆盖率进行测试。
白盒测试方法可以测试代码的正确性、可靠性和可维护性等。
二、静态测试与动态测试1. 静态测试静态测试是一种不执行代码的测试方法,主要通过审查、检查和分析软件中的文档、模型和源代码来发现缺陷。
静态测试可以提前发现潜在的问题,并在开发过程中进行修复,以降低后续测试的成本和风险。
2. 动态测试动态测试是一种执行代码并观察其行为的测试方法,主要通过运行软件,并对其输出结果进行验证和比对来发现缺陷。
动态测试可以验证软件是否满足预期的功能和性能要求,并发现运行时错误、崩溃和内存泄漏等问题。
三、功能测试与非功能测试1. 功能测试功能测试是一种验证软件是否按照需求规格说明书中的功能要求进行设计和实现的测试方法。
功能测试主要包括界面测试、业务逻辑测试、数据输入输出测试等。
通过功能测试,可以检查软件的功能是否完整、准确、可用,并保证其符合用户的需求。
2. 非功能测试非功能测试是一种验证软件在非功能性方面的性能和质量特征的测试方法。
非功能测试包括性能测试、安全性测试、可靠性测试等。
通过非功能测试,可以评估软件在负载、并发、响应时间、稳定性和安全性等方面的性能指标,以确保软件具备可用性和可靠性。
四、回归测试与探索性测试1. 回归测试回归测试是一种针对已修改或添加新功能的软件进行的测试方法。
软件测试分类标准

软件测试按照开发阶段可分为单元测试、集成测试、确认测试、系统测试和验收测试。
1.单元测试单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。
其目的在于检查每个程序单元能否满足详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。
单元测试需要从程序的内部结构出发设计测试用例。
多个模块可以平行地独立进行单元测试。
2.集成测试集成测试也叫作组装测试,通常是在单元测试的基础上,对所有的程序模块进行有序的、递增的测试。
集成测试检验程序单元或部件的接口关系,使它们逐步集成为符合概要设计要求的程序部件或整个系统。
软件集成是一个持续的过程,会形成很多个临时版本。
在此过程中,保证功能集成的稳定性是真正的挑战。
每个版本在提交时,都需要进行冒烟测试,即对程序主要功能进行验证。
冒烟测试也叫版本验证测试、提交测试。
3.确认测试确认测试是通过检查和提供客观证据,证实软件是否满足特定预期用途的需求。
确认测试检测与证实软件是否满足软件需求说明书中提出的要求。
4.系统测试系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。
系统测试在真实或模拟系统运行的环境下,检查完整的程序系统能否与硬件、外设、网络和系统软件、支持平台等正确匹配、连接,并满足用户需求。
5.验收测试验收测试是按照项目任务书或合同、供需双方约定的验收依据文档对整个系统进行的测试与评审,决定产品被接收或拒收。
按照测试环境分类当软件是为特定用户开发时,需要进行一系列的验收,让用户验证所有的需求是否已经得到满足。
当软件是为多个用户开发时,让每个用户逐个执行正式的验收测试是不切实际的,因此很多软件产品生产者采用α测试和β测试以发现可能只有最终用户才能发现的错误。
α测试是由一个用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。
软件在一个自然设置状态下使用,开发者坐在用户旁边,随时记下错误情况和使用中的问题。
软件测试 分类

软件测试分类1,按是否需要执行被测软件的角度按是否需要执行被测软件的角度,可分为静态测试和动态测试,。
2、按阶段划分1 单元测试2集成测试:检查软件单位之间的接口是否正确集成测试的策略主要有自顶向下和自底向上两种。
3 系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务。
4验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。
它的测试数据通常是系统测试的测试数据的子集。
所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。
这是软件在投入使用之前的最后测试。
5 回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。
其目的是检验对软件进行的修改是否正确。
6 Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。
7 Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。
3、按测试方法划分1:白盒测试白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
软件测试(分类、方法、测试)

1.软件测试分类黑盒测试----指测试人员通过各种输入和观察软件的各种输出结果来发现软件的缺陷,而不关心程序具体如何实现的一种测试方法。
静态测试----指测试不运行的部分,例如测试产品说明书,对此进行检查和审阅.静态白盒测试-----指在不执行的条件下有条理地仔细审查软件设计,体系结构和代码,从而找出软件缺陷的过程。
有时称作结构分析。
动态测试----通过运行和使用软件进行测试。
探索测试----通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。
等价区间----指测试相同目标或者暴露相同软件缺陷的一组测试用例测试设计----提炼测试方法,明确指出设计包含的特性和相关测试。
如果要求完成测试还明确指出测试案例和测试程序,指定特性通过/失败的规则。
单元测试:最微小规模的测试;以测试某个功能或代码块。
典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。
这个工作不容易作好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。
累积综合测试:当一个新功能增加后,对应用系统所做的连续测试。
它要求应用系统的不同形态的功能能够足够独立以可以在全部系统完成前能分别工作,或当需要时那些测试驱动器已被开发出来; 这种测试可由程序员或测试员来做。
集成测试:一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作。
部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。
这种类型的测试尤其与客户服务器和分布式系统有关。
功能测试:用于测试应用系统的功能需求的黑盒测试方法。
这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作(自然他能用于测试的各个阶段)。
系统测试:基于系统整体需求说明书的黑盒类测试;应覆盖系统所有联合的部件。
端到端测试:类似于系统测试;测试级的“宏大”的端点;涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。
软件测试期末复习资料

需求分析与系统 设计
系统测试
概要设计
集成测试
详细设计
单元测试
编码
W模型
W模型由Evolutif公司提出,强调测试活动伴随着整个软件开发 周期,而且测试对象不仅仅是程序,需求、设计等活动同样需 要测试,也就是说,测试与开发是同步进行的。
W模型可以说是V模型的自然而然的发展。W模型体现了“及早 的和不断的进行软件测试”原则,能够帮助改进项目的内部质 量,减少总体测试时间,加快项目进度,降低测试和修改成本。
X模型也是对V模型和W
模型的改进。X模型提
出针对单独的程序片段
进行相互分离的编码和
封版 测试,此后通过频繁的
程序片段1 测试设计
X模型是事先计划再进行测试
执行测试 交接,通过集成最终合 成为可执行的程序。
工具配置
测试设计
X模型左边描述的是对
执行测试
工具配置
单独程序片段所进行的
编码完成
集成1~n
分离的编码和测试,此
敏捷开发过程模型 TDD
敏捷开发是一种以人为核心、迭代、循序 渐进的开发方法。在敏捷开发中,软件项 目的构建被切分成多个子项目,各个子项 目的成果都经过测试,具备集成和可运行 的特征。换言之,就是把一个大项目分为 多个相互联系,但也可独立运行的小项目, 并分别完成,在此过程中软件一直处于可 使用状态。
第三方测试也叫做独立测试,是指介于软件开发 者和软件用户之间的测试组织对软件进行的测试。
测试用例
从测试目的的角度来看,为达到最佳的 测试效果或高效的揭露隐藏的错误,而 精心设计并执行的少量测试数据,称之 为测试用例。
测试用例最基本由输入和预期输出组成。
软件开发过程模型
软件测试介绍

测试用例=测试环境+输入数据+输出数据 编写测试用例的作用: 分析和明确各个测试点的测试内容 方便测试团队成员之间的交流。 方便项目后续版本重复内容的测试。 方便跟踪测试策略的执行情况。
输入数据集合。 无效等价类:是指不符合需求规格说明,无意
义的输入数据集合。
边界值法
边界值法:检测输入数据最大值和最小 值的测试方法
测试边界值时,一般测试边界值和正好 超过边界值一个单位的值。
边界值时最容易出现问题的地方,也是 测试时要重点测试的内容。
因果图法
因果图法:根据被测系统的逻辑结构,设计输 入和输出的测试方法,主要用于输入条件比较 多的情况。
国内大型软件公司组建自己的软件测试部门或质量保障部。测试人员整体素 质较高,团队意识较强,产品质量较高,客户满意度较好,测试人员职业发 展方向清晰、明确。
测试人员的发展
技术方向(测试顾问、测试专家) 管理方向(测试经理、质量总监) 自主创业(测试外包、测试培训)
软件的基本概念
软件=程序+文档 程序:能够实现某种功能的集合(C语言程序、VB程序、JAVA程序等) 文档:软件开发、使用、维护过程中使用的文字、图片的集合(《需求
为国内大型企事业单位提供人力外包或测试外包服务,中科方德(客户主要 是军工行业),大展科技(客户主要是中国电信等),东南融通(客户主要 是金融行业)。雇佣军、团队归属感差、体力活、技术含量低,不要求外语。
公司的测试工作由开发工程师完成或只有很少比例的测试人员。测试人员不 专业,公司产品质量差,公司对测试人员不重视,测试人员薪资低,职业发 展前景堪忧。
软件测试方法分类

软件测试方法分类软件测试方法可以根据不同的角度进行分类。
下面为您详细介绍几种常见的软件测试方法分类。
1. 按照测试级别分类:根据软件开发流程中的不同阶段,可以将软件测试分为单元测试、集成测试、系统测试和验收测试。
- 单元测试(Unit Test):对软件中最小的可测试单元进行测试,通常是对独立模块或者功能函数进行测试。
主要目的是验证代码的正确性、测试单元的功能是否正常、是否满足预期要求。
- 集成测试(Integration Test):测试不同模块的集成情况,主要目的是验证模块之间的交互是否正常,检查各个模块之间的接口是否正确,并且模块之间能否正确协同工作。
- 系统测试(System Test):对整个系统进行测试,主要目的是验证系统功能是否符合系统需求,是否满足用户需求,检查系统的稳定性、安全性等。
- 验收测试(Acceptance Test):由最终用户或者用户代表进行的测试,目的是为了确认系统是否满足用户要求和需求,是否准备好部署和投入使用。
2. 按照测试方法分类:根据测试的方法或者策略的不同,可以将软件测试分为黑盒测试和白盒测试。
- 黑盒测试(Black Box Test):测试人员仅根据需求规格和功能规格,对应用程序进行测试,不考虑内部的实现细节。
黑盒测试主要验证系统的功能是否正确实现,是从用户的角度出发进行测试的。
- 白盒测试(White Box T est):测试人员可以访问系统的内部,了解系统的实现细节,测试人员根据代码逻辑和内部结构,设计测试用例。
白盒测试主要验证系统的完整性、代码覆盖率、逻辑控制等。
3. 按照测试对象分类:根据测试的对象不同,可以将软件测试分为功能测试、性能测试、安全测试等。
- 功能测试(Functional Test):验证系统是否符合需求规格,主要测试软件功能的正确性和有效性,保证软件的功能与预期一致。
- 性能测试(Performance Test):测试软件在不同负载下的性能和稳定性,主要测试软件的响应时间、吞吐量、并发性等性能指标。
软件测试的分类和应用场景

软件测试的分类和应用场景软件测试作为软件开发过程中的重要环节,通过对软件的功能、性能、安全等方面进行验证和验证,确保软件质量满足用户需求。
软件测试可以根据不同的分类标准分为多种类型,同时也可以应用于各种场景中。
软件测试的分类:1.按照测试对象的不同,可以将软件测试分为单元测试、集成测试、系统测试和验收测试。
-单元测试:以最小的代码单元为测试对象,验证程序的正确性和稳定性。
-集成测试:将已经通过单元测试的模块组合在一起进行测试,验证模块之间的协作和交互是否正确。
-系统测试:通过对整个系统的功能、性能、安全等方面进行全面测试,确保系统满足用户需求。
-验收测试:由用户或用户代表来验证系统是否满足预期的功能和性能要求。
2.按照测试的目的和方式,可以将软件测试分为黑盒测试和白盒测试。
-黑盒测试:测试人员只需了解软件的功能和接口,而不考虑内部实现,通过对输入和输出的关系进行测试,验证软件的功能是否符合需求。
-白盒测试:测试人员需要了解软件的内部逻辑和结构,通过分析代码和路径覆盖等方式进行测试,验证软件的内部实现是否正确。
3.按照测试的执行方式,可以将软件测试分为手动测试和自动化测试。
-手动测试:测试人员通过手工操作软件来进行测试,验证软件的功能和性能。
-自动化测试:利用测试工具或脚本对软件进行自动化测试,提高测试效率和覆盖范围。
4.按照测试的特性,可以将软件测试分为功能测试、性能测试、安全测试等。
-功能测试:验证软件的功能是否符合需求,包括界面测试、逻辑测试、数据测试等。
-性能测试:验证软件在不同负载下的性能表现,包括响应时间、吞吐量、并发性等。
-安全测试:验证软件在安全方面的表现,包括权限控制、数据加密、漏洞扫描等。
软件测试的应用场景:1.软件开发过程中的各个阶段:在软件开发的需求分析、设计、编码和集成阶段,软件测试都可以发挥作用。
通过及早发现和修复软件缺陷,可以减少后期的修改成本和风险。
2.软件发布前的验收测试:在软件即将发布时,进行验收测试可以确保软件满足用户需求,并且在不同平台和环境下可以正常运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试分类1、黑盒测试:指把被测软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。
2、白盒测试:指把盒打开,去研究里面的源代码和程序结构。
3、静态测试:指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在错误的过程。
对于代码测试,主要测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
4、动态测试:指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。
5、单元测试:指对软件中最小可测试单元进行检查和验证。
例如:C语言中,单元一般指1个函数;在Java里,单元一般指1个类;在图形化的软件中,单元也可以指1个窗口,1个菜单等。
总结起来,单元就是人为规定的最小的被测功能模块。
单元测试的通过标准是什么:(1)程序通过所有单元测试的用例(2)语句的覆盖率达到100%(3)分支覆盖率达到85%如何进行单元测试:单元测试主要用白盒测试方法,一般我们先静态地检查代码是否符合规范,然后动态地运行代码,检查其它实际运行结果。
当然检查程序的运行结果是否正确是一个最基本的要求,我们还要检查很多项,比如程序的非法数据的容错处理,程序的边界值处理等。
桩模块:是指模拟被测模块所调用的模块。
驱动模块:是指模拟被测模块的上级模块。
桩模和驱动模块例子:include<stdio.h>void main(void){int a=1,b=2,c;c=fun1(a,b);}int fun1(int x, int y){return X + Y;}主函数main调用fun1,fun1实现了计算两个参数之和功能,假设这两个函数是由两个程序员各自开发的,他们之间的开发开度不一样。
如果没有main函数,如何测试fun1函数,这时,我们需要模拟构一个新的main函数,它可以不包含main函数中需要的所有内容和细工,但至少要能够调用fun1,并且能够打印调用之后的结果,我们就把这个模拟的函数称为fun1的驱动模块。
如果没有fun1函数,这时,我们需要模拟构建一个新的fun1函数,它可以不包含fun1函数中需要的所有内容和细节,但至少能够被main函数调用,并有一个返回值,我们把这个模拟的函数就称为fun1的桩模块。
6、集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
7、系统测试和验收测试:集成测试之后,就是系统测试和验收测试,系统测试是指将整个系统看做1个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
验收测试是指在系统测试后期,以用户测试为主,或有测试人人员等质量保障人员共同参与的测试,它也是软件正式交给用户的最后一道工序。
验收测试又分a(阿发)测试和B(贝搭)测试:其中a测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而B测试指的是内测后的公测,即完全交给最终用户测试。
8、功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
一般分为逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
9、性能测试:软件的性能包括很多方面,主要有时间性能和空间性能两种。
时间性能主要是指软件的一个具体事务的响应时间(respond time)比如登录163邮箱,输入用户名和密码,点“登录”按钮,从你点击按钮的那一刻起,到最终登录后的页面反馈给你,这一时间间隔为3秒,我们则称163邮箱在这一次登录事务中的响应时间为3秒。
一般我们多次登录,来记录不同的响应时间,最后取平均值,这样的数据才有参考价值。
(一般一个电子商务网站来说,一个普遍接受响就时间标准为2(2秒给用户以响就是非常有吸引力的)/5(5秒以内被认为是比较不错的)/10(用户忍受上限));空间性能:主要指软件运行时所消耗的系统资源,比如安装软件之前,我们经常看到某软件安装的最低要求。
性能测试一般分为:(1)一般性能测试:指让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测式。
(2)稳妥定性测试:也叫可靠性测试,指连续运行被测系统,检查系统运行的稳定程度。
(3)负载测试:通常是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试:通常是指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
10、回归测试:是指对软件的新版本测试时,重复执行上一个版本测试时的用例。
11、冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
12、随机测试:也有人称为猴子测试,是指测试中所有的输入数据都是随机产生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
软件测试分类软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法,对测试进行分类是为了更好的明确测试的过程,了解测试究竟要完成哪些工作,尽量做到全面测试。
1,按是否需要执行被测软件的角度按是否需要执行被测软件的角度,可分为静态测试和动态测试,前者不利用计算机运行待测程序而应用其他手段实现测试目的,如代码审核。
(我认为主要是让测试人员对编译器发现不了的潜在错误进行分析,如无效的死循环,多余的变量等),而动态测试则通过运行被测试软件来达到目的。
2、按阶段划分:1 单元测试单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。
它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。
因此应用系统有一个设计很好的体系结构就显得尤为重要。
一个软件单元的正确性是相对于该单元的规约而言的。
因此,单元测试以被测试单位的规约为基准。
单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。
2 集成测试集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
集成测试的策略主要有自顶向下和自底向上两种。
3 系统测试系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。
软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。
4 验收测试验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。
它的测试数据通常是系统测试的测试数据的子集。
所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。
这是软件在投入使用之前的最后测试。
5 回归测试回归测试是在软件维护阶段,对软件进行修改之后进行的测试。
其目的是检验对软件进行的修改是否正确。
这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。
6 Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。
这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
7 Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。
这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
3、按测试方法划分:1 白盒测试白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了一些与数据相关的错误。
白盒测试可以借助一些工具来完成如Junit Framework,Jtest等。
2 黑盒测试黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
黑盒测试也可以借助一些工具,如WinRunner,QuickTestPro,Rational Robot 等。
3 ALAC(Act-like-a-customer)测试ALAC测试是一种基于客户使用产品的知识开发出来的测试方法。
ALAC测试是基于复杂的软件产品有许多错误的原则。
最大的受益者是用户,缺陷查找和改正将针对哪些客户最容易遇到的错误。
1、静态和动态测试静态测试是不运行被测程序本身而寻找程序中可能存在的错误或评估程序代码的过程。
通过分析或者检查源程序的语法、结构、过程、借口等来检查程序的正确性,找出问题。
这些问题包括:参数不匹配、不适当的分支嵌套和循环嵌套、未使用过的变量、空指针的引用等。