没有合适的资源?快使用搜索试试~ 我知道了~
软件评测管理系统.doc
0 下载量 35 浏览量
2023-06-30
01:19:37
上传
评论
收藏 1.64MB DOC 举报
温馨提示
试读
33页
软件评测管理系统.doc
资源推荐
资源详情
资源评论
第 1 页 共 33 页
1 引言
1.1 软件测试的背景和意义
随着计算机技术的迅速发展和越来越广泛深入的应用于国民经济和社会生活
的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存
在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难性的后果。软件质量
问题已成为所有使用软件和开发软件的人关注的焦点。由于软件是人脑的高度智力
化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生惧来就有
可能存在着缺陷。如何防止和减少这些可能存在的问题呢?回答是进行软件测试。
测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与
技术实践的快速发展。新的测试理论,测试方法,测试技术手段在不断涌出,软件
测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起
来。
1.2 研究现状
目前,大多数公司 IT 应用项目开发中的测试工作人员主要由项目组的业务人
员负责。这些业务人员绝大多数都是从业务岗位临时抽调参加项目的测试工作,虽
然在项目的业务领域具有丰富的专业知识和业务经验,但对于软件测试工作本身来
说,其技术和经验相对缺乏,导致测试工作缺乏系统规范的运作和管理,直接影响
了项目的质量。
[1]
随着行业测试工作的展开和深入,专业化测试部门的成立,测试项目不断地增
加,涉及平台的不断多样化,测试人员的不断扩充,采用高效的管理、简单易操作
的辅助测试工具、及时的测试情况统计分析及评价将会对软件测试的管理及质量的
提升起到很重要的作用。
当前,中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,在认
识上还是存在重开发、轻测试的现象,没有认识到软件项目的如期完成不仅取决于
开发人员,更取决于测试人员;其次,在管理上简单、粗放,没有建立有效、规范
的软件测试管理体系;另外,缺少自动化测试工具的支撑,大多数企业在软件测试
时并没有采用软件测试管理系统。所以目前对国内软件企业来说,不仅要提高对软
第 2 页 共 33 页
件测试的认识,更重要的是建立起完善的软件测试管理体系。
实际的测试工作中,在测试资源管理、测试过程管理、辅助测试工具、测试数
据统计分析及评价、自动化测试脚本等各方面都需要进行大量的手工操作;同时,
部分测试设计及测试执行需要使用相应的开发及测试工具,对测试人员提出了更高
的技术要求;为尽量减轻手工测试带来的工作量,提供合适的手段让非技术测试人
员掌握相应的开发和测试工具的使用,充分利用资源,提高工作效率和质量,以此
为依托,需要开发和整合相应的工具;同时,为提高工具的使用范围,所开发的工
具需体现独立性、通用性、兼容性、可操作性、可拓展性、可移植性为目标,并建
立统一的管理平台,以利于统一管理和指引,从而提高测试的质量。
[2]
1.3 软件测试管理平台的技术分析
1.3.1 软件测试的发展情况
在企业信息化的建设过程中,科技正从传统的业务支撑角色,逐步走向前台,
发展到逐步引领业务的发展和内部管理的提升。各个企业纷纷投入大量资金和人力
进行各类业务系统和管理系统的开发和优化,但是由于思想意识和历史原因,在这
一信息化建设的过程中出现了软件行业一直一来存在的重开发,轻测试现象,软件
项目的测试质量成为制约软件产品质量提升的瓶颈。
[3]
随着企业 IT 应用项目开发工作的不断深入,项目的规模和复杂度都在增加。
为保证项目的投产质量,测试工作的重要性越来越引起各级职能部门的广泛关注和
高度重视。
(1)国内外软件测试现状
在软件业较为发达的国家,软件测试是软件开发的一个重要的有机组成部分,
而且在整个软件开发的系统工程中所占的比重是相当大的。以美国软件开发的平均
资金投入为例,通常是“需求分析”和“规划确定”各占 20%,“设计”占 5%,“开
发”占 10%,“测试”占 45%。与此同时,软件测试市场已经成为软件产业中的一个
独特市场,在美国硅谷,软件开发企业或设有软件开发部门的公司,都有专门的软
件测试单位,其中软件测试人员的数量相当于软件开发工程师的 3/4。在这些公司
或部门中,负责软件测试的质量保证经理与软件开发主管其职位是平行的。据了解,
在软件产业发展较快的印度,软件测试在软件企业中也同样具有举足轻重的地位。
第 3 页 共 33 页
目前国内软件测试一般存在以下几种形式:一是软件公司内部安排相关人员进
行各功能的测试验证;二是由用户直接进行用户体验测试;除此之外还存在第三种
方式,那就是有专业软件测试人员运用一定的测试工具对软件的质量进行检测,但
其市场表现令人尴尬,相比中国市场的软件开发公司比比皆是,而软件测试公司却
是凤毛麟角。
由于在企业中对软件测试的重要性理解不深入,很多人认为一个软件一个系统
只要能够运行基本上就已经成功,而根本没有必要成立专门的测试职能部门或设立
测试专职的岗位。另一方面,软件开发企业在为软件开发支付费用后,不希望再为
软件的测试支付新的成本,即是有些项目的开发方或委托方有意对软件进行第三方
测试,也会考虑到在测试过程中可能会要软件开发商提供源代码,担心知识产权、
商业秘密等遭到泄露。因此国内第三方测试公司更倾向于欧美、日本及印度的本地
化外包测试业务。
[4]
(2)国内行业软件测试缺陷探析
目前国内部分企业的 IT 部门并未设置相对独立的软件测试部门和测试管理部
门,仅仅依靠业务部门的验收测试来概括开发阶段后的所有测试工作,这样一来软
件质量难以得到保证。业务测试人员是不可能从专业的软件测试工程师角度对软件
进行有效测试验证,仅从业务需求出发进行验收测试,测试角度就存在有缺陷。此
外对应用系统的性能测试也使业务部门的测试人员更不知从何下手。或许有人认为
成立独立的软件测试部门成本较大,不如让软件开发人员来兼职软件测试工作。这
种想法犹如既当运动员又当裁判员,测试效果同样无法达到要求。从逻辑思维上分
析,开发人员会从程序本身开发的逻辑流程上去做测试,不能将临界点、边界
值、等特殊情况进行有效地测试;从心理学的角度进行分析,开发人员更多的是考
虑怎样才能使程序测通,而不是软件测试角度如何尽可能的发现程序中存在漏洞。
与此同时,成立规范的测试管理部门也非常必要,否则会产生重结果轻过程、测试
过程不透明等弊端。比如测试案例的设计是否完全覆盖需求、测试案例的的执行情
况如何做到有效的监控、缺陷管理和跟踪复测、回归测试管理以及测试过程中的程
序版本更新和上线版本的管理等能否得到保证。
第 4 页 共 33 页
1.3.2 目前软件测试存在的问题
软件测试虽然日益受到重视,但是,目前不少软件企业的软件开发模式仍然处
在无序开发的不规范状态,与软件程序编码比较,软件测试的地位和作用,还没有
真正受到重视,很多人还存在对软件测试的错误认识,这影响了软件测试活动的进
行和真正提高软件测试质量。测试上的常见问题有如下几方面。
(1)软件测试的目的理解有误
对稍微了解软件测试人都知道,软件测试的目的是为了发现软件中的缺陷。一
个好的测试用例在于能发现至今未发现的缺陷。也就是人们常说的:软件测试可以
说明软件存在缺陷,但不能说明软件不存在缺陷。这种观点不能说是错误的,但至
少是不全面的。如果从软件过程的角度来看,就可以看到一个被大多数人忽略的软
件测试目的是:软件测试可以帮助发现当前开发工作所采取的软件过程的缺陷,以
便进行改进。具体的说,软件测试并不仅仅是为了要找到软件中存在的缺陷,而更
要分析错误产生的原因和其产生的阶段。通过分析结果,从软件过程方面去改进,
从而避免今后有类似的错误出现,并能发现有关联的潜在缺陷。通过这种方式就可
以尽早的发现并修正缺陷,同时也可以预防某些缺陷的产生。所以,应该正确分析
与利用测试的结果并有效地进行软件过程改进,从根本上提高软件质量,降低软件
开发成本。
(2)软件测试的介入时间晚
根据软件生命周期的定义,软件项目开发过程一般要经过以下几个阶段:需求
分析,概要设计,详细设计,软件编码,软件测试,软件发布。因此,许多人认为
软件测试只是软件编码后的一个过程。这是不了解软件测试周期的真正含义造成的
错误认识。软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,
测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个开发过程。在软
件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确
性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开
发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需
要集成测试,系统集成阶段需要系统测试。如果等到软件编码结束后才进行测试,
那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。
更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,要修复错误,将
第 5 页 共 33 页
会耗费大量的时间和人力高效的系统测试有赖于高效的计划。测试用例像源代码一
样,需要设计、评审和实施。如果不想让测试成为阻碍软件发布的关键路径,就要
尽早开始测试计划。可以在了解了需求之后就开始。若采用分阶段交付使用的方法,
在第一阶段中途就可获得可执行的软件,这时就可以开始系统测试
(3)测试代码无相关规范
大家肯定知道测试代码是不能随意编写的,并且在编写测试代码时也不是抱着
一种随意的态度,但是编写出来的测试代码以及测试代码运行的情况往往表现出了
一种随意性和无序性,没有弄清楚测试的真正意图所在。测试的目的是用来验证软
件系统是否满足了需求,因此,测试代码一定要明确的表达出这一点来。如果测试
者真正从用户的角度出发,那么他编写出来的测试脚本应该是每一个测试用例都清
晰的刻画了一项用户的需求,然后验证系统是否实现了用户期望的功能。这样的测
试才是有明确目的,才是最有效地测试。软件系统测试计划应能覆盖百分之百的软
件功能。细想一下,造成容易陷入针对实现细节测试的原因主要是由于先编写完代
码,然后才去进行测试,潜意识中就会不由自主的想去验证已经完成的某些实现细
节。如果能够在编写代码前,首先编写针对该模块的测试代码,情况就会有很大的
不同,因为这会迫使你从使用者的角度去考虑问题。结果就是会把关注点放在模块
的功能上,而不是某种实现细节。这样写出来的测试代码要稳定的多,也有效地多。
(4)测试人员的不专一性
了解软件测试的人都知道,测试是需要专门的测试工程师。然而事实上,多
数软件测试的工作都是由编程人员自己进行的。但编程人员与测试人员的思维方式
不同。编程人员的工作是编码,他们潜意识里进行测试是想验证自己的代码没有错
误,而不是发现错误,有时可能会为了方便测试而修改源代码。测试人员则应该具
有挑刺的性格,他的工作是否定生成的代码,找出代码中存在的缺陷。任何一个人
都难以同时胜任这两种具有不同工作取向的任务。所以,资深的程序员不一定是一
名优秀的测试工程师,必需由独立的人员和小组来进行软件测试。并且单单指定一
个或几个人,说他们现在就是测试小组的成员是不够的,应该培训该小组成员如何
进行软件测试。而在一个项目团队中,开发人员与测试人员的比例需要相对合理,
才能保证测试的高质量。一般情况下,对于生命悠关的软件,如航天飞机的飞行控
制软件,每个开发者对应 10 名测试者;而不要求高可靠度的室内商业软件,一个
剩余32页未读,继续阅读
资源评论
yyyyyyhhh222
- 粉丝: 405
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功