软件测试质量的六大特性和27个子特性

时间: 2024-04-15 22:42:45 |   作者: 华体会登入页面

详情


  软件所实现的功能使用户得到满足需求的程度.功能性反映了所开发的软件满足用户称述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。

  2、可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足客户的真实需求正常运行的程度,且反映了在故障发生时能继续运行的程度。3、易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。4、效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外资源;这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。5、可维护性:在一个可运行软件中,为了使用户得到满足需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在客户的真实需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上做相关操作。6、可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。

  软件质量是“软件产品有满足规定的或隐含要求能力有一定的要求有关的特征与特征总和”。根据软件质量国家标准GB-T8566--2001G,软件质量评估通常从对软件质量框架的分析开始。

  1.1软件质量框架模型软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。

  在这个框架模型中,上层是面向管理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。软件质量不仅从该软件外部反映出来的特征来确定,而且必须从其内部所具有的特征来确定。

  第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。软件质量子特征是管理人员和技术人员关于软件质量上的问题的通讯渠道。

  最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供相关依据。1.2软件质量特征

  按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价:

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

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

  易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。

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

  选择合适的指标体系并使其量化是软件测试与评估的关键。评估指标可大致分为定性指标和定量指标两种。理论上讲,为了可以科学客观地反映软件的质量特征,应该尽可能选择定量指标。但是对于大多数软件来说,并不是所有的质量特征都可以用定量指标进行描述,所以不可避免地要采用一定的定性指标。

  即不同于一般软件系统,能够反映评估软件的本质特征,具体表现就是功能性与高可靠性。

  即能够定量表示,能够最终靠数学计算、平台测试、经验统计等方法得到具体数据。

  应该注意的是,选择的评估指标不是越多越好,重点是指标在评估中所起的作用的大小。如果评估时指标太多,不仅增加结果的复杂性,有时甚至会影响评估的客观性。指标的确定一般是采用自顶向下的方法,逐层分解,并且需要在动态过程中反复综合平衡。

  通常,我们在软件的测试与评估时,主要侧重于功能特征、可靠特征、易用特征和效率特征等几个维度。在评价活动的具体实施中,应该把被评估软件的研制任务书作为主要是根据,采用自顶向下逐层分解的方法,并参照有关国家软件质量标准。

  功能性是软件最重要的质量特征之一,可以细化成完备性和正确性。目前对软件的功能性评价主要是采用定性评价方法。

  完备性是与软件功能完整、齐全有关的软件属性。如果软件实际完成的功能少于或不符合研制任务书所规定的明确或隐含的那些功能,则不能说该软件的功能是完备的。

  正确性是与能否得到正确或相符的结果或效果有关的软件属性。软件的正确性在很大程度上与软件模块的工程模型(直接影响辅助计算的精度与辅助决策方案的优劣)和软件编制人员的编程水平有关。

  对这两个子特征的评价依据主要是软件功能性测试的结果,评价标准则是软件实际运行中所表现的功能与规定功能的符合程度。在软件的研制任务书中,明确规定了该软件应该完成的功能,如信息管理、提供辅助决策方案、辅助办公和资源更新等。那么即将进行验收测试的软件就应该具备这些明确或隐含的功能。

  目前,对于软件的功能性测试主要是针对每种功能设计若干典型测试用例,软件测试过程中运行测试用例,然后将得到的结果与已知标准答案作比较。所以,测试用例集的全面性、典型性和权威性是功能性评价的关键。

  根据相关的软件测试与评估要求,可靠性可以细化为成熟性、稳定性、易恢复性等。

  对于软件的可靠性评价主要是采用定量评价方法。即选择正真适合的可靠性度量因子(可靠性参数),然后分析可靠性数据而得到参数具体值,最后进行评价。

  经过对软件可靠性细化分解并参照研制任务书,能够获得软件的可靠性度量因子(可靠性参数)。

  可用度指软件运行后在任一随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率。可用度是对应用软件可靠性的综合(即综合各种运行环境和完成各种任务和功能)度量。

  初期故障率指软件在初期故障期(一般以软件交付给用户后的三个月内为初期故障期)内单位时间的故障数。一般以每100小时的故障数为单位。可以用它来评价交付使用的软件质量与预测何时软件可靠性基本稳定。初期故障率的大小取决于软件设计水平、检查项目数、软件规模、软件调试彻底与否等因素。

  指软件在偶然故障期(一般以软件交付给用户后的四个月以后为偶然故障期)内单位时间的故障数。一般以每1000小时的故障数为单位,它反映了软件处于稳定状态下的质量。

  指软件在相继两次失效之间正常工作的平均统计时间。在实际使用时,MTBF通常是指当n很大时,系统第n次失效与第n+1次失效之间的平均统计时间。对于失效率为常数和系统回到正常状态时间很短的情况下,MTBF与MTTF几乎是相等的。

  国外一般民用软件的MTBF大体在1000小时左右。对于可靠性要求高的软件,则要求在1000~10000小时之间。

  指软件单位源代码中隐藏的缺陷数量。通常以每千行无注解源代码为一个单位。正常的情况下,能够准确的通过同类软件系统的早期版本估计FD的具体值。假如没有早期版本信息,也可根据通常的统计结果来估计。“典型的统计表明,在开发阶段,平均每千行源代码有50~60个缺陷,交付后平均每千行源代码有15~18个缺陷”。

  指软件失效后回到正常状态工作所需的平均统计时间。对于软件,其失效恢复时间为排除一些故障或系统重新再启动所用的时间,而不是对软件本身做修改的时间(因软件已经固化在机器内,修改软件势必涉及重新固化问题,而这样的一个过程的时间是无法确定的)。

  易用性可以细化为易理解性、易学习性和易操作性等。这三个特征主要是针对用户而言的。对软件的易用性评价主要是采用定性评价方法。

  易理解性是与用户认识软件的逻辑概念及其应用场景范围所花的努力有关的软件属性。该特征要求软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。

  易学习性是与用户为学习软件应用(例如运行控制、输入、输出)所花的努力有关的软件属性。该特征要求研制方提供的用户文档(主要是《计算机系统操作员手册》、《软件用户手册》和《软件程序员手册》)内容详细、结构清晰以及语言准确。

  易操作性是与用户为操作和运行控制所花的努力有关的软件属性。该特征要求软件的人机界面友好、界面设计科学合理以及简单易操作等。

  效率特征可以细化成时间特征和资源特征。对软件的效率特征评价采用定量方法。效率特征分解如图2所示。

  输出结果更新周期是软件相邻两次输出结果的间隔时间。为了总系统能够协调工作,软件的输出结果更新周期应该与系统的信息更新周期相同。

  处理时间是软件完成某项功能(辅助计算或辅助决策)所用的处理时间(注意:不应包含人机交互的时间)。

  吞吐率是单位时间软件的信息处理能力(即各种目标的处理批数)。未来的社会情况复杂、信息众多,软件一定要有处理海量数据的能力。吞吐率就是体现该能力的参数。随信息的泛滥,要求软件的吞吐率应该达到数百批。d.代码规模

  代码规模是软件源程序的行数(不包括注释),属于软件的静态属性。软件的代码规模过大不仅要占用过多的硬盘存储空间,而且显得程序不简洁、结构不清晰,容易存在缺陷。

  因为这些参数属于软件的内部表现,所以要用专门的测试工具和特殊的途径才能够得到。将测试数据与研制任务书中的指标作比较,得到的结果能作为效率特征评价的依据。

  随着计算机技术、数据融合技术、网络技术和通信技术的快速的提升,对软件功能提出的要求也慢慢变得高,如何评估软件质量已成为一个迫切地需要解决的课题。选择正真适合的指标体系并使其量化是做好软件质量评估的关键。当然,由于软件的评估具有其特有的规范和要求,其评估指标涉及面广、不确定性因素较多、量化困难,至今还没有统一的标准。

  我们相信,通过建立科学合理的软件质量评估指标体系,充分考虑到软件的特殊性,借鉴其他学科的质量评估理论,是可以全面真实客观地评估软件质量的。

  我们测试过程中,常常遇到提交的bug单,开发定位时发现无法定位,或者我们自己发现了bug,想截图或者复制日志时,发现无法复现了,针对这一些状况,本文将总结一些bug复现的思路,供参考。1、重复执行仔细回忆测试时的执行步骤,尽量还原所有步骤,不要漏掉任何一个细节,故障可能是特定的执行顺序导致;仔细回忆测试时的所有配置,是否是特定的配置导致的故障?2、 是否网络问题?对于前后端交互类的bug,若无法复现,要充分怀疑是否是网络不良导致的问题,可拔出网线试验一下,看能否复现。3、是否特定数据造成?可以回忆当时测试时上传的附件是什么?是否做了什么特殊输入,如特殊字符,特别长的字符等。4、是否自己测试机器...

  功能测试1、不说话的时候发送语音, 是否会有相关的信息提示。2、说话分贝很轻很轻, 是不是能够录入语言。3、普通的语音信息是不是能够正常发送。4、语音录制的时候是否有时间限制(最短限制 / 最长限制)。5、录制时间不足最短时长限制会发送失败。6、超出了最长时间限制时, 语音自动保存并发送。7、语音识别。 · 是不是能够录入中文, 英文, 日语… ·是不是能够录入小动物的声音: 狗叫, 猫叫, 羊叫… ·是不是能够录入其他声音: 汽笛, 施工声…8、是不是能够取消语...

  在软件测试行业,尤其是今年疫情的发生,想要在这个行业站稳脚跟,有着扎实的技术是很重要的,今天小编要为大家介绍的内容就是软件测试工程师如何提高个人?希望可以给大家带来帮助。软件测试工程师如何提高个人?熟练掌握IT核心技术:编程、数据库。先熟悉c++,然后慢慢运用起来,然后学习Python编程基础,在测试中所处的环境和对象就是程序,在测试中运用一些程序命令让我们完成一些繁琐、枯燥、重复的简单工作,可以越来越好更快的找到bug,而且不容易出错,提高了效率,节省了时间。虽然编程不是一个程序测试人员一定具备的能力,但是追求更高效有效率的软件测试是测试人员提高水平的动力之一。学习数据库可以方便使用测试管理...

  2017年8月开始接手做持续集成平台的工作,该平台包含打包发布,每日构建,稳定测试。做这个的初衷是为了可以提早的暴露出问题,同时使开发在打包上尽可能少出错,提高效率。首先收集现状,源码管理混乱,底层打包空间共用,apk打包在本地,没有稳定性测试,专项测试。需求整理,需要做源码管理,分离底层共用的空间,打包统一使用服务器打包,增加自动化测试,稳定性测试,专项测试。下面说下我们的每日构建跟稳定性测试:客户端每日构建1.1、单元测试单元测试主要是由开发负责编写的,还在于开发对产品更加的了解,同时测试开发团队人太少了,要做的事情好多,优先做其他的。关于框架选择,最初想要使用的方案是robolect...

  轻松理解ES(elasticsearch)搜索引擎(图)——软件测试圈

  我们在开发测试过程中是不是常常会因为查询效率低下而感到苦恼?把数据都存在数据库中,通过建立索引能大大的提升数据查询效率,但是如果我们查找的数据索引无法生效,数据库一条一条的判断效率又得不到提升。这里我们给大家介绍一种能够在大数据量下提高查询效率的方法ES(elasticsearch)搜索引擎,接下来我们从什么是搜索、普通搜索面临的问题和ES怎么样才能解决这样一些问题这几个方面,让大家快速理解ES搜索引擎。什么是搜索简单的说搜索就是我们在搜索框输入关键词,查找哪些网页包含对应的关键词的过程。例如:用户在搜索框输入一个词,客户端软件发送一个请求到后台,后台通过sql语句从数据库中找出相关...

  建议使用IE 11.0以上浏览器,800×600以上分辨率,法律顾问:上海兰迪律师事务所 项棋律师