如何规范某些软件质量特性的可测量性
|
问题描述:我们在测试过程中是不是发现无法给一些质量特性进行评估,比如:可移植性,美观,可维护性,易用性等。没有准确的给他们定一个标准,达到怎样就通过测试。那么如何规范这些软件质量特性的可测量性呢?欢迎大家讨论。 精彩答案: 一、质量属性 许多产品特性可以称为质量属性,但是在许多系统中需要认真考虑的仅是其中的一小部分。如果开发者知道哪些特性对项目的成功至关重要,那么他们就能选择软件工程方法来达到特定的质量目标,根据不同的设计可以把质量属性分类。一种属性分类的方法是把在运行时可识别的特性与那些不可识别的特性区分开。另一种方法是把对用户很重要的可见特性与对开发者和维护者很重要的不可见特性区分开。那些对开发者具有重要意义的属性使产品易于更改、验证,并易于移植到新的平台上,从而可以间接地满足客户的需要。 对用户最重要的属性 对开发者最重要的属性
有效性 可维护性
高效性 可移植性
灵活性 可重用性
完整性 可测试性
互操作性
可靠性
健壮性
可用性 产品的不同部分与所期望的质量特性有着不同的组合。高效性可能对某些部分是很重要的,而可用性对其它部分则很重要。把应用于整个产品的质量特性与特定某些部分、某些用户类或特殊使用环境的质量属性要区分开。 定义质量属性必须根据用户对系统的期望来确定。定量地确定重要属性提供了对用户期望的清晰理解,这将有助于设计者提出最合理的解决方案。 二、对用户重要的属性 1、有效性 有效性指的是在预定的启动时间中,系统真正可用并且完全运行时间所占的百分比。更正式地说,有效性等于系统的平均故障时间除以平均故障时间与故障修复时间之和。有些任务比起其它任务具有更严格的时间要求,此时,当用户要执行一个任务但系统在那一时刻不可用时,用户会感到很沮丧。询问用户需要多高的有效性,并且是否在任何时间,对满足业务或安全目标有效性都是必须的。一个有效性需求可能这样说明:“工作日期间,在当地时间早上6点到午夜,系统的有效性至少达到95%,在下午4点到6点,系统的有效性至少可达到98%。 2、效率 效率是用来衡量系统如何优化处理器、磁盘空间或通信带宽的。如果系统用完了所有可用的资源,那么用户遇到的将是性能的下降,这是效率降低的一个表现。拙劣的系统性能可激怒等待数据库查询结果的用户,或者可能对系统安全性造成威胁,就像一个实时处理系统超负荷一样。为了在不可预料的条件下允许安全缓冲,你可以这样定义:“在预计的高峰负载条件下,10%处理器能力和15%系统可用内存必须留出备用。”在定义性能、能力和效率目标时,考虑硬件的最小配置是很重要的。 3、灵活性 就像我们所知道的可扩充性、增加性、可延伸性和可扩展性一样,灵活性表明了在产品中增加新功能时所需工作量的大小。如果开发者预料到系统的扩展性,那么他们可以选择合适的方法来最大限度地增大系统的灵活性。灵活性对于通过一系列连续的发行版本,并采用渐增型和重复型方式开发的产品是很重要的。灵活性目标可以是如下设定的:“一个至少具有6个月产品支持经验的软件维护程序员可以在一个小时之内为系统添加一个新的可支持硬拷贝的输出设备。” 4、完整性 完整性主要涉及:防止非法访问系统功能、防止数据丢失、防止病毒入侵并防止私人数据进入系统。完整性对于通过www执行的软件已成为一个重要的议题。电子商务系统的用户关心的是保护信用卡信息,web的浏览者不愿意那些私人信息或他们所访问过的站点记录被非法使用。完整性的需求不能犯任何错误,即数据和访问必须通过特定的方法完全保护起来。用明确的术语陈述完整性的需求,如身份验证、用户特权级别、访问约束或者需要保护的精确数据。一个完整性的需求样本可以这样描述:“只有拥有查账员访问特权的用户才可以查看客户交易历史。” 5、互操作性 互操作性表明了产品与其它系统交换数据和服务的难易程度。为了评估互操作性是否达到要求的程度,你必须知道用户使用其它哪一种应用程序与你的产品相连接,还要知道他们要交换什么数据。如wps可以写下这样的互操作性需求:“wps可以导入office生成的doc后缀的文件,亦可以导出同类格式的文档” 6、可靠性 可靠性是软件无故障执行一段时间的概率。健壮性和有效性有时可看成是可靠性的一部分。衡量软件可靠性的方法包括正确执行操作所占的比例,在发现新缺陷之前系统运行的时间长度和缺陷出现的密度。根据如果发生故障对系统有多大影响和对于最大的可靠性的费用是否合理,来定量地确定可靠性需求。如果软件满足了它的可靠性需求,那么即使该软件还存在缺陷,也可认为达到其可靠性目标。要求高可靠性的系统也是为高可测试性系统设计的。例如银行的支付系统,这些设备全天工作并且要求数据的完整和安全。用户要求真正与支付的那部分软件要高可靠性,而其它系统功能,例如周期性地统计交易数据,则对可靠性要求不高。对于该系统的一个可靠性需求说明如下:“由于软件失效引起交易失败的概率应不超过1‰”。 7、健壮性 健壮性指的是当系统或其组成部分遇到非法输入数据、相关软件或硬件组成部分的缺陷或异常的操作情况时,能继续正确运行功能的程度。健壮的软件可以从发生问题的环境中完好地恢复并且可容忍用户的错误。当从用户那里获取健壮性的目标时,询问系统可能遇到的错误条件并且要了解用户想让系统如何响应。举个图形引擎的例子,该图形引擎具有描述图形规划的数据文件,并且把这一规划传送到指定的输出设备上。许多需要产生规划的应用程序就要请求调用图形引擎。由于在图形引擎中,我们将无法控制这些应用程序的数据,所以此时健壮性就成为必不可少的质量属性。我们的一个健壮性需求是这样说明的:“所有的规划参数都要指定一个缺省值,当输入数据丢失或无效时,就使用缺省值数据。”这个例子反映了对一个“用户”是另一个软件应用程序的产品,其健壮性设计的方法。 8、可用性 可用性也称为“易用性”和“人类工程”,它所描述的是许多组成“用户友好”的因素。可用性衡量准备输入、操作和理解产品输出所花费的努力。你必须权衡易用性和学习如何操纵产品的简易性。“CMS备货管理系统”的分析员询问用户这样的问题:“你能快速、简单地请求某商品备货并浏览其它信息,这对你有多重要?”和“你请求某一种商品备货到出库大概需花多少时间?”对于定义使软件易于使用的许多特性而言,这只是一个简单的起点。对于可用性的讨论可以得出可测量的目标,例如“一个培训过的用户应该可以在平均3分钟或最多5分钟时间以内,完成从目录表中请求一种商品备货到出库的操作。”同样,调查新系统是否一定要与任何用户界面标准或常规的相符合,或者其用户界面是否一定要与其它常用系统的用户界面相一致。这里有一个可用性需求的例子:“在文件菜单中的所有功能都必须定义快捷键,该快捷键是由Ctrl键和其它键组合实现的。出现在MicrosoftWord2000中的菜单命令必须与Word使用相同的快捷键”。可用性还包括对于新用户或不常使用产品的用户在学习使用产品时的简易程度。易学程度的目标可以经常定量地测量,例如,“一个新用户用不到30分钟时间适应环境后,就应该可以对一个商品进行备货出库处理”,或者“新的操作员在一天的培训学习之后,就应该可以正确执行他们所要求的任务的95%”。当你定义可用性或可学性的需求时,应考虑到在判断产品是否达到需求而对产品进行测试的费用。
信息发布:广州名易软件有限公司 http://www.myidp.net
|
|
|