七.测试计划
1 .引言
1.1 编写目的
在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此,在软件生命周期的每个阶段都不可避免地会产生差错。尤其对于机票预订系统这类会影响人们生活.财产的工程软件,必须尽量减少差错,以免造成严重的损失。测试是“为了发现程序中的错误而执行程序的过程”。测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。
1.2 项目背景
本项目(机票预定系统)时由浙江航空公司委托,由<>软件开发小组负责开发。
1.3 定义
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
1 . 4参考资料
机票预定系统项目计划任务
浙江航空公司
1999/3
软件工程及其应用
周苏、王文等
天津科学技术出版社 1992/1
软件工程
张海藩
清华大学出版社
1990/11
项目的计划任务书 《》软件开发小组 1999/6/1
项目开发计划 《》软件开发小组 1999/6/1
需求规格说明书 《》软件开发小组 1999/6/1
概要设计说明书 《》软件开发小组 1999/6/1
详细设计说明书 《》软件开发小组 1999/6/1
用户操作手册 《》软件开发小组 1999/6/1
2 . 任务概述
2 . 1 目标
测试是“为了发现程序中的错误而执行程序的过程”, 测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
2 . 2 运行环境
由于系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的数据服务器程序。
1.服务器端子系统的运行要求:
系统软件: Window NT Server
数据库管理系统:SQL Server
硬件要求:Pentium II 450以上, 1024M RAM, 36G HD
2. 客户端子系统的运行要求:
系统软件: Window NT Workstation
数据库管理系统:SQL Server
硬件要求:Pentium 133以上, 32M RAM, 2.1G HD
2. 3 需求概述
浙江航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的
界面要单明了,易于操作,服务器程序利于维护。
2 . 4 条件与限制
必须在保证各硬件设备.软件系统齐备的情况下,资金充足,人员齐备,
各方面互相配合,齐心协力,共同完成。
3 . 计划
3 . 1 测试
测试方案是测试阶段的关键技术问题。为了提高测试效率降低测试成本,本测
试方案采用黑盒法设计基本的测试方案,再用白盒法补充一些方案。在黑盒法测试
方案中,采用等价划分技术,把所有可能的输入数据(有效的和无效的)划分成几
等价类,其划分类在以下的输入中再详述。
3 . 2 测试项目
客户机接受信息模块测试
客户机输出信息模块测试
网络接受和发送模块结构测试
服务器模块(包括数据库)测试
各模块之间的接口测试
系统测试
3 . 3 测试准备
在测试前,与各模块的主要负责人共同协商讨论,以概要设计说明书.详细设
计说明书作为总的提纲,选择合适的输入输出数据,并加以意义列举说明。
3 . 4 测试机构及人员
测试机构由 ZJU工作组组成,人员有《》软件开发小组全体人员。
4 . 测试项目说明
4 . 1 测试项目名称及测试内容
在测试过程中,首先需要对各子单元过程进行测试。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。
各子模块测试名称如下:
客户机接受信息模块测试
客户机输出信息模块测试
网络接受和发送模块结构测试
服务器模块(包括数据库)测试
各模块之间的接口测试
系统测试
4 . 2 测试用列
4 . 2 . 1 输入
· PersInfoExam 过程:
在 PersInfoExam 过程中,首先对用户的输入信息进行测试。客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。
在输入的测试数据中可分为有效输入类.无效输入类。
其中的错误种类有:
无效输入类
1.数据类型不匹配,PErrorType =T;否则=F;
姓名 string 旅行目的地 string
性别 string 旅行时间 date
工作单位 string (年/月/日 yy/mm/dd)
身份证号码 long int 定票/取票 boolean
2.数据超出规定范围PErrorRank =T; 否则=F;等等
性别只能是‘男’或‘女’;身份证号码按规定必须是13位旅
行时间必须在定票的当天过一天以后; 等等
有效输入类
1. 当用户的输入只有旅客资料或帐单号时,则
· CheckNoticeExam过程:
在CheckNoticeExam 过程中,对在帐单和取票通知的信息界面中输入的各项信息进行初步检验。
无效输入类:
1.数据结构不匹配,CerrorType=T,否则=F;
帐单号 long int
姓名 string
身份证号码 long int
付款金额 money
航班号 string
取票截止日期 date
目的地 string
2.数据超出规定范围CErrorRank =T; 否则=F;
如帐单号不是规定的15位;金额为负;取票截止日期已过;等等
· PersInfoInput 过程:
将输入界面表单中的数据输入到Class PersInfo
Class PersInfo{ /* 伪码 */
String name= 姓名 ;
String sex= 性别;
String company= 工作单位;
Long int idcode= 身份证号码;
Date stime= 旅行时间;
(syear/smonth/stime=年/月/日)
String denist= 目的地
Bool ocflag= 定票/取票
}
· CheckNoticeInput过程:
经检验无误后,将输入界面表单中的数据输入到Class CheckNotice
Class CheckNotic{
Long int cncode=帐单号
String name=姓名
Long int idcode=身份证号码
Money bill = 付款金额
String planecode= 航班号
Date dtime= 取票截止日期
String denist= 目的地
}
4 . 2 . 2 输出
· PersInfoExam 过程:
对在旅客信息界面中输入的各项信息进行初步检验。若发现错误,令
PErrorAppear=T,判断错误类型,并将相应的错误类型PErrorType或PerrorRank
作为参数,转入IErrorHandle过程。若未发现错误,转入PersInfoInput过程。
· PersInfoInput 过程:
无
· CheckNoticeExam过程:
对在帐单和取票通知的信息界面中输入的各项信息进行初步检验。若发现错
误,令CErrorAppear=T,判断错误类型,并将相应的 错误类型CErrorType或
CErrorRank作为参数,转入IErrorHandle过程。若未发现错误,转入
CheckNoticeInput过程。
· ErrorHandle过程:
在PersInfoExam或CheckNoticeExam过程中若发现错误,就转入本过程,执行
相应的处理,并输出相应的出错信息。
If (PErrorType==T)
输出“您的个人信息可能输错了位置。请重试。”
If (PErrorRank==T)
输出“您的个人信息不适应规定范围。请重试。”
再转入旅客信息输入的界面中。
If (CErrorType==T)
输出“您的帐单信息可能输错了位置。请重试。”
If (CErrorRank==T)
输出“您的帐单信息不适应规定范围。请重试。”
再转入帐单和取票通知信息的输入界面。
· DBOperaCheck过程:
检验网络传输过来的数据。若是出错信息,转入OErrorHandle过程。否则转
入JudgeOrderOrCheck过程。
· CheckNoticeOutput过程:
将帐单和取票通知输出到界面1中。注意格式。
Long int cncode =帐单号;
String name= 姓名 ;
String sex= 性别;
String company= 工作单位;
Long int idcode= 身份证号码;
Date stime= 旅行时间;
( syear/smonth/stime=年/月/日)
String denist= 目的地
Bool ocflag= 定票/取票
· TicketOutput过程:
将机票输出到界面2。注意格式。
Long int planecode=航班号;
Date/time stime=起飞时间;
String name=姓名;
Long int idcode=身份证号码;
Int seatcode = 座位号;
Money price= 票价;
4 . 2 . 3 步骤及操作
在测试过程中,首先需要对各子单元过程进行测试。各子单元过程的测试必须先在程序设计员调试并编译通过后才能进行。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。
其操作过程如下:
1. 在客户机接受信息模块过程中,先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的
图对其进行跟踪测试。
2. 同样,在客户机输出信息模块.网络接受和发送模块结构和服务器模块(包括数据库)过程中先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的流程图对其进行跟踪测试。,
3.然后,根据各模块之间的各种关系,对其接口进行测试。
4.在系统测试中,要注意对各种意外情况(列如断电.硬盘损坏等)加以
处理,对数据库要注意其安全性.可靠性.健壮性.效率。网络传输更
要注意其安全性。
4 . 2 . 4 允许偏差
4 . 3 进度
由于其测试过程较长,需要对各子单元程序.各模块及它们之间的接口分
别进行测试进度.一般测试过程都伴随其概要设计.详细设计过程一起进行,
进度在18个月左右。
4 . 4 条件
必须在保证各硬件设备.软件系统齐备的情况下,资金充足,人员齐备,
各方面互相配合,齐心协力,共同完成。
4 . 5 测试资料
测试资料主要是《》软件开发小组的各类文档及浙江航空公司公司提供的各类资料档案。
5 .评介
5 . 1 准则
首先,我们要认识到测试是软件开发过程中一个非常重要的环节,一各好的软件必须经过无数次的测试。软件测试是保证软件质量的关键步骤。所以在测试过程中必须抱着不骄不躁.谦虚谨慎的态度,把好关!