探析软件测试之系统测试

时间:2022-10-27 06:51:18

探析软件测试之系统测试

摘要:系统测试在软件测试中占有非常重要的地位,本文对系统测试的概念、系统级功能测试技术及系统测试的主要内容进行了简单阐述,同时对几种重要的系统测试进行了分析。

关键词:软件测试;系统测试;线索;压力测试;性能测试

中图分类号:TP39文献标识码:A文章编号:1007-9599 (2012) 05-0000-02

一、引言

软件测试作为软件质量保证的关键技术之一,其目的就是能够有效地发现软件中的错误或缺陷。系统测试是对完整集成后的系统进行测试的阶段,用来评价系统对具体需求规格说明的符合性,系统测试是在单元、组件和集成测试阶段之后进行的。主要针对软件系统和其他系统元素(及硬件、数据库和人机交互信息)组合构成完整的计算机应用系统中所有的元素配合是否合适以及整个系统的功能、性能、执行强度、安全性等是否达到规定标准而进行的测试。

二、系统测试概述

(一)系统测试概念

所谓系统测试是将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试,目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。

(二)系统测试前的准备工作

系统测试前的准备工作主要包括:对系统各种功能的描述;系统要求的数据处理及传输的速率;对系统性能的要求;对备份及修复的要求;对兼容性的描述;对配置的描述;对安全方面的要求等。

(三)系统测试的测试数据

系统测试所用的数据必须尽可能地像真实数据一样精确和有代表性。可以使用真实数据或者使用真实数据的一个复制,复制数据的质量、精度和数据量必须尽可能地代表真实的数据。

(四)系统测试与确认测试区别

确认测试始于集成测试的结束,那时已测试完单个构件,软件已组装成完整的软件包,且接口错误已被发现和改正。在确认测试时,传统软件与面向对象软件的差别已经消失,测试便集中于用户可见的动作和用户可识别的系统输出。

1.确认测试准则

软件确认是通过一系列表明已符合软件需求的测试而获得的。测试计划和规程都是用于确保满足所有的功能需求,具有所有的行为特征,达到所有的性能需求,文档是正确的、可用的。执行每个确认测试用例之后,存在下面两种可能条件之一:(1)功能或性能特征符合需求规约,因而被接受;(2)发现了与规约的偏差,创建缺陷列表。

2.配置评审

评审的目的是保证所有的软件配置元素已正确开发、编目,且具有支持软件生命周期的支持阶段的必要细节。

3.α测试与β测试

α测试是由最终用户在开发者的场所进行。软件在自然的环境下使用,开发者站在典型用户的后面观看,并记录错误和使用问题。α测试在受控的环境下进行。

β测试是最终用户场所执行。开发者通常不在场,因此,β测试是在不为开发者控制的环境下软件的现场应用。最终用户记录测试过程中遇见的所有问题(现实存在或想象的),并将其定期地报告给开发者。接到β测试的问题报告之后,软件工程师进行修改,然后准备向最终用户软件产品。

二、系统级功能测试技术

(一)线索的概念

线索(thread)的概念很难定义。事实上,一些已经公开的定义都是矛盾、容易产生误导或错误的。可以把线索看作是一种不需要形式化定义的原始概念。以下是对线索的多种看法:一般使用的场景;系统级测试用例;激励/响应对;由系统级输入序列产生的行为;端口输入和输出事件的交替序列;系统状态机描述中的转换序列;对象消息和方法执行的交替序列;机器指令序列;源指令序列;MM-路径序列;原子系统功能序列。

(二)需求规约的基本构造元素

根据一组基本需求规约构造元素,即数据、行动、设备、事件和线索,来讨论系统测试。每个系统都可以使用这五种元素表示。

1.数据

主要包括:变量、数据结构、字段、记录、数据存储和文件、实体关系模型高层数据描述。

2.行动

以行动为中心建模仍然是需求规约的一种常见形式,这是因为有命令式程序设计语言以行动为中心性质的历史原因。行动有输入和输出,这些输入和输出既可以是数据,也可以是端口事件。行动还可以分解为低层活动,例如数据流图。

3.设备

每个系统都有端口设备,这些端口设备是系统级输入和输出(端口事件)的源和目的地。在技术上,端口是I/O设备接入系统的点。

4.事件

事件既有数据方面的一些特征,又有行动方面的一些特征。事件是发生在端口设备上的系统级输入(或输出)。可以是离散的,也可以是连续的(例如温度、高度或压力)。端口输入事件是物理到逻辑的转换,同样,端口输出事件是逻辑到物理的转换。

5.线索

因为要测试线索,因此测试人员通常不能在数据、事件和行动之间的交互中找出线索。线索本身出现在需求规约中的惟一地方,是使用快速原型法并结合场景记录器。

(三)线索测试的结构策略及功能策略

结构策略实际上是基于有限状态机的行为建模中的结构来寻找测试线索的。首先自底向上组织各层次的状态机,然后寻找线索覆盖每个状态机的节点和边,同时还要找出节点与边覆盖指标。

线索测试的功能策略

1.基于事件的线索测试

(1)端口输入事件覆盖指标

五个覆盖指标为覆盖端口输入事件提供了一组线索:

(1)PI1:每个端口输入事件发生。

(2)PI2:端口输入事件的常见序列发生。

(3)PI3:每个端口输入事件在所有“相关”数据语境中发生。

(4)PI4:对于给定语境,所有“不合适”的输入事件发生。

(5)Pl5:对于给定语境,所有可能的输入事件发生。

(2)端口输出事件覆盖指标

根据端口输出事件定义两种覆盖指标:

(1)PO1:每个端口输出事件发生。

(2)PO2:每个端口输出事件在每种原因下发生

2.基于端口的线索测试

基于端口的测试是基于事件测试的有用补充。

对于每个端口都要询问端口上会出现什么事件。然后根据每个端口的事件列表寻找使用输入端口和输出端口的线索。有些需求规约技术要求提供这种端口的事件列表。

设备和事件之间的多对多测试应该在两个方向上进行:基于事件的测试覆盖从事件到端口的一对多关系,反之,基于端口的测试覆盖从端口到事件的一对多关系。SATM系统不能使用这种测试,因为SATM不发生在多个端口上。

三、系统测试的主要内容

系统测试一般要完成以下几种测试:功能测试、性能测试、可靠性、稳定性测试、兼容性测试、恢复性测试、安全性测试、强度测试、面向用户支持方面的测试、其他限制条件的测试。下面就对常用的系统测试做一个介绍:

(一)压力测试

压力测试是指模拟巨大的工作负荷以查看或评估应用程序在峰值或超越最大负载使用情况下如何执行操作。压力测试有如下特点:可以测试系统的稳定性;一般需要对用户的使用情况进行模拟。压力测试的方法包括:并发测试法、增加量级法、重复测试法。

(二)性能测试

性能测试一般需进行:对软件计算的精度有要求时,设计测试用例;对软件有时间要求时,设计测试用例;测试为完成功能所处理的数据量;测试程序运行所占用的空间;测试对系统的负载潜力;测试配置项各部分的协调性;测试软件性能和硬件性能的集成;测试系统对并发事务和并发用户访问的处理能力。

(三)恢复性测试

多数基于计算机的系统必须从错误中恢复并在一定的时间内重新运行。恢复性测试是通过各种方式强制地让系统发生故障并验证其能适当恢复的一种系统测试。若恢复是自动的(由系统自身完成),则对重新初始化、检查点机制、数据恢复和重新启动都要进行正确性评估。若恢复需要人工干预,则估算平均恢复时间(mean-time-to-repair,MTTR)以确定其是否在可接受的范围之内。

(四)安全性测试

安全性测试验证建立在系统内的保护机制是否能够实际保护系统不受非法入侵。系统的安全必须经受住正面的攻击,但是也必须能够经受住侧面和背后的攻击。在安全性测试过程中,测试者扮演试图攻击系统的角色。测试者可以试图通过外部手段获取密码;可以通过瓦解任何防守的定制软件来攻击系统;可以“制服”系统使其无法对别人提供服务;可以有目的地引发系统错误以期在其恢复过程中入侵系统;可以通过浏览非保密数据,从中找到进入系统的钥匙等等。

四、结语

系统测试有助于在其部署中客户发现缺陷之前,尽可能多滴发现缺陷,在系统测试期间要验证完整产品的行为,包括设计多个模块、程序和功能的测试,测试完整产品的行为是很关键的,因为很多人错误地认为经过单独测试的组件放到一起后仍能正常运行。

参考文献:

[1]薛冲冲,陈坚.软件测试研究[J].计算机系统应用,2011,2

[2]陶幸辉,宋志刚.软件系统测试类型及测试用例设计[J].科技经济市场,2011,6

[3]朱家云.浅析软件测试[J].信息系统工程,2011,4

[4王丽达.论软件系统的测试[J].经济研究导刊,2011,14

[5]赵,孙宁.软件测试技术:基于案例的测试[M].北京:机械工业出版社,2011

[作者简介]楚书来,男,周口职业技术学院讲师,研究方向:软件工程与网络;刘蕴,女,周口职业技术学院讲师,研究方向:计算机应用、网页设计与网站开发。

上一篇:油田地面集输管网优化设计及软件开发 下一篇:浅析基于JAVA平台的人事信息系统