第14章 软件的其他测试技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第14章 软件的其他测试技术

软件的其他测试技术不是一个基本过程测试技术,是一个辅助的测试技术,用于软件测试过程中。本章重点讨论以下内容:

● 可用性测试;

● 压力测试;

● 确认测试;

● 容错性测试;

● 易用性测试;

● 安全性测试;

● 需求检查测试;

● 可靠性测试;

● 风险测试;

● 缺陷测试;

● Web测试;

● 接口测试;

● 安装和反安装测试。

14.1 可用性测试

可用性测试(UsabilityTesting)是指在设计过程中被用来改善易用性的一系列方法。我们为用户提供一系列操作场景和任务让他们去完成,这些场景和任务与您的产品或服务密切相关。通过观察,我们来发现过程中出现了什么问题、用户喜欢或不喜欢哪些功能和操作方式,原因是什么。针对问题所在,我们会提出改进的建议。

14.1.1 可用性测试的概念

可用性测试的概念主要表现为:

1. 可用性是产品的一个基本的自然属性,是最终用户使用产品的可用的程度。

2. 可用性测试是依照可用性标准对GUI的系统评估。

3. 可用性是在产品和用户的相互作用中体现出来。

4. 可用性测试是用户在和系统(网站,软件应用程序,移动技术或任何用户操作的设备)

5. 交互时对用户体验质量的度量。

6. 可用性的基本评价指标是效率、满意和安全(容错,无错)。

14.1.2 可用性测试的方法

可用性测试的方法主要表现为:

1. 对同一测试内容在同时采用多指标的测试;

2. 对同一测试内容在不同时间采用采用多指标的测试。

14.1.3 可用性测试的目的

可用性测试的目的主要表现为:

1. 可用性测试的目的是确定用户界面设计在两个层面上的问题;

2. 概念的层面-和导航,用户定位和UI一致性相关地关键问题;

3. 详细设计的层面-遵循GUI标准和指南,使用的术语,特定的问题。

这些问题一旦被收集,将按照严重程度给它们划分优先级别。另外,对于每个主要的问题,提议做一个重设计的建议。

14.2 压力测试

所谓压力测试(stress testing)是指对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

压力测试主要表现为:压力测试的定义、压力测试的目标。

14.2.1 压力测试的定义、特点和核心原则

1. 什么是压力测试

压力测试(Stress Test)也就是强度测试,压力测试是指模拟巨大的工作负荷来测试应用程序在峰值情况下如何执行操作。在实际的软硬件环境下,压力测试主要是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户访问时软件的抗压能力。其目的是找到系统在哪里失效以及如何失效的地方。感兴趣的是这些对系统的处理时间有什么影响?需要的资源是什么?需要的环境是什么?需要做什么样的配套工作?一般状态下包括以下3点:

(1)短时间的极端负载测试;

(2)在过量用户下的负载测试;

(3)连续执行所有能做的操作 。

2. 压力测试的特点

压力测试具有以下特点:

(1)压力测试通过增加访问量使应用系统的资源使用保持在一定的水平上,以此检验应用的表现,重点在于有无出错信息产生,系统对应用的响应时间等。

(2)通过压力测试使系统的资源使用达到较高的水平。一般情况下, CPU的使用率要达到75%以上、内存使用率要达到70%以上。

3. 压力测试和负载测试的区别

压力测试是在超常规负荷条件下,长时间连续运行系统,检验应用程序的各种性能表现和反应。

负载测试是指测试应用程序在常规负荷下,确认响应时间和其它的性能和表现。

4. 压力测试的核心原则

压力测试的核心原则是:

★ 重复:最明显且最容易理解的压力原则就是测试的重复。

★ 并发:并发是同时执行多个操作的行为。

★ 大数据量:给每个操作增加超常规的负载量。

★ 随机。

14.2.2 压力测试的目标

压力测试的目标主要是通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。主要验证系统的可靠性。在具体操作上表现为:

1.检查最终用户的响应时间。根据系统设计说明书确定的功能和性能要求完成一个业务流程应所需的时间;

2. 检查可靠性。检查系统功能和性能有没有错误?在大数据量状态下系统运行是否

会发生故障?

3. 检查硬件或软件的可靠性;

4. 检查硬件配置是否合理;

5.检验系统容量。在没有显著的性能下降情况下,系统能处理的最大负荷。 14.3 确认测试

确认测试(Validation Test)的目的是向用户表明系统能够像预定要求那样工作。

14.3.1 确认测试的定义

确认测试又称有效性测试。确认测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求说明书,功能说明书,性能说明书列出的需求。确认软件的功能和性能及其他特性是否与用户的要求一致。

14.3.2 确认测试的内容

确认测试内容主要包括功能和性能两部分。

(1)功能测试

功能测试考察软件对功能需求完成的情况,应该设计测试用例使需求规定的每一个软件功能得到执行和确认。

★ 按照系统给出的功能列表,逐一设计测试案例;

★ 对于需要资料合法性和资料边界值检查的功能,增加相应的测试案例;

★ 运行测试案例;

★ 检查测试结果是否符合业务逻辑;

★ 评审功能测试结果。

(2)性能测试

性能测试是检验软件是否达到需求规格说明中规定的各类性能指标,并满足一些与性能相关的约束和限制条件。

★ 测试软件在获得定量结果时程序计算的精确性;

★ 测试在有速度要求时完成功能的时间;

★ 测试软件完成功能时所处理的数据量;

★ 测试软件各部分工作的协调性,如高速操作、低速操作的协调性;

★ 测试软件/硬件中因素是否限制了产品的性能;

★ 测试产品的负载潜力及程序运行时占用的空间。

14.4 容错性测试

容错测试(Tolerance test)是一种对抗性的测试过程。当软件运行出现故障时,如何进行故障的转移与恢复当前系统产生的实时数据。又如何去转移有用的数据(文件),应用系统出现故障时能否成功地将运行的系统或系统某一关键部分转移到其他设备上继续运行,使备用系统不失时机地“顶替”已发生故障的系统,避免丢失数据(文件),不影响用户的使用。

14.4.1容错性测试的概念

容错性测试是检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出大错时,能否在指定时间间隔内修正错误并重新启动系统。当系统出现非关性错误时能否保证系统继续运行。

14.4.2容错性测试的内容

容错性测试包括两个方面:

★ 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。

★ 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复。

相关文档
最新文档