|
|
|
|
移动端

1.18.3 分类因子C3:目标导向的测试

《软件测试基础教程》第1章软件测试的基本知识,本章作为一个导引,其目的在于让读者熟悉与软件测试相关的基本概念,建立起全书的框架。在本书后续章节中将要详细阐述的问题,首先在这里被提了出来。读完这章之后,读者就能够在软件测试和软件质量方面提出一些有意义的问题。本节为大家介绍分类因子C3:目标导向的测试。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-16 21:46

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


1.18.3 分类因子C3:目标导向的测试

目标导向的测试向软件测试领域引入了大量的术语。表1-6列举了实际工作中常用的测试目标,以及相应的测试技术的名称。

表1-6 软件测试技术的分类

 

存在着各种各样的测试目标。当然,发现软件当中隐藏的错误是测试的主要目标,但目标导向的测试却旨在寻找特殊类型的错误。例如,脆弱性测试的目的在于检测软件是否存在漏洞,以防止未经授权的用户能够由此入侵到被测系统中来。假设某个组织已经建立了安全保密制度,并采取了安全保密措施,渗透测试可以评价这些制度和措施的效果如何。当然,用于测试设计和评价的黑盒测试与白盒测试技术,都可应用于渗透测试。然而,在许多组织内部,渗透测试以及其他形式的安全保密性测试仍然很随意。

鲁棒性测试所谓鲁棒性测试是指测试一个软件针对未期望输入的健壮性。它不同于功能测试,因为鲁棒性测试用例是从有效(或期望)输入空间之外设计的,而在功能测试中,测试用例是从有效输入空间导出的。

举一个鲁棒性测试的例子——假设要求某个软件针对所有x≥0的值执行某项功能,然而,并没有规定当x<0时软件应该怎么做。在这种情况下,鲁棒性测试应该要求针对x<0的情形对该软件进行测试。由于需求没有规定软件在有效输入空间外的行为,这里就需要对究竟什么是鲁棒性测试有一个清晰的理解。在有些软件中,鲁棒性可能只是意味着软件显示一个错误信息并退出,而在其他情况下,鲁棒性可能意味着软件要控制飞机实现安全着陆。

压力测试在进行压力测试时,测试人员要检查软件在所施加压力下的行为。例如,借助于压力测试,可以检查数据存储缓冲区的溢出处理情况;通过向其施加大数据量和各种各样的请求,可以对Web应用软件进行测试。这里,测试的目的在于发现被测软件在所给压力情况下能否继续运行正确。

需要针对每个软件定量确定其压力数据。例如,可以通过向其发送超大数量的请求来对Web服务进行压力测试,此种测试的目的在于检查软件能否继续运行正确并以预期的速度提供服务。因此,压力测试就是要检查被测软件是否满足其功能需求,而且在压力情况下还满足其性能要求。

性能测试术语“性能测试”是指对软件按照预期的性能要求进行专门的测试。例如,可能会检查一个编译器是否满足规定的性能要求,比如每秒编译的代码行数。

通常,性能要求都是针对特定硬件和软件配置而提出的。例如,可能会要求某个软件在特定的基于Intel CPU和专门OS的机器上每分钟处理1000条账单事务。

负载测试术语“负载测试”是指对软件加载一个或多个操作,以判断被测软件在不同的负载条件下能否按要求的那样继续运行。例如,可能会对一个数据库服务器加载来自大量模拟用户的请求。虽然服务器在只有一两个用户使用时工作正常,但当用户数量超过一定阈值时失效的方式却五花八门。

在负载测试中,可以判断一个软件能否充分地处理异常情况。例如,一个应用程序可能维护着一个动态分配的缓冲区来存储用户ID,缓冲区的大小随着并发用户的增加而增加可能会出现这样的情况,即不能再向缓冲区增加额外内存空间了。在这种情况下,一个设计不好或编码错误的应用程序就有可能崩溃。然而,一个精心设计并编码正确的应用程序将能恰当地处理这种内存溢出(out of memory)异常,比如通过一条致歉信息告知负载过高。

从某种意义上说,负载测试是另一种形式的压力测试。然而,负载测试可用来查明被测软件的性能及其行为的正确性。当测试目标是检查针对负载条件下的功能需求,被测软件是否运行正确时,负载测试就是某种形式的压力测试。当测试目标是评价在给定条件下软件执行某些操作的时间时,负载测试就是某种形式的性能测试。

负载测试也是某种形式的鲁棒性测试,主要测试未明确的需求。例如,可能没有准确地规定有关软件能够处理的最大用户数以及当用户数超过某个阈值时软件该做什么需求,在这种情况下,负载测试允许测试人员来判断这个阈值,被测试软件一旦超过这个阈值就陷入崩溃状态。

术语重叠注意,在以上测试术语中存在重叠现象。例如,脆弱性测试就是安全保密性测试的一种形式;还有针对业务目标的兼容性测试也许也包含脆弱性测试,这种重叠在测试术语中大量存在。

再次注意,正规的测试生成与测试充分性评价技术同样适用于所有形式的目标导向的测试。表1-6中几乎整个“例子”栏都没有内容,原因在于表1-4中列出的测试生成与评价技术(TGAT)同样适用于目标导向的测试。在技术上承认“当无正规的测试生成技术可用时,采用ad hoc测试”是正确的。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

戴尔“血汗工厂”调查报告

去年11月至今年8月间,香港学生组织大学师生监察无良企业行动(以下简称SACOM)通过调查发现,戴尔公司位于东莞的三家代工厂严重违反了《劳...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊