软件测试概论
概述
软件测试是伴随着软件的产生而产生的,有了软件生产和运行就必然有软件测试。 早期的软件开发过程中,测试的含义比较狭窄,将测试等同于“调试”,目的是纠正软件 中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试 介入得也晚,常常是等到形成代码,产品已经基本完成时才进行测试。
虽然软件测试技术的发展很快,但是其发展速度仍落后于软件开发技术的发展速 度,使得软件测试在今天面临着很大的挑战,主要体现在以下几个方面。
①软件在 国防现代化、社会信息化和国民经济信息化领域 中的作用越来越重要, 由此产生的测试任务越来越繁重。
②软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。
③面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。
④对于分布式系统整体性能还不能进行很好的测试。
⑤对于实时系统来说,缺乏有效的测试手段。
⑥随看安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成 为世界性的难题。
国内外现状
中国的软件测试技术研究起步于“六五”期间,主要是随着软件工程的研究而逐步 发展起来的,由于起步较晚,与国际先进水平相比差距较大。直到1990年,成立了国家 级的中国软件评测中心,测试服务才逐步开展起来。
我国正在迈入测试时代,主要体现在以下几个 方面。
①我国著名的软件公司都已经或者正在建立独立的专职软件测试队伍,虽然测试 人员规模以及所占比例还不能和国外的大公司相比,但是毕竟在公司内部贯彻了独立测 试的意识。
② 国家人事部和信息产业部2003年关于职业资格认证第一次在我国有了 “软件评 测师”的称号,这是国家对软件测试职业的高度重视与认可。
③在信息产业部于计算机系统集成资质以及信息系统工程监理资质的认证中, 软件测试能力已经被定为评价公司技术能力的一项重要指标。
④2001年信息产业部发布的部长5号令,实行了软件产品登记认证制度,规定, 凡是在我国境内销售的产品必须到信息产业部备案登记,而且要经过登记测试。
⑤自2001年起,国家质检总局和信息产业部每年都通过测试对软件产品进行质量 监督抽査。
⑥国家各部委,各行业正在通过测试规范行业软件的健康发展,通过测试把不符 合行业标准要求的软件挡在了门外,对行业信息化的健康发展起到了很好的促进作用。
⑦用户对软件质蛍要求越来越高,信息系统验收不再走过场,而要通过第三方测 试机构的严格测试来判定。
⑧"以测代评”正在成为我国科技项目择优支持的一项重要举措,比如,国家“863” 计划对数据库管理系统、操作系统、办公软件、ERP等项目的经费支持,都是通过第三 方测试机构科学客观的测试结果来决定的。
⑨软件测试正在成为部分软件学院的一门独立课程,对我国软件测试人才的培养 起到了很好的作用。
⑩第三方测试机构得到了蓬勃的发展。最近两年,在全国各地,新成立的软件测 试机构有10多家,测试服务体系已经基本确立。
可见我国的软件测试行业正处于一个快速成长的阶段,我们有理由相信,经过一段 时间的发展,我们会逐步缩小与国外发达国家的差距,从而带动整个软件产业的健康 发展。
软件测试与软件项目的关系
软件测试是为软件项目服务的,在整个项目组中,要强调测试服务的概念,虽然软件测试的目的是为了发现软件中存在的错误,但是, 其根本目的是为了提高软件质量, 降低软件项目的风险。软件的质量风险表现在两个方面,一种是内部风险,一种是外部 风险。内部风险是在即将销售的时候发现有重大的错误,从而延迟发布日期,失去市场 机会;外部风险是用户发现了不能容忍的错误,引起索赔、法律纠纷,以及用于客户支 持的费用甚至失去客户的风险。
测试的目的就是把软件的错误控制在一个可以进行产品交付/发布的程度上,可以交付/发布的产品并不是 没有错误的产品,因此软件测试不可能无休止地进行下去,而是要把错误控制在一个合理的范围之内,因为软件测试也是需要花费巨大成本的。
第三方测试
第三方测试机构的测试除了发现软件问题之外,还有对软件进 行科学、公正的评价的职能,这就要求第三方测试机构要保持公正、廉洁、客观、科学、 独立的态度。
对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试 手段发现软件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观、科学的 评价,有助于开发商认清自己产品的定位。对于行业主管部门以及软件使用者来说,第 三方测试机构独立公正的地位有助于对被测软件进行客观公正的评价,帮助用户选择合 适、优秀的软件产品。