软件测试分类
按测试阶段划分
- 单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
- 集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。
- 系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。
- 验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
按照执行主体划分
- α测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。
- β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告 只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
- 第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。
按照执行状态划分
- 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
- 动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
静态测试和动态测试的区别:
按照测试技术划分
测试方法 | 介绍 |
---|---|
白盒测试 | 白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。 |
黑盒测试 | 黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。 |
灰盒测试 | 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。 |
软件测试模型
软件测试模型是软件测试工作的框架,描述了软件测试过程所包含的主要活动,以及活动之间的相互关系等。软件测试模型有:V模型、W模型、H模型、X模型、前置模型等。
V模型
V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段的隐藏的问题一直到后期的验收测试才被发现。
W模型
相对于V模型而言,W模型增加了软件各开发阶段中应同步进行的验证和确认(V&V)活动。
W模型由两个V字型模型组成,分别代表测试与开发过程,测试伴随着整个软件开发周期,测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发同步进行。
W模型体现了“尽早地和不断地进行软件测试”的原则。W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系,上一阶段结束,才开始下一个阶段工作,因此,W模型无法支持迭代开发模型
H模型
V模型和W模型都认为软件开发是需求、设计、编码等一系列串行的活动,而事实上,这些活动在大部分时间内可以交叉,因此,相应的测试也不存在严格的次序关系,单元测试、集成测试、系统测试之间具有反复迭代。正因为V模型和W模型存在这样的问题,H模型将测试活动完全独立出来,使得测试准备活动和测试执行活动清晰地体现出来。
H模型揭示了软件测试作为一个独立的流程贯穿于软件整个生命周期,与其他流程并发地进行,并指出软件测试要尽早准备,尽早执行。不同的测试活动可以按照某个次序先后进行,也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
H模型的特点 :
- 测试准备与测试执行分离,有利于资源调配,降低成本,提高效率。
- 充分体现测试过程(不是技术)的复杂性。
X模型
X模型的左边描述的是针对单独程序片段所进行的编码和测试
X模型右上方定位了已通过集成测试的成品进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。
X模型右下方定位了探索性测试。这是不进行事先计划的特殊类型的测试,往往是在测试计划之外发现软件错误。
前置模型
前置模型的特点:
- 开发和测试相结合
- 对每一个交付内容进行测试
- 在设计阶段进行计划和测试设计
- 让验收测试和技术测试保持相互独立
- 反复交替的开发和测试
前置模型的优缺点:
优点:
- 质量保证和质量控制严格,增强测试质量
- 测试贯穿于开发的时时刻刻,有效地提高了测试
- 对验收测试非常强调,并用双重方式测试,保证系统能成功验收
缺点:
- 流程管理复杂
- 需求变化时很难应付
- 对文档、质量管理、配置管理、项目管理要求较高
测试用例
测试用例(Test Case)是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的。 测试用例的设计方法主要有黑盒测试法和白盒测试法
测试用例的作用
- 指导测试的实施
- 规划测试数据的准备
- 评估测试结果的度量基准
- 保证软件可维护性和可复用性
- 分析缺陷的标准
测试用例的设计要求
- 有效性
- 经济性
- 多重性
- 完备性
- 可判定性
- 可再现性