软件测试模型介绍
- 格式:pptx
- 大小:1.73 MB
- 文档页数:28


软件测试的定义及常用软件测试方法介绍
一、 软件测试的定义
1.定义:使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
2.内容:软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件(Do it right)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right thing)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
二、软件测试常用方法
1. 从是否关心软件内部结构和具体实现的角度划分:
a. 黑盒测试
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
V模型:
优点:
1. 既有底层测试又有高层测试。底层:单元测试。高层:系统测试。
2. 将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。
缺点:
1. 容易让人误解为测试是在开发完成之后的一个阶段。
2. 由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
3. 实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。
W模型:
优点:
1. 将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
2. 更早的介入到软件开发中,能尽早的发现缺陷进行修复。
3. 测试与开发独立起来,并与开发并行。
缺点:
1. 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2. 对于需求和设计的测试技术要求很高,实践起来很困难。
X模型:
优点:
X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
缺点:可能对测试造成人力、物理和财力的浪费,对测试员的熟练程度要求比较高。
1.软件测试过程模型—V模型
是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;
局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现
2.软件测试过程模型—W模型
在V模型的基础上,增加个开发阶段的同步测试,形成W模型;测试与开发同步进行,有利于尽早的发现问题
局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整
3.软件测试过程模型—H模型
在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以尽早的进行;软件测试可以根据被测物的不同而分层次进行
软件自动化测试介绍
一、 自动化测试的概念
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动测试是软件测试的一个重要组成部分,它能完成许多手工测试无法实现或难以实现的测试正确、合理的实施自动测试,能够快速、全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。
二、 自动化测试的优缺点分析。
自动化测试的优点
1、 对程序的回归测试更方便。这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
2、 可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
3、 可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。
4、 更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
5、 测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
自动化测试的缺点
1、 手工测试比自动测试发现的缺陷更多
2、 对测试质量的依赖性极大
3、 测试自动化不能提高有效性 4、 测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。
自动化测试中的测试金字塔模型
自动化测试在软件开发过程中扮演着重要的角色。它可以提高测试效率、降低成本,并确保软件质量。而在自动化测试中,测试金字塔模型成为一种被广泛采用的测试策略。本文将介绍测试金字塔模型的概念、原理以及如何应用于自动化测试中。
1. 测试金字塔模型概述
测试金字塔模型是Mike Cohn提出的一种软件测试策略。它将测试活动分为三个层次:单元测试、集成测试和端到端测试。这三个层次分别对应金字塔模型的底部、中部和顶部,体现了测试案例的数量和漏斗状递减的关系。具体来说,金字塔底部的单元测试数目最多,而端到端测试数目最少。
2. 单元测试
单元测试是测试金字塔模型的基础层,也是最底部的一层。它是对软件的最小可测试单元进行测试,例如函数、方法或类等。单元测试通常由开发人员编写,能够帮助他们验证代码的正确性,并发现和修复潜在的bug。单元测试应该覆盖尽可能多的代码逻辑,确保代码的可靠性。
3. 集成测试
集成测试位于测试金字塔模型的中间层,它的目标是验证不同单元的交互和集成是否正常。在集成测试中,开发人员将已通过单元测试的模块进行组合,并进行测试。它可以帮助发现模块间的接口问题、数据传递问题以及组合后的功能是否正常工作。集成测试可以提前发现整体系统的问题,降低后续测试阶段的风险。
4. 端到端测试
端到端测试是测试金字塔模型的顶部层,也是最高级的测试层次。它是对整个软件系统的功能进行测试,确保系统在各个组件之间的集成和交互正常。端到端测试是用户视角下的测试,它模拟用户真实使用场景,验证系统的完整性、稳定性和可用性。
5. 测试金字塔模型的优势
使用测试金字塔模型进行自动化测试有以下几个优势:
- 效率和速度:通过基于金字塔底部的单元测试,可以快速运行大量的测试案例,提高测试效率。
- 可维护性:由于单元测试是针对代码的最小单元进行测试,当代码发生变更时,只需重新运行受影响的单元测试,提高了测试的可维护性。