工程硕士学位论文选题报告及论文工作计划 课 题名 称 软件测试技术 在商业MIS中的应用 学 号 姓 名 专 业领 域 软件测试技术 所在院、系 软件学院 校 内导 师 校 外导 师 选 题时 间 2004 年 4 月 9 日同济大学研究生院 年 月 日一、立论依据课题来源、选题依据和背景情况、课题研究目的、工程应用价值课题来源:本课题来源于上海东昌西泰克公司正在实施的物流信息管理系统东昌西泰克公司在引进一套国外先进的企业物流管理方法的基础上提出了针对于国内中小型企业的物流管理方案,并将这种方案提升为以信息化为依托的现代化管理方法因此,在实际开发过程中,软件测试将贯穿与整个软件的生命周期,以保证软件产品的质量选题依据:现在的市场竞争越来越激烈,在这样的环境中,只有高质量的软件产品才能在市场中占有一席之地,而软件测试是保证软件产品质量的一个重要手段二十世纪六十年代出现的“软件危机”本质上是软件开发过程中,软件缺陷的积累与放大效应造成的。
为了解决“软件危机”,“软件工程学”应运而生,它的主要任务是,通过提供规范化的分析方法及工具软件,来避免或减少软件错误的发生在软件工程中提出了“软件生命周期”的概念,在软件的研发过程中,一般可以分为5个阶段:1) 需求分析(Requirement Analysis);2) 设计(Design);3) 程序编写(Coding);4) 测试(Testing);5) 运行和维护(Run and Maintenance)每个阶段都有明确的任务,并生成一定规格的文档表1概述了每个阶段的基本情况表1 软件工程各个阶段的基本情况阶段基本任务工作结果所占工作量参与者开发期需求分析理解和表达用户的要求、对开发的软件进行详细的定义系统说明书20%高级程序员用户设计建立系统的结构模块说明书数据说明15%高级程序员程序编写写程序程序20%高级程序员初级程序员测试发现错误、排除错误可运行的系统45%测试部门运行期运行与维护期维护改进的系统用户、程序员从表中可知,开发期中各个阶段的工作量是不一样的,而软件测试几乎要占到整个工作量的一半左右,并且软件测试从一开始就会参与到软件的整个生命周期,可见软件测试占有非常重要的位置。
背景情况:我国第九届全国人民代表大会第四次会议通过的“中华人民共和国国民经济和社会发展第十个五年计划纲要”中明确把“大力推进信息化”、“以信息化带动工业化”作为国家方针,并采取相应措施国家大力推进信息化的举措无疑对国内软件业的发展起了很大的推动作用但是我国软件应用开发的水平离国际先进水平仍然有不小的差距,就是与我国情况极为类似的印度相比,无论在软件开发方面还是产品输出方面,都相差甚远最重要的原因是软件工程的实施不到位而在软件工程的实施过程中,软件测试又是重中之重国内软件企业绝大多数都把软件测试当作软件行业中不重要的工作,并且还有为数不少的软件企业仍然在没有任何实际测试过程的条件下开发软件并且在国内软件企业中,很多工程师不愿意做测试,认为是一种打下手的工作,没有前途,于是企业从上到下普遍自觉和不自觉地只重视技术,不重视质量,后果是产品在市场上竞争力不高,产品售后维护和服务费用偏高还有一个很严重的问题是,国内还没有哪个机构专门培养测试工程师,导致国内软件测试水平非常低下只有进行专业化和高效的软件测试,才有可能真正提高软件产品的质量,国内的软件水平才能得到提高,国家的信息化建设才能取得成果课题研究目的:软件测试是软件开发过程中的一个重要环节,它直接关系到软件产品的质量。
软件测试在整个软件生命周期各个环节都是不可缺少的在实际软件开发过程中,软件测试应该能够有效的发现软件中的任何缺陷,尽早排除开发中的错误,避免软件缺陷的积累与放大效应,提高系统开发过程的效率;同时,软件测试业应该是高效的,尽量少占用软件开发时间和开销工程应用价值:大量的事实表明,由于软件问题造成应用系统不能正常运转或停顿的占相当大的比例,造成了很大的损失,这些软件的开发往往没有严格而规范的管理和测试把软件测试技术应用到软件开发的过程当中,将能有效的提高软件产品的质量,避免不必要的损失二、文献综述国内外研究现状、发展动态二十世纪七十年代末,为了解决当时所谓的“软件危机”,在北大西洋公约组织的学术会议上第一次创造了“软件工程”这个词,倡导按照工程化的原则和方法组织软件开发工作而软件测试在软件工程提出的软件生命周期中占有非常突出的位置软件生命周期的每个阶段都有明确的任务,每个阶段的成果都是下个阶段工作的起点,软件测试的任务就是要尽早发现并排除在前面阶段中可能产生的各种类型的错误,它是保证软件质量的重要手段国际标准化组织制定了一系列标准来描述如何使用质量特性来评价软件质量并指导软件测试工作国内外的专家学者从理论上和实践上也都对软件测试进行了一系列研究,涉及到软件测试的策略、测试模型、测试方法、测试管理以及测试的自动化。
现代的软件测试不仅仅是在软件开发完成以后来做测试工作,而是将测试渗入到软件开发的各个阶段,而且提高自动化软件测试手段,来提高测试效率在CMM的发展进程中,曾经有人提议将软件评价与测试(Evaluation and Test)作为CMM的一个KPA加入到CMM中,虽然这一提议最终未获通过,但通过这一提议,我们可以看出人们需要将软件工业从一种手工(艺)匠方法向真正的训练有素的工程层次迈进于是现在又有人提出 TMM (Testing Maturity Model)——测试成熟度模型TMM也一共分为5级,每一级都有一些推荐的实践点,指导着软件测试过程的改进但是和软件开发技术相比,软件测试的发展还相对滞后软件测试之所以发展相对缓慢,一个原因是做研究和做开发的人交流的机会相对少只有做大型系统工程的人才会对测试提出较高的要求,重要性才能显现出来,而做研究和教学的人没有大型系统工程案例,所以造成了测试理论研究的发展缺乏充实的基础材料真正做大型系统开发的工程师,又没有时间将第一手的测试经验变成系统的理论参考文献:[1] Developing a Testing Maturity Model, Ilene Burnstein, Taratip Suwannasart, and C.R. Carlson, llinois Institute of Technology;[2] Software Testing A Craftman’s Approach(Second Edition), Paul C. Jorgensen, China Machine Press;[3] SEI / CMM Proposed Software Evaluation And Test KPA, Richard Bender, April 1996;[4] Test Plan Evaluation Model, James Bach, Satisfice, Inc. 1999;[5] New Models for Test Development, Brian Marick, Testing Foundations;[6] What Test Designers Wish from Software Models, David Gelperin, Software Quality Engineering;[7] Classic Testing Mistakes, Brian Marick, Testing Foundations;[8] Software Testing and Quality Assurance White Papers, Pointe Technology Group, Inc.[9] 软件测试,Ron Patton,机械工业出版社;[10] 软件工程与软件测试自动化教程,张克东,庄燕滨,电子工业出版社;三、研究内容1. 主要研究内容及拟关键技术软件测试贯穿与软件产品的整个生命周期,主要包括软件测试策略的拟定、软件测试计划的制定、测试用例的设计以及软件生命周期各阶段软件测试的执行等。
并且作为一个成熟的软件企业,还需要能够持续的改进它的软件测试过程主要研究内容:1) 对现在普遍应用的V模型以及新提出的X模型等测试模型进行分析比较;2) 如何为项目拟定好的测试策略;3) 在项目开始之初,如何根据拟定的测试策略为项目制定一个切实可行的测试计划;4) 测试方法研究:如何根据制定好的测试计划将软件测试方法应用到高效率的测试用例的制定和执行上;5) 发现了缺陷后,如何对缺陷进行管理、跟踪和报告;6) 对新提出的软件测试成熟度模型(TMM)进行研究关键技术:1) 软件测试模型的应用;2) 软件测试策略的确定;3) 软件测试计划的制定;4) 应用各种软件测试方法设计出高效的测试用例;5) 缺陷管理生命周期的应用2.拟采取的研究方法、技术路线、实施方案及可行性分析拟采取的研究方法:采用理论与实践相结合的方法,利用上海东昌西泰克公司正在实施的物流信息管理系统作为商业项目实践平台,将软件测试的理论和经验应用到该系统开发的整个生命周期中,并且尽可能实现软件测试自动化,尽早发现软件开发过程中存在的缺陷,提高测试效率,保证软件产品的质量实施方案:1) 在项目开始之初,根据客户的需求和拟采取的开发模型,确定采取什么样的测试模型来进行整个项目的测试工作;2) 根据需求规约和项目设计文档拟定测试策略,制定出合理可行的项目测试计划;3) 根据需求规约和项目测试计划,设计测试用例;4) 执行测试用例,并将测试结果和预期结果比较,分析原因,确定是不是系统缺陷,并在发现缺陷后,对缺陷进行跟踪管理;可行性分析:国外已经对软件测试进行了大量的理论研究,有了一定的理论基础,并且在欧美以及印度的成功软件企业得到了实践的检验。
大量的统计数据表明,如果能够合理的应用软件测试技术,软件产品的质量能够得到显著的提高,并且能够极大的减少产品维护的开销国内的一些软件企业特别是通过CMM认证的软件企业已经在自己的开发过程中规范的应用软件测试技术,取得了很好的效果3.预期目标通过软件测试在商业MIS项目上的实际应用,希望能够将国外的先进理论和国内软件企业的实际情况结合起来,找到一条适合国内中小软件企业的软件测试实践四、研究基础所需实验研究的软硬件环境1. 软件环境:1) 操作系统:Linux8.0、Windows2000 Server2) 数据库系统:MS SQL Server20003) 开发工具:Eclipse2.1、JDK1.34) 测试工具:Load Runner 6.05) 版本控制工具:Win CVS 1.36) 项目管理工具:MS Project 20002. 硬件环境:(1) 文件服务器:Pentium 4 CPU1.5G / 内存512M / 硬盘 60G;1台(2) 数据库服务器:Pentium 4 CPU1.5G / 内存512M / 硬盘 40G;1台(3) 应用服务器:Pentium 4 CPU1.5G。