1、青岛大学青岛大学 软件技术学院软件技术学院3系统实施阶段的任务,系统实施阶段的任务,程序编码风格与质量要求程序编码风格与质量要求系统测试,系统测试,系统测试的步骤与工作内容,系统测试的步骤与工作内容,测测试方法与用例设计试方法与用例设计系统转换方式、系统评价的工作内容与方法系统转换方式、系统评价的工作内容与方法项目管理的基本内容项目管理的基本内容,费用管理与人员管理,费用管理与人员管理,系统进度控制的基本方法系统进度控制的基本方法运行管理的主要活动,运行管理的主要活动,系统维护的内容和类型系统维护的内容和类型系统使用说明书的基本内容与编写要求系统使用说明书的基本内容与编写要求青岛大学青岛大学
2、软件技术学院软件技术学院9是新系统付诸实现的阶段。在这一阶段,将根据系统是新系统付诸实现的阶段。在这一阶段,将根据系统分析、设计阶段取得的成果,逐步把纸面上的系统方案转化为分析、设计阶段取得的成果,逐步把纸面上的系统方案转化为可以在计算机上执行的应用系统。可以在计算机上执行的应用系统。这一阶段的主要任务是完成这一阶段的主要任务是完成这个阶段有些工作必须严格按照先后次序顺序完成,有些工这个阶段有些工作必须严格按照先后次序顺序完成,有些工作可以同时进行作可以同时进行比如硬件购买、程序设计和人员培训等工比如硬件购买、程序设计和人员培训等工作,就可以同时开展。作,就可以同时开展。青岛大学青岛大学 软件
3、技术学院软件技术学院10:使用所选定的程序设计语言,把系统设计所得到的结果使用所选定的程序设计语言,把系统设计所得到的结果转换成能在计算机系统上运行的程序代码。转换成能在计算机系统上运行的程序代码。程序设计是严格按照系统设计阶段得到的系统设计说明书进程序设计是严格按照系统设计阶段得到的系统设计说明书进行的。系统设计是程序设计的前提和基础,程序设计是前期各行的。系统设计是程序设计的前提和基础,程序设计是前期各阶段的工作结晶,它不仅是编程人员的工作成果,也凝结了整阶段的工作结晶,它不仅是编程人员的工作成果,也凝结了整个开发周期各阶段开发人员的心血。个开发周期各阶段开发人员的心血。有关程序设计方法、
4、要求等内容通常在程序设计语言课程中有关程序设计方法、要求等内容通常在程序设计语言课程中介绍。这里,我们主要从管理信息系统开发和应用的角度,简介绍。这里,我们主要从管理信息系统开发和应用的角度,简单介绍一下程序设计语言的选择和管理信息系统对程序设计的单介绍一下程序设计语言的选择和管理信息系统对程序设计的要求。要求。青岛大学青岛大学 软件技术学院软件技术学院11 第一代:机器语言第一代:机器语言 第二代:汇编语言第二代:汇编语言 第三代:过程化的高级语言第三代:过程化的高级语言 第四代:非过程化高级语言第四代:非过程化高级语言(4GL)青岛大学青岛大学 软件技术学院软件技术学院12MIS开发普遍使
5、用开发普遍使用DBASE、FOXBASE、FOXPRO等小等小型数据库语言型数据库语言(数据库管理系统数据库管理系统)。网络化、信息化的时代特征和客户网络化、信息化的时代特征和客户/服务器服务器(C/S)模式、模式、浏览浏览/服器服器(B/S)模式的普及应用模式的普及应用各类可视化开发语言、环境和大型数据库管理系统各类可视化开发语言、环境和大型数据库管理系统青岛大学青岛大学 软件技术学院软件技术学院136.1.2 程序设计语言的选择程序设计语言的选择(1)(1)用户的要求:方便用户负责维护用户的要求:方便用户负责维护(2)(2)语言的人机交互功能语言的人机交互功能(3)(3)软件工具:方便系统
6、的实现、调试、维护及二次开发软件工具:方便系统的实现、调试、维护及二次开发(4)(4)开发人员的知识:掌握并用到好处需要一定的时间和实践开发人员的知识:掌握并用到好处需要一定的时间和实践(5)(5)软件的可移植性:系统应用的发展变化。软件的可移植性:系统应用的发展变化。青岛大学青岛大学 软件技术学院软件技术学院14常用的开发工具常用的开发工具6.1.2 程序设计语言的选择程序设计语言的选择青岛大学青岛大学 软件技术学院软件技术学院15常用的开发工具常用的开发工具6.1.2 程序设计语言的选择程序设计语言的选择青岛大学青岛大学 软件技术学院软件技术学院16青岛大学青岛大学 软件技术学院软件技术学
7、院17青岛大学青岛大学 软件技术学院软件技术学院186.1.5 系统操作手册系统操作手册又称系统使用说明书,是向用户介绍系统使用方法的文档,是用户必又称系统使用说明书,是向用户介绍系统使用方法的文档,是用户必读的资料。读的资料。系统使用说明书的内容一般包括以下几个方面系统使用说明书的内容一般包括以下几个方面:(1)系统简介系统简介系统的运行环境系统的运行环境应用系统介绍应用系统介绍(2)系统运行操作说明系统运行操作说明 系统进入与退出的方法系统进入与退出的方法系统功能调度与各功能模块的运行操作说明系统功能调度与各功能模块的运行操作说明(这部分的内容最多这部分的内容最多)有关操作系统规程的说明有
8、关操作系统规程的说明(3)输入数据的收集和预处理说明输入数据的收集和预处理说明(4)输出报表的解释与使用说明输出报表的解释与使用说明(5)系统管理和维护的事项系统管理和维护的事项 系统管理事项系统管理事项系统的维护事项系统的维护事项青岛大学青岛大学 软件技术学院软件技术学院19尽管在信息系统开发的各个阶段都实施了质量管理和严格的尽管在信息系统开发的各个阶段都实施了质量管理和严格的审查,但是不可能解决所有问题,或多或少总会遗留一些错误审查,但是不可能解决所有问题,或多或少总会遗留一些错误和缺陷。这些错误和缺陷往往会给信息系统的运行带来隐患,和缺陷。这些错误和缺陷往往会给信息系统的运行带来隐患,造
9、成难以想象的严重后果。为了保证新系统将来投入运行使用造成难以想象的严重后果。为了保证新系统将来投入运行使用后能正常工作,少出问题、尽量不出问题,必须进行系统测试,后能正常工作,少出问题、尽量不出问题,必须进行系统测试,尽可能地找出系统中存在的错误和缺陷,并把它们消灭在投入尽可能地找出系统中存在的错误和缺陷,并把它们消灭在投入运行之前。运行之前。管理信息系统的开发,主要是系统的应用软件的开发。目前,管理信息系统的开发,主要是系统的应用软件的开发。目前,软件的正确性证明在技术上没有得到根本的解决,测试仍然是软件的正确性证明在技术上没有得到根本的解决,测试仍然是发现软件中错误和缺陷的主要手段。大量的
10、实践证明,系统测发现软件中错误和缺陷的主要手段。大量的实践证明,系统测试是一项艰苦的工作,据统计,系统测试的工作量往往占系统试是一项艰苦的工作,据统计,系统测试的工作量往往占系统开发总工作量的开发总工作量的40%以上。以上。青岛大学青岛大学 软件技术学院软件技术学院20系统测试是对系统进行纠错和查错的活动。在系统测试过程系统测试是对系统进行纠错和查错的活动。在系统测试过程中,测试人员要设计出一系列测试方案,竭力发现和证明系统中,测试人员要设计出一系列测试方案,竭力发现和证明系统中错误的存在,以便改进系统的设计或解决系统中存在的错误中错误的存在,以便改进系统的设计或解决系统中存在的错误和缺陷。和
11、缺陷。国外著名专家国外著名专家Myers对测试的认识非常精辟,对测试的认识非常精辟,Myers对测试对测试的性质、好的测试方案和成功测试的标准的说法,实际上已成的性质、好的测试方案和成功测试的标准的说法,实际上已成为为IT界的共识:界的共识:。可见,系统测试是以找错误为目的的,系统测试的可见,系统测试是以找错误为目的的,系统测试的是尽可能多地发现并排除系统中存在的问题,最终把一个高质是尽可能多地发现并排除系统中存在的问题,最终把一个高质量的信息系统交给用户使用。量的信息系统交给用户使用。青岛大学青岛大学 软件技术学院软件技术学院216.2.1 对系统测试的认识对系统测试的认识系统中存在的问题有
12、多种多样,就其性质和范围来说可分为系统中存在的问题有多种多样,就其性质和范围来说可分为以下几种情况:以下几种情况:(1)由于系统功能说明书不完整或叙述不准确,导由于系统功能说明书不完整或叙述不准确,导致在系统设计时产生误解或不一致。致在系统设计时产生误解或不一致。(2)设计阶段产生、与需求规格说明中的功能说明设计阶段产生、与需求规格说明中的功能说明不相符不相符(3)过程控制与操作的设计与实现错误过程控制与操作的设计与实现错误(4)数据的结构、内容、属性、状态以及数据的参数据的结构、内容、属性、状态以及数据的参数与控制等方面的错误数与控制等方面的错误(5)语法错误、变量名错误、变量属性与作用域等
13、语法错误、变量名错误、变量属性与作用域等青岛大学青岛大学 软件技术学院软件技术学院22 测试的过程分为四个步骤:测试的过程分为四个步骤:单元测试、组装测试、确认测试和系统测试单元测试、组装测试、确认测试和系统测试(1)单元测试:单元测试:用设计的测试用例,测试模块是否正确实现了功能用设计的测试用例,测试模块是否正确实现了功能(2)集成测试:集成测试:把通过单元测试的模块组装在一起,看能不能正常实现功能把通过单元测试的模块组装在一起,看能不能正常实现功能(3)确认测试:确认测试:检查已经组装完的软件能否实现需求说明规定功能以及软件配检查已经组装完的软件能否实现需求说明规定功能以及软件配置是否完整
14、、正确置是否完整、正确(4)系统测试:系统测试:把经过确认的软件纳入实际的运行环境把经过确认的软件纳入实际的运行环境,与应用环境组合在一起与应用环境组合在一起进行测试进行测试,以检查软件能否正确、稳定地运行以检查软件能否正确、稳定地运行集成集成测试测试设计设计信息信息已测试已测试的模块的模块确认确认测试测试已集成已集成的模块的模块软件软件需求需求系统系统测试测试已确认已确认的软件的软件可交付可交付的软件的软件系统其系统其他元素他元素单元单元测试测试单元单元测试测试单元单元测试测试被测被测模块模块被测被测模块模块被测被测模块模块青岛大学青岛大学 软件技术学院软件技术学院236.2.2 测试的步骤
15、测试的步骤系统测试通常按系统测试通常按四个步骤顺序进行,后续的测试是在前面测试的基础上实施的。四个步骤顺序进行,后续的测试是在前面测试的基础上实施的。系统测试完成后,应提交系统测试完成后,应提交,并编辑完成操作手册、,并编辑完成操作手册、打印源程序清单等文档资料。打印源程序清单等文档资料。整个测试过程并非只是测试源程序,而是通过测试发现整个测试过程并非只是测试源程序,而是通过测试发现系统开发过程的各个阶段所存在的问题。因为系统开发的各个系统开发过程的各个阶段所存在的问题。因为系统开发的各个阶段是相互衔接的,前一阶段存在的问题如果未得到解决,必阶段是相互衔接的,前一阶段存在的问题如果未得到解决,
16、必然会带到下一阶段,并一直存留下来。因此,系统测试就是要然会带到下一阶段,并一直存留下来。因此,系统测试就是要尽量找出并解决系统中各个阶段遗留的各种类型的问题。尽量找出并解决系统中各个阶段遗留的各种类型的问题。青岛大学青岛大学 软件技术学院软件技术学院24软件测试与软件开发的对应关系软件测试与软件开发的对应关系 从整体到局部从整体到局部总体设计总体设计组装测试组装测试确认测试确认测试系统测试系统测试需求分析需求分析系统目标系统目标从局部到整体从局部到整体单元测试单元测试详细设计详细设计软件测试与软件开发的对应关系软件测试与软件开发的对应关系 编程与调试编程与调试软件开发阶段软件开发阶段软件测试
17、阶段软件测试阶段问题被测试出来越晚,往往越严重,造成的损失越大、改正越困难问题被测试出来越晚,往往越严重,造成的损失越大、改正越困难 6.2.2 测试的步骤测试的步骤青岛大学青岛大学 软件技术学院软件技术学院25青岛大学青岛大学 软件技术学院软件技术学院266.2.3 测试方法测试方法黑盒测试黑盒测试:是把被测程序看作是把被测程序看作黑盒子黑盒子,在完全不考虑程序的内部,在完全不考虑程序的内部结构和特性的情况下,测试程序的外部特性。结构和特性的情况下,测试程序的外部特性。由于是根据需求规格说明书设计测试用例,从程序的输入和由于是根据需求规格说明书设计测试用例,从程序的输入和输出特性上测试其是否
18、满足设定的功能,所以又称输出特性上测试其是否满足设定的功能,所以又称功能测试功能测试。白盒测试白盒测试:是把被测程序看作是一个透明的盒子,按照程序的内是把被测程序看作是一个透明的盒子,按照程序的内部结构和处理逻辑来设计测试用例,对程序的逻辑路径及过程部结构和处理逻辑来设计测试用例,对程序的逻辑路径及过程进行测试,检查程序是否与设计相符。进行测试,检查程序是否与设计相符。由于被测对象的结构对测试者是透明的,这种测试也被称为由于被测对象的结构对测试者是透明的,这种测试也被称为玻璃盒测试玻璃盒测试(glass-box testing)或或结构测试结构测试(structural testing)。青岛
19、大学青岛大学 软件技术学院软件技术学院276.2.3 测试方法测试方法u通常要先进行人工测试,然后再进行机器测试。通常要先进行人工测试,然后再进行机器测试。u人工测试与机器测试这两种方式各有所长人工测试与机器测试这两种方式各有所长w机器测试速度快,但只能发现症状不能进行问题定位机器测试速度快,但只能发现症状不能进行问题定位w人工测试在发现错误的同时可以确定错误的位置、类型和性人工测试在发现错误的同时可以确定错误的位置、类型和性质,但太耗费人力、时间质,但太耗费人力、时间u测试方法的具体运用测试方法的具体运用w单元测试以白盒测试为主单元测试以白盒测试为主w集成测试、确认测试和系统测试均以黑盒测试
20、为主。集成测试、确认测试和系统测试均以黑盒测试为主。青岛大学青岛大学 软件技术学院软件技术学院28是以发现错误为目的而精心设计的一组数据。这组数据不仅是以发现错误为目的而精心设计的一组数据。这组数据不仅有被测程序的输入数据,而且还有程序执行这些输入数据后的预期运行有被测程序的输入数据,而且还有程序执行这些输入数据后的预期运行结果结果测试时,把实测的结果与预期结果进行比较,如果不一致,就表明测试时,把实测的结果与预期结果进行比较,如果不一致,就表明程序存在问题。测试一个程序需要若干组这样的测试用例。程序存在问题。测试一个程序需要若干组这样的测试用例。323264PXYZ共需共需 5 5 亿年亿年
21、!青岛大学青岛大学 软件技术学院软件技术学院29语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖条条件件组组合合覆覆盖盖弱弱强强白盒测试是在程序结构上进行的测试,所以也称为白盒测试是在程序结构上进行的测试,所以也称为。路径覆盖路径覆盖:6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院30a1&b=0b=40a=2|x1x=x+10YNYNStartEnd6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院31选择足够多的测试用例,使被测程序中每个语句至少能执行一次。满足语句覆盖的情况:?满足语句覆盖的情况:?覆盖对象:覆盖对象:A
22、 C,B D测试用例:?测试用例:?(2,0,4),(2,40,14)或或(2,0,2),(2,40,12)用例格式:用例格式:输入输入(a,b,x),输出,输出(a,b,x)a1&b=0b=40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院32选择足够多的测试用例,使被测程序中每个语句至少能执行一次。a1&b=0b=40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B实际上实际上x x可以是任意值可以是任意值满足语句覆盖的情况:?满足语句覆盖的情况:
23、?覆盖对象:覆盖对象:A C,B D测试用例:?测试用例:?(2,0,4),(2,40,14)或或(2,0,2),(2,40,12)用例格式:用例格式:输入输入(a,b,x),输出,输出(a,b,x)6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院33覆盖要求:覆盖要求:?1、A,A C2、B,BD 各被执行一次各被执行一次F T F T测试用例:测试用例:?(2,0,4),(2,40,14)1T 2TAC、BD(1,1,1),(1,1,1)1F 2FA、B (2,1,1),(2,1,11)1F 2T (3,0,1),(3,40,1)1T 2Fa1&b=0b=
24、40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B选择足够多的测试用例,使被测程序中每个判定至少取TRUE 或FALSE各一次当当A中中&错写成错写成|或或 B中中|错写成错写成&6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院34应满足以下覆盖情况:应满足以下覆盖情况:选择用例:选择用例:第一组:第一组:(2,0,4),(2,40,14)a1(T)b=0(T),a=2(T)x1(T)第二组:第二组:(1,1,1),(1,1,1)a1(F)b0(F),a2(F)x1(F)a1b=0a1b0a2x1a=2x1往往测试用例满足了条件
25、覆盖,但不满足判断覆盖。往往测试用例满足了条件覆盖,但不满足判断覆盖。例如:例如:(1,0,3),(1,0,4),(2,1,1),(2,1,2)选择足够多的测试用例,使判定中的每个关系式取得各种可能的结果。a1&b=0b=40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院35满足以下覆盖情况:满足以下覆盖情况:?a1,b=0 a1,b0 a1,b=0 a1,b0 a=2,x1 a=2,x1 a2,x1 a2,x1选择用例:选择用例:?(2,0,4),(2,40,14)(2,1,1)
26、,(2,1,11)(1,0,3),(1,0,13)(1,1,1),(1,1,1)a1&b=0b=40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B使判定中的每个关系式的各种可能的组合至少出现各一次。6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院36满足以下覆盖情况:满足以下覆盖情况:?a1,b=0 a1,b0 a1,b=0 a1,b0 a=2,x1 a=2,x1 a2,x1 a2,x1选择用例:选择用例:?(2,0,4),(2,40,14)(2,1,1),(2,1,11)(1,0,3),(1,0,13)(1,1,1),(1,1
27、,1)使程序的每条可能的路径都至少执行一次(如果程序图中有环路,则要求每个环路至少经过一次)。a1&b=0b=40a=2|x1x=x+10YNYNStartEndA AC CD DE EB B6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院37设计下列四组测试数据,进行路径覆盖:设计下列四组测试数据,进行路径覆盖:a=1,b=1,x=1(执行路径执行路径s-ABE)a=1,b=1,x=2(执行路径执行路径s-ABDE)a=3,b=0,x=1(执行路径执行路径s-ACBE)a=2,b=0,x=4(执行路径执行路径s-ACBDE)使程序的每条可能的路径都至少执行一
28、次(如果程序图中有环路,则要求每个环路至少经过一次)。A AC CE EB BD DStartStartA AB BE EA AB BE EC CA AB BE ED D6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院38把程把程 序序 看成一个不透明的看成一个不透明的“黑盒子黑盒子”,测试时完全不考虑,测试时完全不考虑程程 序序 的内部结构和处理过程,只按照规格说明书所规定的功能的内部结构和处理过程,只按照规格说明书所规定的功能来设计测试用例,也就是检查程来设计测试用例,也就是检查程 序序 是否符合它的功能要求。是否符合它的功能要求。简单说,就是看是否能:简
29、单说,就是看是否能:6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院39每个等价类典型值的测试作用,可代表这一类的所有数据每个等价类典型值的测试作用,可代表这一类的所有数据6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院40 应按照输入条件应按照输入条件(如输入值的范围、值的个数、值的集合、输入条件如输入值的范围、值的个数、值的集合、输入条件)划分为有效等价类和无效等价类。划分为有效等价类和无效等价类。可以划分一个有效等价类:选修可以划分一个有效等价类:选修1-3门课程。门课程。可以划分两个无效等价类:未选择选修课,选修课超过
30、可以划分两个无效等价类:未选择选修课,选修课超过3门。门。可以划分为一个有效等价类:第一个字符是字母可以划分为一个有效等价类:第一个字符是字母(或两个有效等价类:第一个字母是大写字母或两个有效等价类:第一个字母是大写字母/小写字母小写字母)。可以划分一个无效等价类:第一个字符不是字母。可以划分一个无效等价类:第一个字符不是字母。显然,关键是显然,关键是如何划分等价如何划分等价类类nA、为每个等价类编号;、为每个等价类编号;nB、使一个测试用例尽可能覆盖多个有效等价类;、使一个测试用例尽可能覆盖多个有效等价类;nC、特别要注意的是:一个测试用例只能覆盖一个无效等价类;、特别要注意的是:一个测试用
31、例只能覆盖一个无效等价类;每一个无效等价类都需要测试用例。每一个无效等价类都需要测试用例。6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院41例:例:对某工厂对某工厂2001年至年至2004年的产品进行月销售量统计时,需要给出年的产品进行月销售量统计时,需要给出明确的明确的“报表时间报表时间”信息。请对信息。请对“报表时间报表时间”进行等价类划分,进行等价类划分,设计测试用例。设计测试用例。解:解:第一步:等价类划分第一步:等价类划分6.2.4 测试用例的设计测试用例的设计输入等价类输入等价类有效等价类有效等价类等价类等价类编号编号无效等价类无效等价类等价类等
32、价类编号编号报表时间的报表时间的类型及长度类型及长度6位数字字符位数字字符(1)有非数字字符有非数字字符 少于少于6个数字字符个数字字符 多于多于6个数字字符个数字字符(4)(5)(6)年份范围年份范围在在20012004之间之间(2)小于小于2001 大于大于2004(7)(8)月份范围月份范围在在112之间之间(3)小于小于1大于大于12(9)(10)青岛大学青岛大学 软件技术学院软件技术学院42第二步:第二步:为有效等价类设计测试用例。为有效等价类设计测试用例。对表中对表中(1)、(2)、(3)的的3个有效等价类,用一个测试用例覆盖。个有效等价类,用一个测试用例覆盖。第三步:第三步:为每
33、一个无效等价类设计至少一个测试用例。为每一个无效等价类设计至少一个测试用例。6.2.4 测试用例的设计测试用例的设计覆盖范围覆盖范围测试数据测试数据期望结果期望结果等价类等价类(1)(2)(3)200105输入有效,程序正常运行输入有效,程序正常运行等价类等价类(4)01July输入无效,显示提示信息输入无效,显示提示信息等价类等价类(5)20038输入无效,显示提示信息输入无效,显示提示信息等价类等价类(4)2003-8输入无效,显示提示信息输入无效,显示提示信息等价类等价类(4)2003 8输入无效输入无效(输入有空格输入有空格)等价类等价类(6)20040802输入无效,显示提示信息输入
34、无效,显示提示信息等价类等价类(7)199908输入无效,显示提示信息输入无效,显示提示信息等价类等价类(8)200504输入无效,显示提示信息输入无效,显示提示信息等价类等价类(9)200100输入无效,显示提示信息输入无效,显示提示信息等价类等价类(10)200415输入无效,显示提示信息输入无效,显示提示信息青岛大学青岛大学 软件技术学院软件技术学院43有一个把数字串转变成整数的函数。运行程序的计算机字长为有一个把数字串转变成整数的函数。运行程序的计算机字长为16位,用二进制补码表示。这个函数是用位,用二进制补码表示。这个函数是用 C 语言编写的,说明如下:语言编写的,说明如下:int
35、strtoint(char shortstr)函数的参数是函数的参数是 shortstr,它的说明是它的说明是 char shortstr6,被处理的数字串是右对齐的,也就是说,如果数字串比六个字被处理的数字串是右对齐的,也就是说,如果数字串比六个字符短,则在它的左边补空格;如果数字串是负的,则负号和最高位符短,则在它的左边补空格;如果数字串是负的,则负号和最高位数字紧相邻数字紧相邻(负号在最高位数字左边一位负号在最高位数字左边一位)。(1)设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步骤直到所有有效等价类都被
36、覆盖为止;重复这一步骤直到所有有效等价类都被覆盖为止;(2)设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院44经验表明,处理边界情况时程序最容易发生错误,针对边缘经验表明,处理边界情况时程序最容易发生错误,针对边缘取值设计测试用例,可以提高发现错误的概率。取值设计测试用例,可以提高发现错误的概率。A.若输入条件规定了取值范围,若输入条
37、件规定了取值范围,则应选择恰好在边界上以及处在边则应选择恰好在边界上以及处在边界内外边缘的测试值界内外边缘的测试值B.若规定了输入数据的个数,若规定了输入数据的个数,可选择最小个数、最大个数,比最小可选择最小个数、最大个数,比最小个数多个数多1、少、少1,比最大个数多,比最大个数多1、少、少1等几种情况等几种情况C.若输入数据为有序集合结构,若输入数据为有序集合结构,如顺序文件、线性表等,则应特别如顺序文件、线性表等,则应特别注意选取有序集合中的第一个和最后一个元素以及空集合注意选取有序集合中的第一个和最后一个元素以及空集合6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院
38、软件技术学院45A、按照输入值范围的边界、按照输入值范围的边界 例如:输入值的范围是例如:输入值的范围是-1.0至至1.0,则可选择则可选择用例用例 1.0、1.0、-1.001、1.001。B、按照输入、按照输入/输出值个数的边界输出值个数的边界 例如:输入文件可有例如:输入文件可有1-255个记录,个记录,则则 设计用例:文件的记录数为设计用例:文件的记录数为 0个、个、1个、个、255个、个、256个。个。C、输出值域的边界、输出值域的边界 例如:检索文献摘要,最多例如:检索文献摘要,最多4篇。篇。设计用例:可检索设计用例:可检索0篇、篇、1篇、篇、4篇,和篇,和5篇篇(错误错误)。D、
39、输入、输入/输出有序集输出有序集(如顺序文件、线性表如顺序文件、线性表)的边界的边界 应选择第一个元素和最后一个元素。应选择第一个元素和最后一个元素。6.2.4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院46n错误推测法在很大的程度上靠直觉和经验进行,它的基本想法是列举错误推测法在很大的程度上靠直觉和经验进行,它的基本想法是列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。择测试方案。n对于程序中容易出错的情况也有一些经验总结出来,例如:对于程序中容易出错的情况也有一些经验总结出来
40、,例如:输入数据为零或输出数据为零往往容易发生错误;输入数据为零或输出数据为零往往容易发生错误;如果输入或输出的数目允许变化如果输入或输出的数目允许变化(例如被检索的或生成的表的例如被检索的或生成的表的项数项数),则输入或输出的数目为,则输入或输出的数目为0 0和和1 1的情况的情况(例如表为空或只有例如表为空或只有一项一项)是容易出错的情况。是容易出错的情况。对文件操作对文件操作(插入、删除等插入、删除等)采取计数的方式控制。采取计数的方式控制。可以利用判定表或判定树来帮助解决;可以利用判定表或判定树来帮助解决;把计算机测试和人工检查代码结合起来。把计算机测试和人工检查代码结合起来。6.2.
41、4 测试用例的设计测试用例的设计青岛大学青岛大学 软件技术学院软件技术学院47要使测试取得较好的效果,对于系统测试应当注意以下几个方面:要使测试取得较好的效果,对于系统测试应当注意以下几个方面:尽早的和不断的测试,应当作为开发人员的座右铭尽早的和不断的测试,应当作为开发人员的座右铭测试用例应当由测试输入数据和与之对应的预期结果两部分组成测试用例应当由测试输入数据和与之对应的预期结果两部分组成程序提交测试后由专门的测试人员进行测试,避免由程序员测试程序提交测试后由专门的测试人员进行测试,避免由程序员测试自己的程序自己的程序测试用例应当包括合理的输入数据和不合理的输入数据测试用例应当包括合理的输入
42、数据和不合理的输入数据严格执行测试计划,排除测试的随意性严格执行测试计划,排除测试的随意性充分注意测试中错误的群集现象充分注意测试中错误的群集现象要对每个测试结果做全面检查要对每个测试结果做全面检查妥善保存测试计划、测试用例、出错统计和最终分析报告,为维妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便护提供方便不能把测试看作只是系统开发的一个独立阶段,应当把它贯穿到系统开不能把测试看作只是系统开发的一个独立阶段,应当把它贯穿到系统开发的各个阶段,坚持系统开发的各个阶段的技术评审。这样才能在开发过程发的各个阶段,坚持系统开发的各个阶段的技术评审。这样才能在开发过程中尽早发现和预
43、防错误,把出现的错误克服在早期,杜绝诱发错误的隐患。中尽早发现和预防错误,把出现的错误克服在早期,杜绝诱发错误的隐患。青岛大学青岛大学 软件技术学院软件技术学院48测试报告是系统测试阶段指明测试执行结果的文档。测试报告是系统测试阶段指明测试执行结果的文档。系统测试报告的主要内容有:系统测试报告的主要内容有:(1)引言引言编写目的编写目的背景背景定义定义参考资料参考资料(2)测试概要测试概要(3)测试结果及发现测试结果及发现(4)对系统功能的结论对系统功能的结论(5)分析摘要分析摘要能力能力缺陷和限制缺陷和限制建议建议评价评价(6)测试资源消耗:测试资源消耗:总结测试工作的资源消耗数据,如工作人
44、员的水总结测试工作的资源消耗数据,如工作人员的水平级别数量、机时消耗等平级别数量、机时消耗等青岛大学青岛大学 软件技术学院软件技术学院496.3 系统实施系统实施6.3.1 系统环境的实施系统环境的实施 系统环境是系统得以实现的基础。系统环境的实施就是按照系统设系统环境是系统得以实现的基础。系统环境的实施就是按照系统设计阶段的配置方案进行设备购置、连接、软件安装及系统环境调试。计阶段的配置方案进行设备购置、连接、软件安装及系统环境调试。1.设备的购置设备的购置 根据计划的机器型号和配置清单进行,可自行或委托专业设备公司购置。根据计划的机器型号和配置清单进行,可自行或委托专业设备公司购置。2.设
45、备的安装与连接设备的安装与连接整机设备通常只需要经过简单的安装就可以互相连接。设备的分布位置整机设备通常只需要经过简单的安装就可以互相连接。设备的分布位置和连接方式由系统设计的方案决定。和连接方式由系统设计的方案决定。3.软件的安装软件的安装如操作系统、数据库管理系统以及各种辅助的工具软件等。安装时应注如操作系统、数据库管理系统以及各种辅助的工具软件等。安装时应注意软件与硬件及不同软件间的兼容关系。意软件与硬件及不同软件间的兼容关系。4.系统环境的调试系统环境的调试硬件与软件都安装完成后,由专业技术人员对系统的整个硬软件环境进硬件与软件都安装完成后,由专业技术人员对系统的整个硬软件环境进行调试
46、。对系统的环境进行最后的检验行调试。对系统的环境进行最后的检验;检查系统的性能指标。检查系统的性能指标。青岛大学青岛大学 软件技术学院软件技术学院506.3.2 人员培训人员培训(1)信息与信息系统常识信息与信息系统常识:信息的含义、性质与作用信息的含义、性质与作用;系统的概念、系统的概念、性质与特点性质与特点;信息系统的含义、意义以及信息的处理方式等。信息系统的含义、意义以及信息的处理方式等。(2)计算机基础知识和新系统的操作方法。计算机基础知识和新系统的操作方法。(3)企业现代管理方法与信息系统功能的结合。企业现代管理方法与信息系统功能的结合。(4)与信息系统有关的规章制度。与信息系统有关
47、的规章制度。w使业务人员能够利用新系统完成日常工作使业务人员能够利用新系统完成日常工作;w管理人员能利用新系统进行管理、控制,并能了解工作情况管理人员能利用新系统进行管理、控制,并能了解工作情况;w单位领导能够使用新系统掌握单位状况、帮助决策。单位领导能够使用新系统掌握单位状况、帮助决策。这项工作应该根据信息系统的开发计划和用户单位情况来制定具这项工作应该根据信息系统的开发计划和用户单位情况来制定具体的内容和日程安排。体的内容和日程安排。青岛大学青岛大学 软件技术学院软件技术学院51在制定计划时要注意以下几点在制定计划时要注意以下几点:。要对计算机技术人员、系统要对计算机技术人员、系统维护人员
48、、企业的管理人员、操作人员、业务人员等进行培训,尤其是领导维护人员、企业的管理人员、操作人员、业务人员等进行培训,尤其是领导层。领导层的观念转变能发挥更大的效能,起着决定性的作用。层。领导层的观念转变能发挥更大的效能,起着决定性的作用。要保证培训工作相对于人员的工作安排要保证培训工作相对于人员的工作安排具有超前性,使人员在上岗前得到应有的培训。具有超前性,使人员在上岗前得到应有的培训。用户有计算机技术人员、管理人员和具用户有计算机技术人员、管理人员和具体业务人员等不同类型,对各种人员的要求也不同。培训应分层次进行,要体业务人员等不同类型,对各种人员的要求也不同。培训应分层次进行,要使不同人员得
49、到相应的培训。使不同人员得到相应的培训。比如通过正规教育或短期培训。比如通过正规教育或短期培训。培训也可以分为脱产集中培训和在职业余培训。培训也可以分为脱产集中培训和在职业余培训。做好用户培训工作,提高用户的信息素质和使用新系统的能力,可做好用户培训工作,提高用户的信息素质和使用新系统的能力,可以大大减少新系统使用时、特别是初始阶段可能出现的基础性问题,以大大减少新系统使用时、特别是初始阶段可能出现的基础性问题,实现系统的平稳过渡,更快更好地发挥新系统的效能。实现系统的平稳过渡,更快更好地发挥新系统的效能。青岛大学青岛大学 软件技术学院软件技术学院526.3.3 系统的转换系统的转换当调试成功
50、并经过严格测试以后,当调试成功并经过严格测试以后,还不能直接投入使用,还不能直接投入使用,要完成要完成用户原来的系统向新系统的数据转换、系统运行环境转换、资料建档用户原来的系统向新系统的数据转换、系统运行环境转换、资料建档与移交等工作。这些工作称为与移交等工作。这些工作称为,其任务就是保,其任务就是保证新老系统能平稳、可靠地交接,最后,新系统正式投入使用。证新老系统能平稳、可靠地交接,最后,新系统正式投入使用。的方式有以下三种:的方式有以下三种:青岛大学青岛大学 软件技术学院软件技术学院53 直接切换直接切换用新系统直接替换旧系统,在某一确定用新系统直接替换旧系统,在某一确定时刻,老系统停止运