软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试技术>>其他相关>>正文
软件测试是提高软件产品质量的必要条件(2)
文章出处: 作者:李理 发布时间:2006-10-26
 

科学测试:从质量开始

针对软件产品的6个质量特性,笔者结合具体测试工作中的体会,分别论述软件测试的必要性和重要性。

1.功能性(functionality) 在指定条件下,软件产品应满足明确或隐含需求功能的能力。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了5个子特性,分别为:适合性(suitability);准确性(accuracy);互操作性、互用性(interoperability);依从性(compliance);安全性(security)。

软件的功能性主要应该考察三个方面。首先该软件产品的功能是否满足需求;其次现有功能是否达到设计要求;最后,所有功能是否实现正常。粗看起来,这三个要求比较简单,但是要实现起来却有相当的难度。这关系到庞大的市场需求调查、用户群定位和需求分析。

软件需求分析是系统功能和设计之间的桥梁,它是对系统功能的进一步细化,以此作为设计和测试的依据。

软件开发和使用的最终目的是为了满足用户需求,因此以必须以用户需求作为评判软件质量的标准,并以此判别软件缺陷(Software Bug)的定义:一是软件未达到用户需求的功能和性能;二是软件出现了用户需求不能容忍的错误;三是软件功能超出了用户需求的范围;四是软件未达到用户需求未提出但应该达到的目标;五是软件的使用未能符合用户的习惯和工作环境,难以理解、不易使用、运行速度缓慢。

必须指出的是,在软件开发的生命周期中,由于软件需求规格说明书的不完整性、经常变更性,设计方案的不足,编程人员知识水平、工作经验的不同等因素都会造成软件各个阶段的缺陷(如图2)。因此,软件测试应该贯穿于整个软件开发周期中的各个阶段,只有这样才能确保周期中的每个阶段都经得起考验。

图2 软件工程项目的生存周期

在软件测试过程中,如果运行测试用例的结果与该用例的预期结果不符,则需要先判定缺陷的严重等级。缺陷分级定义如下:

第一级,不能满足系统需求,致使系统不能正常工作。如:程序非正常退出、程序挂起、死机、登录不成功等。

第二级:严重影响系统要求或基本功能的实现,与需求规格说明书、设计规格说明书、操作说明书不相符,并且不存在变通的解决办法。

第三级,严重影响系统要求或基本功能的实现,与需求规格说明书、设计规格说明书、操作说明书不相符,但却存在变通的解决办法(重新安装或重新启动该软件不属于变通的解决办法)。

第四级,不影响满足系统要求或基本功能的实现,但操作不方便、用词不当、窗体控件没有完全显示等其它问题。

当该缺陷的严重等级为第二级以上(包括第二级)时,则此项测试为不通过,并记录实际输出结果。系统测试所产生的测试报告就是测试人员执行测试用例的结果汇总。

2.可靠性(reliability) 在规定的一段时间和条件下,软件产品维持规定的性能水平的能力。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了3个子特性,分别为:成熟性(maturity);容错性(fault tolerance);易恢复性(recoverability)。

在进行软件系统的可靠性测试时,测试人员应主要考察以下四个方面:屏蔽用户操作错误,当程序认为输入错误或输入未经定义时,应视为不允许的输入,不加处理;日志管理,提供操作日志查询和管理的功能;不会导致系统崩溃、异常退出和丢失数据的情况,包括由产品描述中列出的其他程序或用户造成的错误输入,以及用户文档中明确规定的非法指令。 

3.易用性(usability) 在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了3个子特性,分别为:易理解性(understandability);易学性(learnability);易操作性(operability)。

在易理解性方面要考虑:

a)程序的问题、消息和结果是易理解的(如,术语、图形表示、背景信息、帮助信息等);b)出错提示消息必须准确(如解释错误产生的原因和纠正的详细信息等)。

在易浏览性方面要考虑:

a)程序以易观察易读的形式向用户提供信息(如,确认、程序询问、警告、出错消息等);

b)屏幕输入格式,报表和其他输入、输出设计清晰和易于浏览。

在可操作性方面要考虑:对具有严重后果的功能执行是可逆的,或者程序给出该后果的明显警告,并且在执行该命令前要求确认。

4.效率(efficiency) 在规定条件下,相对于所用资源数量,软件产品提供适当性能的能力。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了2个子特性,分别为:时间特性(time behaviour);资源特性(resource behaviour)。

系统的性能覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等。在进行软件系统的性能测试时,我们主要考察以下2个方面:

·负载测试(Load Testing):确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项(如,通过量、响应时间、CPU占用率、内存使用等)。

·压力测试(Stress Testing):通过确定一个系统的瓶颈或者不能接收的性能点,获得系统能提供的最大服务级别。

5.维护性(maintainability) 软件产品可被修改的能力,包括为了适应环境的变化和需求、功能规格说明的变化而对软件进行的修改、改进或更改。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了4个子特性,分别为:易分析性(analysability);易改变性(changeability);稳定性(stability);易测试性(testability)。

在进行软件系统的维护性测试时,我们主要考察以下几个方面:

·易分析性:对于程序异常可以提供错误原因提示信息。

·稳定性:对于局部错误的修改不影响整体程序的运行。

·易测试性:需求变更后的各项功能点可通过测试用例进行测试。

6.可移植性(portability) 软件产品从一种环境迁移到另外一种环境的能力。

ISO/IEC 9126质量模型在该质量特性下,进一步定义了4个子特性,分别为:适应性(adaptability);易安装性(installability);遵循性(conformance);易替换性(replaceability)。

在进行软件系统的可移植性测试时,我们主要考察以下几个方面:

·适应性:系统软件无须为适应不同环境采用特殊方法或手段,即可在指定环境中正常安装、运行。

·易安装性:依据用户安装手册,在指定环境下能成功安装系统软件。

·遵循性:系统软件可以遵循与可移植性有关的标准或约定。

·易替换性:系统软件在不影响原有系统正常运行的情况下,能够正确替换旧系统。

必须指出的是,软件测试是提高软件产品质量的必要条件而非充分条件,它是提高软件产品质量最直接、快捷的手段,但绝不是一种根本手段。


站内搜索
相关文章
◎软件测试是提高软件产品质量的必要条件(1)
◎软件测试:不可忽略的阶段
◎自动化测试的优缺点
◎实施IPD
◎软件项目中测试人员的考核
◎走出软件测试的困境
◎加快回归测试的步伐:累积测试分析和目标测试入门
◎《软件测试艺术》读书笔记(10)_人工测试技术
◎《软件测试艺术》读书笔记(9)_原则解析
◎《软件测试艺术》读书笔记(8)_经济学视角解析
◎《软件测试艺术》读书笔记(7)_心理学视角解析(下)
◎《软件测试艺术》读书笔记(6)_心理学视角解析(中)
◎《软件测试艺术》读书笔记(5)_心理学视角解析(上)
◎如何准备软件工程师的面试
◎《软件测试艺术》读书笔记(4)_初次探究
◎测试职业发展生涯
◎《软件测试艺术》读书笔记(3)_一次自我检测
◎《软件测试艺术》读书笔记(2)_前言
◎《软件测试艺术》读书笔记(1)_引子
◎软件测试的艺术
◎有感于软件测试常识
◎软件测试工程师为何而生?
◎软件测试常见问题——(三)测试流程常见问题
◎软件测试常见问题——(二)测试管理常见问题
◎软件测试常见问题——(一)基础知识部分
◎从程序员到技术领导者
◎面向对象的软件测试与传统测试的比较
◎测试部门经理工作感受(三)
◎测试部门经理工作感受(二)
◎测试部门经理工作感受(一)
◎关于测试的个人总结
◎从微软的今天看软件测试的明天
◎软件测试职业规划(一)
◎用别的眼光去感悟软件测试
◎软件测试与三十六计
◎C++TEST所支持的平台
◎软件测试的前途(一)
◎何时应进行自动化测试?4(原创文章【翻译】)
◎软件测试自动化神话和事实
◎何时应进行自动化测试?3(原创文章【翻译】)
◎给事业刚起步者的九个忠告
◎嵌入式软件测试的十大秘诀
◎何时应进行自动化测试?2(原创文章【翻译】)
◎详解如何选择软件测试职业培训机构
◎何时应进行自动化测试?1(原创文章【翻译】)
◎基于模块化设计的嵌入式软件测试方法
◎基于PB环境下的软件测试
◎用Visual Basic 6.0实现自动化测试
◎主流软件测试工具介绍
◎软件测试人员提高测试效率与测试质量的六大非技术措施
热门文章
◎软件测试工程师面试问题选登
◎一个初级测试工程师的工作总结
◎软件测试常用术语表
◎测试人员面试三步曲
◎DOS命令大全
◎什么样的测试人员是好的测试人员
◎软件测试基本方法
◎好的测试工程师应具备的素质
◎软件测试入门书籍(2)
◎我在软件公司成长的三年
◎面试官最爱问的问题背后真相
◎软件测试工程师面试题
◎应届毕业生少走弯路的十条忠告
◎有关软件测试的术语定义集锦
◎微软的软件测试方法(一)
◎我的测试经历(1)
◎全景记录:软件测试工程师的一天
◎软件测试步骤
◎谈谈对测试职业的看法
◎漫谈软件测试工程师的角色定位
◎测试需要掌握什么
◎软件测试员自身素质培养
◎测试小技巧集锦之一黑盒测试
◎近10年最强的50本计算机图书,您读过几本?
◎软件测试人员职业发展助手
◎测试要点总结
◎如何制定成功的测试计划
◎测试的主要评测方法(1)
◎什么是ERP,通俗版解释
◎测试经验交流
◎软件测试及其支持工具
◎编写优秀Bug报告的艺术
◎软件产品测试标准
◎从程序员到测试工程师
◎微软的软件测试方法(二)
◎软件测试应遵循的八条原则
◎测试版本大全
◎我的测试经历(2)
◎测试人员的挑战
◎网管和黑客都必须知道的命令
◎QA活动的理解与实施
◎Alpha和Beta测试简介
◎网络最经典命令行
◎想编写出优秀技术文档,先学学这四招
◎个人职业生涯规划发展
◎你适合做测试吗?
◎软件测试的误区
◎我的测试经历(3)
◎软件测试的心理学问题
◎软件测试组织与方法

Google提供的广告