试析软件工程系统项目开发的质量控制

时间:2021-04-28 08:46:55 硕士论文 我要投稿

试析软件工程系统项目开发的质量控制

  为达到质量要求所采取的作业技术和活动称为质量控制。这就是说,质量控制是为了通过监视质量形成过程,消除质量环上所有阶段引起不合格或不满意效果的因素。以达到质量要求,获取经济效益,而采用的各种质量作业技术和活动。那么,软件工程系统项目开发的质量控制有哪些方法呢?请看本文介绍。

  论文摘要:依据GB/T16260<信息技术软件产品评价质量特性及其使用指南》,结合某软件工程的项目开发,通过过程质量控制,认识质量特性,选择适当开发控制模型,对工作内容在质量控制方法、控制措施和控制流程的一点认识。

  论文关键词:质量控制 内容 方法 措施

  1 项目概况

  整个工程项目要完成两个系统的建设:

  1.1 行政办公自动化系统

  行政办公自动化系统基于WEB,采用B/S多层结构设计。以JAVA、JSP、XML、.NET等为核心编程技术。整个系统能够充分保证数据的安全,可根据需要提供数字签名、电子印章、加密验证,保证系统安全。具有灵活的权限设置功能。系统能满足长时间稳定运行的要求,具有高度容错性,能够为办公提供科学高效的工作计划管理和监督检查功能及方便的数据收集查询服务。同时提供高度的系统自适应性。

  1.2 行政网站系统

  本网站定位在电子政务门户网站,其基本功能有:信息发布、对外宣传、信息查询、便民服务、网上办事等。整个网站着重于先进性、实用性、安全性、可扩充性、兼容性、经济性和科学性等原则。

  2 软件产品质量特性

  软件产品质量特性一般分6类:功能性、可靠性、易使用性、效率、可维护性和可移植性。

  2.1 功能性

  与一组功能及其指定的性质有关的一组属性。这里的功能是指满足明确或隐含的需求的那些功能。

  2.2 可靠性

  与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性。

  2.3 易使用性

  与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性。

  2.4 效率

  与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。

  2.5 可维护性

  与进行指定的修改所需的努力有关的一组属性。

  2.6 可移植性

  与软件可从某一环境转移到另一环境的能力有关的一组属性。

  3 软件产品开发模型

  软件产品常用的开发模型有:瀑布模型(V模型、喷泉模型)、螺旋模型、原型模型(锯齿模型、快速原型)、构件组装模型(增量模型)、统一软件过程RUP模型等。在实际开发不是使用单一模型,本项目中就使用了多模型的集合控制的方法。

  4 质量控制工作内容、方法和措施

  1.质量控制是项目开发过程的重点,开发过程中的质量控制是把好质量关的重要一环。质量工程师必须熟悉设计方案,熟悉施工规范、软件规范和质量验收规范。

  2.在本项目开发中,质量人员应采用软件工程的思想,对所开发的软件、系统、网站进行一系列的软件测试。

  3.软件测试是在一定控制的条件下,围绕一个系统或应用的操作并且评价其结果(一个最简单的例子:如果用户使用硬件A,在应用接口B上做了操作C,那么结果D应当出现),控制的条件应当包括正常和异常的条件。测试企图使事情变得很糟糕,从而来检测出一些应当发生而没有发生,或者不应当发生而发生的事情。

  4.关于如何安排QA和测试的任务时,不同的承包方变化是很大的。有时它们可以有一个组或一个人来负责,共同的是一个项目组混合了测试人员和开发人员,并且他们一起紧密的工作,而QA过程有项目经理来监督。所有这些是同承包方的大小和商业结构有关的。在本项目中,质量人员会与承包方南京擎天科技有限公司进行充分的沟通,确认他们在软件开发中惯用的测试组织和测试手段,并力图将质量人员的质量行动和软件质量意图渗透到整个项目的开发过程中去。

  5.本项目中可能出现问题或者缺陷的来源:

  (1)缺乏或者没有进行沟通,如对于一些我们在开发过程中应当或者不应当实现的细节问题。

  (2)软件复杂度—— 在当今的软件开发中,对于一些没有经验的人来说,软件复杂性可能是难以理解的。图形化界面,客户/服务器和分布式的应用,数据通信,大规模的关系数据库,应用程序的规模等指数般的增加了软件的复杂度。面向对象技术也有可能增加软件复杂度,除非能够被很好的工程化。

  (3)编程错误——任何一个编程人员都可能产生错误。

  (4)不断变更的需求——用户可能不知道变更的影响,或者知道影响却还是需要进行变更,这些会引起重新设计与重新安排,并对其它项目产生影响,使已完成的工作可能不得不重做或推翻,硬件需求可能也会受到影响。如果存在许多小的变更或者任何大的改动,由于项目中不同部分间可知和不可知的依赖关系,这样就会产生问题,跟踪变更的复杂性也可能引入错误。项目开发人员的积极性也会受到打击。在这种情况下,质量人员必须了解结果的风险,必须适应和计划进行大规模的测试来防止不可避免的BUG出现无法控制的局面。

  (5)时间的压力——软件项目的时间安排是最难的,通常是需要很多猜测的工作。当最后期限来临的时候,错误也就伴随发生了。

  (6)缺乏文档的代码——维护和修改很差的代码或缺乏文档的代码是很困难的。最终结果将导致BUG的出现。

  (7)软件开发工具——视图工具,类库,编译器,脚本工具等等通常会把它们自身的BUG 引入到本项目中。

  6.质量人员视情况应该实施的测试类型:

  (1)黑盒测试— —不是基于内部代码和设计的知识,而是基于需求和功能。

  (2)白盒测试——基于应用程序的内部逻辑的知识,通过语句,分支,路径和条件的覆盖率。

  (3)单元测试——测试中的最小单位,测试特殊的功能或代码模块。由于需要对内部代码和设计的详细知识,该测试一般由开发者完成而不是由质量人员完成。该测试的容易程度同代码设计的好坏直接相关。

  (4)增量型的集成测试——随着新功能的增加,不断的对应用程序进行测试。在程序的.所有部分完成之前,需要一个应用程序的各个部分之间能够相对独立的进行工作。这类型测试可以由开发者或质量人员完成。

  (5)集成测试—一测试应用程序结合的部分来确定它们的功能结合到一起是正确的。在这里‘部分’的概念可能是代码模块,独立的应用程序,在网络上的客户端和服务器断程序等等。这类型测试典型的是于客户/服务器和分布式系统相关。这类测试通常应该由开发者在质量人员的指导和监督下完成。

  (6)功能测试—— 是一种黑盒测试,同应用程序的功能需求紧密相关。这类型测试应当由质量人员来完成。这并不意味着开发人员在发布版本之前就不需要检查他们的代码。

  (7)端到端测试— — 同系统测试类似,包括模拟现实世界对一个完整的应用环境进行测试。例如同数据库进行交互、使用网络通信,或者其他的软件、硬件和系统进行交互。这类测试通常应该由开发者在质量人员的指导和监督下完成。在某些情况下,可以和某些测试合并进行。

  (8)理智测试——这是一种典型的原始测试,其目的是要确定一个新的软件版本在一些主要的测试努力下表现的足够好并且可以接受。例如:如果一个OA软件每五分钟当机一次,使系统执行速度极其缓慢,或者破坏系统数据,那么该软件就处于不够‘理智’状态,必须保证在当前状态下进行进一步测试。

  (9)可接受性测试—~基于最终用户的规格进行的最后测试。或者基于最终用户在一定的时间范围内的测试。

  (10)压力测试——该术语通常同负荷测试和性能测试是可交换的。也可用于描述这样一些测试,如:在不正常的负荷状态下,过分的重复某些动作或输人情况下进行的系统功能测试。

  (11)安装和反安装测试——测试完全、部分或升级的安装/反安装过程。

  (12)安全性测试——测试系统对于内部和外部非法人侵、故意损坏时的表现情况。可能需要复杂的测试技术。

  (13)兼容性测试——测试系统在不同的平台/硬件/操作系统/网络上的表现情况。

  7.质量人员或者承包方软件测试人员执行软件测试需要执行的步骤:

 

  (1)获取需求、功能设计、详细设计规格和其他必须文档;

  (2)获取预算和时间安排需求;

  (3)确定项目相关人员和他们的责任,汇报需求,必须的标准和过程(如版本过程、变更过程等);

  (4)确认应用高风险的部分,设定优先级,确定测试的范围和限制;

  (5)确定测试的方法——单元测试、集成测试、功能测试、负荷测试、可用性测试等;

  (6)确定环境需求(软件/硬件/通信等);

  (7)确定测试用具环境(记录/回放工具、覆盖率分析器、测试跟踪、问题跟踪等等);

  (8)确定测试输入需求;

  (9)确定任务,任务责任和相应的工作量;

  (10)设定时间安排估计、时间表、里程碑等;

  (11)确定输入的等价类、边界值分析、错误类;

  (12)准备测试计划文档和需要的评审;

  (13)写测试用例;

  (14)对测试用例进行必须的评审;

  (15)准备测试环境和测试用具,获取需要的用户手册/参考文档/配置指导/安装指导,建立跟踪过程,日志和存档过程,获取测试数据;

  (16)获取和安装软件版本;

  (17)执行测试;

  (18)评价和汇报测试结果;

  (19)跟踪问题和修改;

  (20)如果需要进行再测试;

  (21)在整个生命周期内维护和修改测试计划、测试用例、测试环境和测试用具。

  8.本项目因为采用了WEB开发技术,因此还需要进行特定于WEB开发的软件测试。其控制方法及措施:

  (1)功能测试

  a)链接测试.b)表单测试;c)Cookies测试;d)设计语言测试;e)数据库测试

  (2)性能测试

  a)连接速度测试.b)负载测试;c)压力测试

  (3)可用性测试

  a)导航测试Ib)图形测试;c)内容测试;d)整体界面测试

  (4)客户端兼容性测试

  a)平台测试.b)浏览器测试

  (5)安全性测试以上质量控制过程中所描述的任何测试和流程,并不意味应该完全由质量人员完成。在大多数情况下,质量人员只需要审核承包方的开发人员或者测试人员的测试计划和测试结果报告。承包方的开发人员和测试人员应该自行完成上述测试和流程,并向质量人员提交详细的计划和报告,等待质量人员复核和签认。

  5 结语

  质量管理可以说是一个企业、一个项目的关键命脉,质量控制随着数字化、信息化的技术革命其模式已发生结构性变化,本文观点是对近几年的在软件开发项目质量工作总结的浅见。

  参考文献(略)

【试析软件工程系统项目开发的质量控制】相关文章:

房地产项目开发土地成本控制思考论文07-18

建筑工程项目施工质量控制要点10-26

软件工程开发app论文开题报告08-17

项目管理在系统测试的运用11-08

信息系统开发开题报告10-28

阐述电力设备试验管理系统的开发11-01

项目施工成本控制策略研究的论文07-30

过程控制教学软件开发论文08-04

屋面工程质量控制浅论10-26

公路工程检测的质量控制分析08-09