系统开发报告应该怎么写?

比如说,我公司接到客户请求开发一套软件系统,要求我公司写份报告,应该怎么样写?格式

1.1编写目的
<br>  说明这份测试分析报告的具体编写目的,指出预期的阅读范围。
<br>  
<br>  1.2背景
<br>  说明:
<br>  
<br>  a.被测试软件系统的名称;
<br>  
<br>  b.该软件的任务提出者、开发者、用户及安装此软件的计算中心,指出测试环境与实际运行环境 之间可能存在的差异以及这些差异对测试结果的影响。
<br>  
<br>  1.3定义
<br>  列出本文件中用到的专问术语的定义和外文首字母组词的原词组。
<br>  
<br>  1.4参考资料
<br>  列出要用到的参考资料,如:
<br>  
<br>  a.本项目的经核准的计划任务书或合同、上级机关的批文;
<br>  
<br>  b.属于本项目的其他已发表的文件;
<br>  
<br>  c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
<br>  
<br>  2测试概要
<br>  用表格的形式列出每一项测试的标识符及其测试内容,并指明实际进行的测试工作内容与测试计划中预先设计的内容之间的差别,说明作出这种改变的原因。
<br>  
<br>  3测试结果及发现
<br>  3.1测试1(标识符)
<br>  把本项测试中实际得到的动态输出(包括内部生成数据输出)结果同对于动态输出的要求进行比较,陈述其中的各项发现。
<br>  
<br>  3.2测试2(标识符)
<br>  用类似本报告3.1条的方式给出第 2项及其后各项测试内容的测试结果和发现。
<br>  
<br>  4对软件功能的结论
<br>  4.1功能1(标识符)
<br>  4.1.1能力
<br>  简述该项功能,说明为满足此项功能而设计的软件能力以及经过一项或多项测试已证实的能力。
<br>  
<br>  4.1.2限制
<br>  说明测试数据值的范围(包括动态数据和静态数据),列出就这项功能而言,测试期间在该软件中查出的缺陷、局限性。
<br>  
<br>  4.2功能2(标识符)
<br>  用类似本报告4.l的方式给出第2项及其后各项功能的测试结论。
<br>  
<br>  ......
<br>  
<br>  5分析摘要
<br>  5.1能力
<br>  陈述经测试证实了的本软件的能力。如果所进行的测试是为了验证一项或几项特定性能要求的实现,应提供这方面的测试结果与要求之间的比较,并确定测试环境与实际运行环境之间可能存在的差异 对能力的测试所带来的影响。
<br>  
<br>  5.2缺陷和限制
<br>  陈述经测试证实的软件缺陷和限制,说明每项缺陷和限制对软件性能的影响,并说明全部测得的性能缺陷的累积影响和总影响。
<br>  
<br>  5.3建议
<br>  对每项缺陷提出改进建议,如:
<br>  
<br>  a. 各项修改可采用的修改方法;
<br>  
<br>  b. 各项修改的紧迫程度;
<br>  
<br>  c. 各项修改预计的工作量;
<br>  
<br>  d. 各项修改的负责人。
<br>  
<br>  5.4评价
<br>  说明该项软件的开发是否已达到预定目标,能否交付使用。
<br>  
<br>  6测试资源消耗
<br>  总结测试工作的资源消耗数据,如工作人员的水平级别数量、机时消耗等。

或者
以下资料需要你的精心的文字和格式整理

基于CMM的项目级软件测试
杨忠秀,潘雪增,平玲娣
(浙江大学计算机科学与工程系,浙江杭州31ooz} >
摘要:从CMM的角度分析了项目级软件测试的活动过程,并且讨论了侧试用例的编写和各侧试阶段的输出。
关键词:CMM;软件测试;测试用例;测试报告
中图法分类号:TP311. 5文献标识码:A文章编号:1001-3695(2004)05-0009-03
CMM是由SEI提出的软件能力成熟度模型,它描述了有
效的软件过程单元的框架,为从事软件开发的机构描述厂从混
乱、不成熟的软件过程向成熟、有纪律的软件过程改进的一条
途径,它是基于实际实践,并月_根据过程控制达到控制产品质
量的日的。“说你要做的,做你要说的”是CMM的底线,CMM
的关键过程域的突出特点是以“依据书面规程”或者“遵循书
面的机构管理策略”这样的用语作为引导。CMM强调过程文
档化,并按文档进行实践。本文对于具体的CMM不作介绍,
而是根据实际CMM的软件开发中所进行的测试过程来分析。
基于CMM的软件测试阶段及其活动性
随着社会对计算机的依赖程度的增加,软件产品应用到社
会的各个领域,用户为了保证业务的顺利完成,对软件产品的
质量要求也越来越高。作为一个软件开发公司,软件的质量成
为公司生存的关键。软件测试就是在软件投人运行前,对软件
需求分析、设计规格说明和编码的最终复审,是软件质量保证
的关键步骤。软件测试是软件开发质量保证的重要环节,因
此,现在软件开发商越来越多地重视软件测试过程,软件测试
已经占到整个软件开发过程的40%到50%。下面从软件的生
命周期来对软件测试阶段和各阶段活动特点进行分析。
1. 1软件测试的三个阶段及其作用
根据CMM软件生命周期来看,测试分为三个阶段。
(1)单元测试。本阶段是对软件的基本组成单元进行的
测试,是在软件开发过程中要进行的最低级别的测试活动,它
在编码完成后马上进行。在单元测试活动中,软件的独立单元
将在与程序的其他部分相隔离的情况下进行测试。单元测试
的日的是:①使软件尽早正常运行;②为集成测试奠定基础;③快速定位错误;④使修改缺陷成本更低。单元测试在整个软件
测试中占有很重要的地位。在软件开发过程中有一个尽早测
试原则:缺陷发现越早,消耗的成本就越低。由于单元测试具
有不彻底性,对于模块间接口信息内容的正确性、相互调用的
关系是否符合设计无能为力。
(2)集成测试。本阶段是一个应用系统的各个部件的联
合测试,以决定它们能否在一起共同工作,部件可以是代码块、
独立的应用、网络上的客户端或服务器端程序。由于集成测试
具有可重复性强,对测试人员透明的特点,发现问题后很容易
定位。这种类型的测试尤其与客户服务器和分布式系统有关。
(3)系统测试。本阶段是基于系统整体需求说明书的测
试,它是验证整个系统需求的最终测试,属于黑盒测试,它应覆
盖系统所有联合的部件。
1.2三个测试阶段在CMM软件生命周期中的活动性分析
(1)需求分析阶段
这个阶段主要根据开发软件的需求进行收集和分析,形成
明确的文档。系统测试计划就是根据软件需求文档制定出的,
一旦需求发生变化,系统测试计划也要及时更新。
(2)概要设计阶段
这个阶段主要实现为各种需求设计各个模块,以及各个模
块的关系和接口。一旦概要设计定型,相对应的测试计划就是
集成测试计划书。在集成测试计划中,我们要考虑到各种消息
的接口、模块的功能流程、模块的数据表、需要调用到的桩函
数、模块的处理性能等。
(3)详细设计阶段
这个阶段是各个模块的具体实现,一般用伪代码编写,便于
检视。详细设计文档确定后,相应地就要制定单元测试计划。
单元测试的用例编写要考虑到各种情况,即每一个条件分支都
要走到。在单元测试阶段强调代码的覆盖率和条件覆盖率。(4)编码阶段
这个阶段就是实现详细设计的伪代码,在此阶段要为马上
进行的单元测试作准备。
(5)单元测试阶段
在编码阶段完成后就着手进行单元测试,并输出单元测试
报告。在测试中单元的划分如果过大,将使定位的工作量增
大,过小的话又使得测试的回报率低。因此,合适地划分单元
的大小是非常重要的。
(6)集成测试阶段
这个阶段是根据集成测试计划进行集成测试并输出集成
测试报告。对集成测试阶段,不同的开发人员有不同的看法,
有的人认为集成测试可以省略,或者归属到单元测试或者系统
测试;笔者个人认为这要看其体开发的系统,如果涉及到较多
的消息传输,集成测试还是应该独立进行,要不然在系统测试
时一定还得补上。
(7)系统测试阶段
这个阶段根据系统测试计划进行,并输出系统测试报告。
整个软件生命周期的几个阶段的示意图如图l所示。
需求确认
需求分析及
系统测试设计
验收测试
系统测试
概要设计及
集成测试设计
集成测试
详细设计及
单元测试设计
单兀测试
编码调试
图l软件生命周期的各阶段示意图
1. 3三个阶段的比较
(I)单元测试。它针对模块内部的程序错误,其目的是清
除局部模块的逻辑与功能上的错误和缺陷。它的测试依据是
软件开发流程中的模块的详细设计,在测试中大量采用白盒测
试方法。
(2)集成测试。它是基于模块间的组装和调用关系,其目
的是找出与软件相关的程序结构、模块间的调用关系、模块间
的接口等方面的问题。它的测试依据是软件开发流程中的概
要设计阶段,在测试中使用白盒与黑盒测试方法,较多地采用
黑盒方法构造测试用例。
(3)系统测试。它测试的对象是整个软件系统,对整个系
统进行一系列的整体、有效性测试。它的测试依据是软件需求
规格说明书,采用黑盒测试。
2测试用例的编写
在CMM的软件生命周期中,各个阶段的测试计划绝大部
分工作是写测试用例。测试用例的编写对整个测试效果起着
举足轻重的作用,可以这么说,整个软件测试效果在测试用例
编写完后已经被初步决定。
2. 1测试用例的编写技巧和方法
2.1.1命名规则
由于一个项目的测试阶段分为单元测试、集成测试和系统
测试,为了区分各个阶段,我们一般用L1T表不单元测试阶段
( Unit Test) , IT表示集成测试阶段(Integration Test) , ST表示系统测试(System Test)每个项目由若+个模块组成,我们根
据模块名来区分每个模块,给每一个模块的每一个测试用例顺
序编号,这样,每一个测试用例命名就完成了。通过这样命名,
测试用例就非常清楚是什么项目、什么阶段、什么模块的测试
用例
<项目名>_<测试阶段>_<模块名>_<模块内的测试用例编号>
2.1.2单元测试用例编写
单元测试强调代码覆盖率和条件覆盖率,我们在编写测试
用例的时候要保证代码中的每一个条件分支都能执行到。单
元测试用例编写常用到以下几种方法:
(1)规格导出法。根据相关的需求规格描述来设计测试
用例,每一个测试用例用来测试一个或者多个规格陈述语句。
(2)边界值分析法。用边缘特殊值测试,程序往往在边缘
情况时犯错误,故测试边缘情况比较有效。例如输人数据值的
范围是1一16,则可选1,16,14,17等数据作为测试数据c
(3)等价类划分法。等价分类法是将输人数据的可能值
分成若干“等价类”,每一类以一个代表性的测试数据进行测
试,这个数据就等价于这一类中的其他数据,该方法的关键在
于如何将输人数据分类。例如输人的数据范围是1一999,则
可以划分气类:x<l;l}x<999;x}999o
(4)错误猜测法。这种用例的编写需要有一定测试经验,
根据以前的测试经验,猜测容易出错点,针对这个点所写的测
试用例。
2.1.3集成测试用例编写
集成测试强调的是模块间的组装和调用关系、模块间的接
口方面的问题。作为一个良好的集成测试用例应该包括一个
合适的检查点,以下几个方面要注意:①功能的正确性;②消息
的流程是否正确;③来往的消息中的数据项、参数是否正确;④
消息异常、错误、超时等问题是否能正常处理;⑤各个模块的状
态迁移及相关数据结构的正确性;⑥资源的占用和释放情况,
运行过程中,资源的占用和释放是否正常;⑦全局数据的正确
J性,如全局变量、全局数组、全局数据表;⑧桩函数参数;⑨函数
调用顺序。在写集成测试用例时,从覆盖率来讲可以从以下几
个方面来考虑:
(1)模块的消息接日。①每类消息的每个具体消息都应
该设计测试用例;②对于消息结构中每一个数据成员的各种合
法取值情况都应该设计测试用例;③对于消息结构中每个数据
成员的非法取值情况应该设计测试用例;④模拟各种消息丢失
的情况;⑤模拟各种消息超时到达的情况;⑥模拟收到各种不
期望的消息的情况(如收到的消息超长、超短等)。
(2)模块的功能流程。根据概要设计文档描述中所确定
的模块应该完成的功能,每个功能描述都应该设计测试用例验
证。需要多个模块以及它们之间的接口共同完成的功能,需要
设计测试用例验证。
(3)模块间使用数据表。针对数据的修改操作,如增加、
删除、增加满、删除空、频繁地增加、删除等
(4)桩函数。对于无返回值或者返回值对被测模块没有
作用的桩,主要是检查传给桩的参数是否正确、合理,一个测试每一个或者每一类返回值都应设计相应的测试用例。
(5)对外接口。它是函数对外提供的函数接口,一般来
说,模块的对外函数接口都是完成一个完整的子功能。因此,
测试函数用例①要验证该接口能否正确完成该功能;②应验证
函数接口各个参数输人非法值的情况,接口函数)}}i该对所有的
输入参数的合法性进行检查;③函数接口的各个参数的边界值
测试;④函数接口各个参数的合法输人组合测试;⑤函数接口
各个参数的非法输人组合测试。
(6)处理性能。对于处理速度有要求的模块,应测试其处
理数据是否能达到规格要求。对于测试模块在大负荷(大量
呼叫、大话量)等情况下的处理能力应该设计测试用例进行验
证。
应该说集成测试在整个测试过程中是非常重要的,它起着
承卜启下的功能。由于集成测试是属于灰盒测试,相对于系统
测试而言,它的缺陷定位比较容易,因此,在测试过程中应该重
视集成测试。
2.1.4系统测试用例编写
系统测试是针对整个系统进行的一系列整体的、有效的测
试。它测试的依据是软件需求规格说明书,对于系统测试用例
的编写,可以从软件需求说明书中导出。在进行系统测试用例
编写时应注意以下几个问题:①多个需求是否可以在测试中合
并。有时一个需求值完成一件很简单的事情,我们在进行系统
测试时是不是口f以和其他的测试用例合并呢?一般来说是可
以的,但是有可能会增加测试的复杂度。②要控制好系统测试
中的力度。③需求的分析。需求是测试用例写作的基本,我们
要对需求进行仔细分析,不要漏写或者错写了测试用例。
2. 2测试用例的编写格式
文档对于测试是非常重要的,由于我们在测试中是按照测
试计划文档来执行测试过程,因此一定要重视测试用例编写的
格式。
对于单元测试用例的编写,我们在写测试用例时应明确以
下几个问题:被测试的单元编号(用以指明该测试用例是属于
哪一个单元)、函数原型(被测试函数)、输人参数、输出结果、
返回值、驱动程序、用例功能描述、预期结果。在编写单元测试
用例时一般以一个函数为单位,这个函数的测试可能包括多个
测试用例,这样看起来比较方便。如果形成表格形式,可采用
如表1的格式。采用这种格式编写单元测试用例明显,比如单
元测试编号为MMC_ UT_ DBCLASS一OS,那么它的测试用例1
的编号就可以写作MMG_ IlT_ DBCLASSes 005ee 001,这样这个测
试用例属于哪一个单元一看便知。
对于系统测试,每一个需求对应一个测试用例。编写时,
确定写明测试用例编号、测试标题、测试级别、对应规格、测试
预置条件、测试输人过程、测试结果。同样,我们采用如表2所
示的表格形式。
集成测试的格式与系统测试类似,只是关注点不一样。
3测试报告的生成
根据测试计划进行测试,测试完成后必须生成测试报告,质量监测部门根据提供的测试报告进行产品数据分析,可以根
据数据分析结果来指导产品的开发和质量的监控。
(I)测试汇总报告。它是对总的测试结果进行汇总的报
告,包括有多少测试用例、通过了的测试用例数量、没有通过的
测试用例数量。
(2)缺陷报告。包括测试用例编号、缺陷产生函数、缺陷
产生原因、缺陷级别、修订日期、修订人。其格式如表3所示。
表1单元测试用例编写格式
┌———————┬—————————————————————┐
│被测试单元编号│被i}单元的编号测试用例的编号紧 │
│ │跟其后 │
├———————┼—————————————————————┤
│函数原型 │该单元测试的函数 │
├———————┼—————————————————————┤
│功能简述 │介绍函数的功能 │
├———————┼—————————————————————┤
│输人 │输人的参数 │
├———————┼—————————————————————┤
│输出 │ │
├———————┤ │
│返回值 │ │
├—┬—————┼—————————————————————┤
│阵│论提条件 │ │
├—┼—————┼—————————————————————┤
│F │港动 │ │
├—┴—————┼—————————————————————┤
│各种可能 │l,ll │
│存存的条件 │ │
├———————┼——————┬——————┬——┬————┤
│测试用例编号 │lfilf}l=}Rn │输人数据及 │霎鬓│用例功能│
│ │ │相关变量描述│ │ 描沐 │
├———————┼——————┴——————┴——┴————┤
│(1) │ │
├———————┼—————————————————————┤
│cz> │ │
└———————┴—————————————————————┘
表2系统测试用
例编写格式
┌——————┬—┐
│测试编号 │ │
├——————┼—┤
│测试标题 │ │
├——————┼—┤
│测试级别 │ │
├——————┼—┤
│对应规格 │ │
├——————┼—┤
│测试预置条件│ │
├——————┼—┤
│测试输人过程│ │
├——————┼—┤
│测试预期结果│ │
└——————┴—┘
表3缺陷报告
(3)测试报告。它是所有的测试用例通过情况的报告,其
格式如表4所示。测试一般分成三轮,如果第一轮没有通过,
在第一轮测试完毕后,进行缺陷修订;然后进行第二轮的测试,
第二轮测试仍旧没有通过的,或者修改r前面的问题又引出了
新问题,进行第三轮测试。在单元测试报告中还强调一个覆盖
率,包括代码覆盖率和条件覆盖率。一般覆盖率报告的生成要
用相应的工其,如用V (:开发程序的单元测试覆盖率报告就可
借助C-cover ,True-cover来实现。
表4测试报告
4总结
软件质量的控制除了上面讲到的几个测试阶段外,其实
CMM还非常强调各个设计阶段的检视(Review )工作。编码完
成后的检视阶段也在软件质量控制中起着非常有效的、重要的
作用,如果进行了充分的检视,它可以发现一些在后面要花很
多力气来检测出的缺陷。
参考文献;
川Camegie Melton SoRware Engineering Institute. Software Test Manage-
meat [ EB/OL ].http;//www. lei. emu. edu/emm/cmm-v2/test-mgt-
kpa. html, 2003一04.
[ 2 ] IPL Information Pros esaing Ltd. Software Telling and Software Deve-
lopment Lifecycles[EB/OL].lute;//www.iplbath.com,1996-08
[3J软件工程专家网.软件测试的组织与管理{EB/OL]. http://
www.5lcmm. c;om/SoftTesting,2003一03.
作者简介:
杨忠秀( I 974- ),女,硕士研究生,主要研究方向为网络妥全与工程管
理;潘雪增(1945-),男,博士生导师,主要研究方向为网络安全与网络
数据库;平玲娣(1946-),女,博士生导师,主要研究方向为网络安全与
网络教据库
用例就足够了;对于返回值对被测试模块产生影响的桩,则对
温馨提示:答案为网友推荐,仅供参考
相似回答