啊胡

V1

2022/09/08阅读:16主题:自定义主题1

黑盒测试之 非功能测试

黑盒测试还包括非功能测试,下面简要介绍几种常用的非功能测试方法。

强度测试

强度测试是验证软件的性能在各种极端的周边环境和系统条件下是否能正常工作,也就是验证软件的性能在各种极端的周边环境和系统条件下的承受能力。这里所谓“强度”包括两项:一项是超载运行测试,另一项是容量测试

超(满)载运行测试:是对软件在单位时间内所能承受的荷载的极限进行验证。例如,一个提供文档下载的网站服务器软件,规定同时登录下载的用户不得超过10人。所谓满载测试就是10个用户在同一时间内登录,超载测试就是10个以上的用户在同一时间内登录。测试的目的在于观察分析软件在这些情况出现时的表现,最起码的要求是软件在这种条件下不至于崩溃。

容量测试:是对软件系统处理大量数据的能力进行检验。与超(满)载运行测试不同,容量测试并不涉及时间。以文字编辑软件为例,用户打开一个文件,存入大量的文字或数据,然后尝试将文件存储。当文字或数据的量大到一定程度的时候,或者说这个容量已经接近系统处理能力的极限时,软件会有什么样的表现?一个文件输送的软件遇到所传输的文件数据量极大的时候表现如何呢?会因此崩溃吗?这些就是容量测试所要找出的答案。

性能测试

性能测试通常是验证软件的性能在正常环境和系统条件下重复使用时是否还能满足性能指标,软件的性能测试是系统测试中难度较大的测试。在软件公司的测试部门,一般都有专门做性能测试的测试工程师或测试组。在软件的用户手册中,一般都会标明软件的性能(或在规格说明书、设计文件中都对软件的性能有明确的规定),性能测试的依据就出自这里。

在对软件系统第1版做性能测试时,应该分别对软件中的所有函数进行测试,记录下软件执行单一任务时的表现,然后是测试软件同时执行多项任务时的表现,这个“第1版”的记录可用作基准测试的数据记录,以后在软件进行不同版本的基准测试时(基准测试是每个版本推出前必须做的测试),其中的测试项目,各公司的规定有所不同,但均应进行性能测试。

软件系统的性能测试包括系统反应时间、用户反应时间、软件界面反应时间、中央处理器的利用率、检查系统记忆容量在运行程序时有没有流失现象(或称内存泄露)等。

进行软件系统性能测试,必须先设计测试的模式,这个模式就是根据软件设计说明或用户手册里标明的硬件规格和软件指标而设计的。这个性能测试的模式一旦建立,以后每次的性能测试都应该尽可能在相同的设置下进行,只有这样,测试的结果才可以对照。

软件系统性能测试受周边各种因素的影响很大。例如,在测试测出的性能很难与用户在日常工作中所得到的结果相同,原因是测试很难模拟实际用户的周边设置(各个计算机的配置不同、数据输入/输出量不同、用户数量不同等,因而测试的结果只是在一定范围内有效。由于性能测试操作及设定比较复杂,一般软件公司都使用专门的性能测试软件进行测试。这些性能测试软件可按照测试人员输入的各项参数来设定测试模式,自动执行测试,并将各种测试结果记录下来并进行图表化等。这样既省下很多测试准备时间,又方便操作,还可以得到比较接近实际的数据。

安全测试

安全测试是为了检验软件的数据保密性和数据完整性的测试。可以说,任何的软件都只是在一定程度上安全,并没有绝对安全的软件。一般情况下,软件的安全检验是由专门人员完成的,测试工程师只能从功能检测的角度去配合。进行安全检验的专门人员,对软件安全方面有深入的认识、做过大量的研究,熟悉软件安全设计,包括编码、解码、通信的各种协定、防火墙设置、数据库等。如果测试的软件涉及网络服务器,则测试工作还需要公司IT 部门的配合,或者在公司内部做一个模拟的防火墙来专门进行安全测试。

从测试人员的角度出发,一般只需要从功能方面做安全测试。以网络服务器类的软件为例,所要进行的测试主要有以下几个方面。

• 登录验证;

• 服务器对用户登录资料的处理;

• 计算机各种安全设置对网页显示的影响。

测试人员在发现问题后,应将问题送交专门负责安全检测的相关部门,由他们判断到底是软件设计结构问题,还是编程的问题,或者是用户方面的设置问题。

软件安全问题是很难处理完善的,特别是网络方面相关的软件。因此,有些软件公司还专门请曾做过黑客的人来进行安全检测,目的就是要利用他们在这方面的专长,帮助提高软件的安全性能。

安装与卸载测试

安装与卸载测试的重要性在于安装与卸载是软件给客户的第一印象。软件交到用户手中之后,用户做的第一件事就是把软件安装到计算机上。

安装测试:在安装过程中,注意测试软件给用户的提示是否清楚明了、安装的操作是否容易、安装过程是否太冗长、各系统设置是否正确、安装完成后软件是否能正常运行、安装过程有没有干扰计算机中其他的程序等。

卸载测试:卸载测试要考虑卸载过程中,系统的提示是否清楚明了、操作是否简单、卸载是否彻底、系统设置是否回复到安装前状态等。软件卸载通常遇到的问题是卸载不彻底,比如安装时设立的文件夹没有清除、系统的设置是否被清理干净等。

配置测试

配置测试主要注意三个方面:一是软件安装与卸载过程中系统配置的变化;二是软件完成安装后,人为改变配置,软件是否有相应的变化;三是硬件的不同组合是否与软件兼容。

软件在安装的过程中将对计算机的系统配置进行改动,使其支持该软件的启动、运行等。同样,当软件卸载后,所有的系统配置应还原到该软件安装前的状态。

所谓人为改变配置是指操作人员为改变软件的某些子功能,对软件内部的配置数据进行改动。在这些改动完成后,软件有相应的变化。例如,一个用于文件输送的软件,可以采用FTP的方式进行,也可以采用http/https的方式进行。用户可选择其中一种作为初始配置(默认值),例如选FTP,当用户改变主意,将http/https作为初始配置,则测试要验证的是软件是否实现了这一改变。在网络软件的配置测试中,常常要对网络相关的配置进行测试,如Cookie的设置、Active Control的设置、安全设置等。

计算机硬件与该软件兼容性的测试也属于配置测试的内容之一。在软件的说明中,必定会对计算机硬件及操作系统的要求做出说明。同一类型的计算机,各自的内部硬件(如以太网卡、声卡、逻辑卡、外接的打印机等)都会有所不同。因此,对该软件与不同的硬件配置的兼容性也要进行测试。

兼容性测试

兼容性测试是针对测试软件与其他软件之间以及测试软件与不同硬件之间的兼容性进行的测试。它包括该软件本身不同版本之间、该软件与其他不同版本软件之间、不同版本硬件之间的兼容性测试。

同一软件具有不同的版本,各版本之间是不是相互兼容呢?比如说,一个文件编辑软件,在经过不断的改进、增加功能以后,新的版本能否用来编辑用早期版本编辑的文件呢?新增加的功能是否能应用在前期生成的文件里呢?如果不可以,是否有其他的方法可以解决这些兼容性问题?

不同的软件之间也存在着兼容性的问题。同样以一个文字编辑软件为例,这个软件是否可以与其他文字编辑软件兼容呢?测试中的软件是否可以打开、编辑由其他编辑软件生成的文件?如果不可以,是否有解决问题的方法?目前在市场上,有一些软件专门用来进行数据格式转换,用以解决这一类问题。

如果软件的用户手册上标示该软件与另外的几种软件、硬件兼容,那么测试计划就一定不可以缺少兼容性测试。兼容测试应包括以下内容。

• 操作系统兼容:由于并非所有的软件都具有平台无关性,在测试中,应该按照软件设计说明等文件中关于该软件可以运行在哪种操作系统平台而去逐一验证。

• 硬件兼容:软件在不同的硬件环境中(比如不同的计算机、网卡、声卡、打印机型号等)其运行结果是否一样?

• 软件兼容:与支持软件或同机运行的其他常用软件之间会不会有冲突,造成任一方出现不正常现象?

• 数据库兼容:如果测试中软件需要数据库系统的支持,那么测试时应考虑此类软件对不同数据库平台的支持能力。在需要转换到其他平台的情况下,该软件是否可以直接挂接,或者提供相关的转换工具,还是必须重新开发或需较大改动?

• 数据兼容:这包括不同形式数据之间及新旧数据之间的兼容。

故障修复测试

故障修复测试是为了保证软件无论在遇到特殊事故或任何出错的情况下,一旦故障排除,即能迅速恢复到事故或出错前的状况,继续正常运行。测试人员可用各种方法使软件出错,观察软件的反应,然后排错,看看软件是否会恢复到原来的状态并正常工作。

这一测试技术广泛应用于文件传输软件、数据库的相关软件的测试中。比如测试一个通过Internet传输文件的软件,最简单的测试就是在文件传输的过程中将网络接线拔掉,这时文件传输必然中断。如果该软件具有继续传输的功能(不必重新传输,只从中断点开始),则在重新接回网络后,文件的传输会从中断点继续,直到文件传送完成;软件的各部分功能与故障前相同,能够正常运行。

如果测试中的软件与数据库相关,则测试过程中,在存入数据时故意让软件出错,然后查证数据库中的相关数据是否恢复到原来的状态。

使用性能测试

使用性能测试从用户的角度去审视及改进软件,从而保证了软件的使用性能。使用性能测试一般是由用户实现的,通常情况下,由于用户接触该软件的时间不长,因而需要在测试人员或技术人员的协助下进行。很多时候,该类测试是通过Alpha及Beta测试来实现的。软件是为用户设计的,所以用户对软件的使用性能最有发言权。用户在日常生活、工作中使用过许多软件,对软件的应用表现及反应已经生成了一套无形的规范。在使用性能测试的过程中,只要测试软件的表现超出了用户的计算机常识,那就说明这个软件的使用性能有待改进。当然,如果测试中的软件有某些全新功能(前人没有应用过此功能),用户必须花点时间去学习、适应,这就另当别论。

在美国的一些软件公司里,测试部门在软件推出新版本之前,通常都会在公司范围内组织大规模测试,鼓励全体员工(包括非软件方面的员工,如财务人员、销售人员等)分批到测试室去使用该软件,并让他们在完成任务后,报告使用过程中发现的缺陷及问题。这类测试所花的时间不多,通常2~3h足已。公司各部门都会乐意支持这类测试,加上其形式很自由,公司还常常备有茶点或午餐以表谢意,因而员工们都愿意参见。这是进行使用性能测试的有效方法,因为测试人员与非测试人员看问题的角度不一样。这样在每次大规模测试后,都会有不少意外收获。

要使得软件通过性能测试,测试人员和编程人员必须有开放的心态及足够的耐心,因为反馈回来的意见可能不太专业(如前所述,这类测试一般由用户及非测试人员来做),但必须意识到获得这种反馈正是使用性能测试的意义所在。

帮助菜单及用户说明测试

帮助菜单及用户说明测试软件的帮助菜单系统及用户说明书等是最容易被测试部门忽略的。大家都集中精力测试软件的各部分功能,但是不要忘记,帮助菜单系统及用户说明书也会有许多错误出现,对这部分的测试应该一并列入测试工作中。

关于测试帮助菜单及用户说明书,很重要的是对其使用性能进行测试,也就是从用户的角度来检验使用的方便程度及其可靠性、准确性。

作为终端用户,在软件使用过程中遇到问题或困难,一般都会先试试从帮助菜单中寻找答案,若找不到才会求助于技术支持。换句话说,如果帮助菜单的质量较高,那么技术支持部门就能节省不少接待用户的时间。

分类:

后端

标签:

软件测试

作者介绍

啊胡
V1