软件测试测试

软件测试基础1.1. 软件测试的目的和准则测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。一般来说,软件测试有以下几条准则:所有测试都应该能追溯到用户需求;应该远在测试开始之前就制定出测试计划;把Pareto原理应用到软件测试中;应该从“小规模”测试开始,并逐步进行“大规模”测试;穷举测试是不可能的;为了达到最佳的测试效果,应该由独立的第三方从事测试工作。1.2. 软件测试方法和步骤.
摘要由CSDN通过智能技术生成
  1. 软件测试基础
    1.1. 软件测试的目的和准则
    测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。
    一般来说,软件测试有以下几条准则:
    所有测试都应该能追溯到用户需求;
    应该远在测试开始之前就制定出测试计划;
    把Pareto原理应用到软件测试中;
    应该从“小规模”测试开始,并逐步进行“大规模”测试;
    穷举测试是不可能的;
    为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
    1.2. 软件测试方法和步骤
    软件测试方法主要分为黑盒测试和白盒测试:
    黑盒测试(功能测试)
    把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,而是在程序接口进行的测试;
    白盒测试(结构测试)
    把程序看成装在一个透明的盒子里,测试者完全知道程序的结构和处理算法,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
    黑盒测试 白盒测试
    优点 适用于各阶段测试
    从产品功能角度测试
    容易入手生成测试数据 可构成测试数据使特定程序部分得到测试
    有一定的充分性度量手段
    可获较多工具支持
    缺点 某些代码得不到测试
    如果规格说明有误,则无法发现
    不易进行充分性测试 通常不易生成测试数据
    无法对未实现规格说明的部分进行测试
    工作量大,通常只用于单元测试,有应用局限
    性质 一种确认技术,回答"我们在构造一个正确的系统吗?" 一种验证技术,回答"我们在正确地构造一个系统吗?"
    一般来说,测试的按照以下步骤进行:

模块测试(单元测试)
模块测试主要发现的往往是编码和详细设计的错误,目的是保证每个模块作为一个单元能正确运行;
子系统测试
子系统测试把经过单元测试的模块放在一起形成一个子系统来测试,着重测试模块的接口。
系统测试
把经过测试的子系统装配成一个完整的系统来测试,发现的往往是软件设计中的错误,也可能发现需求说明中的错误。不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常也称为集成测试。
验收测试(确认测试)
验收测试是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)把软件系统作为单一的实体进行测试进行测试,它发现的往往是系统需求说明书中的错误
平行运行
同时运行新开发出来的系统和将被它取代的旧系统,然后比较新旧两个系统的处理结果。平行运行可以在准生产环境中运行新系统而又不冒风险,同时用户能有一段熟悉新系统的时间,用户可以趁这段时间验证用户指南和使用手册之类的文档。以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。
详细步骤说明如下表所示:

测试阶段 主要依据 测试人员 测试方法 测试内容
单元测试 系统设计文档 开发小组 白盒测试 接口测试
路径测试
子系统测试 系统设计文档
需求文档 独立测试小组 白盒测试
黑盒测试 接口测试
路径测试
功能测试
性能测试
系统测试 需求文档 独立测试小组 黑盒测试 功能测试、健壮性测试
性能测试、用户界面测试
安全性测试、压力测试
可靠性测试、安装/卸载测试
验收测试 需求文档 用户 黑盒测试 功能测试、健壮性测试
性能测试、用户界面测试
安全性测试、压力测试
可靠性测试、安装/卸载测试
1.3. 测试内容
接口测试
每个接口可能有多个输入参数,每个参数有 “典型值”、“边界值”、“异常值”之分,根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。 同时要观察是否有程序语句从来没有被执行过,特别留意函数体内的错误处理程序块。
路径测试
路径测试就是测试程序的流程路径,想遍历全部路径几乎是不可能的,不测试或者胡乱找几条路径测试却又不行,输入与对应的输出之间的路径是唯一的。由于接口测试时的输入要有代表性的,因此相应的路径也具有代表性,制定的路径测试检查表应该包括:数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理。
功能测试
功能测试的基本方法是构造一些合理输入(在需求范围之内),检查输出是否与期望相同。有两种比较好的测试方法:等价划分法和边界值分析法,等价划分是指把输入空间划分为几个“等价区间”,在每个“等价区间”中只需要测试一个典型值就可以了;边界值测试法是对等价划分法的补充。除了典型值外还要用边界值作为测试用例。
健壮性测试
健壮性是指在异常情况下,软件能正常运行的能力。它有两层含义:(1)容错能力,容错性测试通常构造一些不合理的输入来引诱软件出错;(2)恢复能力,恢复测试重点考察系统能否重新运行、有无重要的数据丢失、是否毁坏了其它相关的软件硬件。
性能测试
性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考,有时人们关心测试的“绝对值” ,有时关心测试的“相对值” 。
用户界面测试
绝大多数软件拥有图形用户界面,图形用户界面的测试重点是正确性、易用性和视觉效果,在评价易用性和视觉效果时,主观性非常强,应当考虑多个人的观点。
信息安全测试
信息安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。主要有如下步骤:(1)为非法入侵设立目标、(2)邀请一些人扮演黑客,让他们想尽办法入侵系统,实现“目标”、(3)如果有人成功了,请他详述入侵的过程。
压力测试
压力测试也叫负荷测试,即获取系统能正常运行的极限状态。 主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。 压力测试的一个变种是敏感测试,敏感测试目的是发现什么样的输入可能会引发不稳定现象。
可靠性测试
可靠性是指在一定的环境下、给定的时间内、系统不发生故障的概率。软件可靠性测试可能会花费很长时间。 比较实用的办法是,让用户使用该系统,记录每一次发生故障的时刻。计算出相邻故障的时间间隔

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码媛

你的鼓励将是我继续下去的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值