|
|
51CTO旗下网站
|
|
移动端

1.5.4 指定被测软件的行为

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

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

1.5.4 指定被测软件的行为

有多种方式用来定义和指定软件行为的方式有很多种,其中最简单的方法,就是用自然语言如英语来指定软件的行为,但这比以严格形式定义的行为更易引起二义性。在此,我们解释如何用软件状态来定义软件行为,以及如何用状态转换图(或简称状态图)来指定软件的行为。

软件的一个状态,是指软件当中所有变量当前值的集合以及下一步将要执行的语句的指称。对软件状态的一种记录方式,就是将软件当中所有变量的当前值收集起来放入一个叫作状态向量的向量中。对软件在任一时刻执行控制的指称,可以用一个与下一步将要执行的程序语句相关的标识符给出。例如,对于用汇编语言编写的程序,控制的位置可以用程序计数器的值精确定义出来。

软件当中的每一个变量,都对应状态向量中的一个元素。显然,对于大型软件,比如Unix操作系统,状态向量可能具有数千个元素。程序语句的执行引起软件从一个状态转换到下一个状态。软件状态的转换序列被称作软件行为。

例1.13考虑一个程序,输入两个整数到变量X和Y,比较它们的值,将其中的较大者赋值为Z,在屏幕上显示Z的值,然后退出。程序P1.1说明了该程序的概要。该程序的状态向量由4个元素组成,第一个元素是语句标识符,指出执行控制当前所在位置,后面的3个元素分别对应变量X,Y,Z的值。

程序P1.1

 
设状态向量的一个元素u,表示一个未定义的值。符号si→sj表示“软件从状态si转换到sj”。软件之所以从状态si转换到状态sj,是因为执行了标识符为状态si的第一个元素的语句。程序max可能经历的一个状态转换序列为:
 

在其执行的起点,软件处于初始状态。一个(正确的)软件一般结束于其终止状态。所有的其他状态都称作中间状态。在例1.13中,初始状态为[2  u  u  u],终止状态为[9  3  15  15],其他4个状态为中间状态。

 软件的行为可以被抽象为一个状态序列。对于每个软件,需要观察一个或多个状态,以便判断软件是否按其需求规定的那样运行。对某些软件,测试人员只需关心终止状态,而对另一些软件,测试人员则需观察一系列的状态,也许还需要观察更为复杂的状态模式。

例1.14对于程序max(程序P1.1),只需终止状态就足以判断程序是否找出两个整数中的最大者。如果输入max的整数是3和15,那么正确的终止状态就是[9  3  15  15]。事实上,只是状态向量的最后一个元素,即15,才是测试人员关心的。

例1.15考虑一个菜单驱动的程序myapp。图1-5说明了该程序的菜单条。它允许用户在屏幕菜单条显示的菜单项列表上移动并点击鼠标,出现下拉菜单,并在屏幕上显示出一个选项列表。该程序的菜单条上有个菜单项为File,当File被下拉时,几个选项中有个选项为Open。通过移动鼠标光标,选中选项Open时,其将加亮显示。当释放鼠标时,表明选择过程结束,这时,一个显示当前目录下文件名称的窗口应当弹出来。

 
图1-5 启动程序myapp时显示4个菜单项的菜单条
图1-6描述了当执行上述用户操作时希望myapp进入的状态序列。当程序启动时,进入初始状态,这时,程序显示出菜单条并等待用户选择一个菜单项。该状态图用一个状态转换序列说明myapp的预期行为。如图1-6所示,myapp在执行完操作序列t0,t1,t2,t3后,从状态s0迁移到s3。为了测试myapp,测试人员可以应用该状态图中标出的操作序列,并观察程序是否进入了预期的状态。
 
图1-6 程序myapp的一个状态序列,说明当用户选择File菜单项下的
Open选项时程序的预期行为
从图1-6可以得出,状态序列图可以用来定义软件的行为需求。正是这个需求规格说明,在测试阶段可以用来判断被测软件是否满足要求。
【责任编辑:云霞 TEL:(010)68476606】

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

读 书 +更多

非常网管——网络应用

在网络应用越来越复杂的今天,传统的网络应用已经不能满足企业和用户的需要,这就对网络管理员、信息管理部门提出了更高的要求。本书介绍了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊