McCall提出的软件质量特性都有哪些?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了McCall提出的软件质量特性都有哪些?相关的知识,希望对你有一定的参考价值。
1、正确性:系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。
2、健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。
3、效率:为了完成预定的功能,系统需要的计算资源的多少。
4、完整性:对未经授权的人使用软件或数据的企图,系统能够控制(禁止)的程度。
5、可用性:系统在完成预定应该完成的功能时令人满意的程度。
6、风险:按预定的成本和进度把系统开发出来,并且为用户所满意的概率。
7、可理解性:理解和使用该系统的容易程度。
8、可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。
9、灵活性:修改或改进正在运行的系统需要的工作量的多少。
10、可测试性:软件容易测试的程度。
11、可移植性:把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量多少。
12、可再用性:在其他应用中该程序可以被再次使用的程度。
13、互运行性:把该系统和另一个系统结合起来需要的工作量的多少。
扩展资料:
一个软件可以正确地运行在不同环境下,则认为软件可移植性高,也可以叫软件在不同平台下是健壮的。
一个软件能够检测自己内部的设计或者编码错误,并得到正确的执行结果,这是软件的正确性标准,但是也可以说,软件有内部的保护机制,是模块级健壮的。
软件健壮性是一个比较模糊的概念,但是却是非常重要的软件外部量度标准。软件设计的健壮与否直接反应了分析设计和编码人员的水平。即所谓的高手写的程序不容易死。
参考资料来源:
百度百科——软件质量
百度百科——健壮性
参考技术A McCall认为软件质量由12个特性组成,分别面向软件产品的运行、修正、转移。(1) 产品运行:正确性、可靠性、可使用性、效率、完整性、安全性。
(2) 产品修正:可维护性、可测试性、灵活性。
(3) 产品转移:互连性、可移植性、复用性。本回答被提问者采纳 参考技术B
1、正确性:系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。
2、健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。
3、效率:为了完成预定的功能,系统需要的计算资源的多少。
4、完整性:对未经授权的人使用软件或数据的企图,系统能够控制(禁止)的程度。
5、可用性:系统在完成预定应该完成的功能时令人满意的程度。
6、风险:按预定的成本和进度把系统开发出来,并且为用户所满意的概率。
7、可理解性:理解和使用该系统的容易程度。
8、可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。
9、灵活性:修改或改进正在运行的系统需要的工作量的多少。
10、可测试性:软件容易测试的程度。
11、可移植性:把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量多少。
12、可再用性:在其他应用中该程序可以被再次使用的程度。
13、互运行性:把该系统和另一个系统结合起来需要的工作量的多少。
/iknow-pic.cdn.bcebos.com/562c11dfa9ec8a13536689f0f803918fa0ecc0a6"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/562c11dfa9ec8a13536689f0f803918fa0ecc0a6?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"/>
扩展资料:
一个软件可以正确地运行在不同环境下,则认为软件可移植性高,也可以叫软件在不同平台下是健壮的。
一个软件能够检测自己内部的设计或者编码错误,并得到正确的执行结果,这是软件的正确性标准,但是也可以说,软件有内部的保护机制,是模块级健壮的。
软件健壮性是一个比较模糊的概念,但是却是非常重要的软件外部量度标准。软件设计的健壮与否直接反应了分析设计和编码人员的水平。即所谓的高手写的程序不容易死。
参考资料来源:
/baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F"target="_blank"title="只支持选中一个链接时生效">百度百科——软件质量
/baike.baidu.com/item/%E5%81%A5%E5%A3%AE%E6%80%A7"target="_blank"title="只支持选中一个链接时生效">百度百科——健壮性
- 官方服务
- 官方网站官方网站
2) 健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。
3) 效率:为了完成预定的功能,系统需要的计算资源的多少。
4) 完整性:对非法使用软件或数据,系统能够控制(禁止)的程度。
5) 可用性:对系统在完成预定的功能的满意程度。
6) 风险:能否按照预定的成本和进度完成系统看法,并为用户所满意的程度。
7) 可理解性:理解和使用该系统的容易程度。
8) 可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。
9) 灵活性:修改或改进正在运行的系统需要的工作量的多少。
10) 可测试性:软件易测试的程度。
11) 可移植性:改变系统的软、硬件环境及配置,需要的工作量多少。
12) 可重用性:软件在其它系统中可被再次使用的程度(或范围)。
13) 互运行性:把该系统与另一个系统结合起来所需工作量。
速记口诀:正健笑完可疯,理修灵测,移重互。
资料来源
《软件工程-方法与实践》(第二版) p256 作者:许家珆
软件测试的目标和准则是啥?都有哪些测试方法?测试步骤都有哪些
软件测试的目的;在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。
准则:对计算机软件进行测试前,首先需遵循软件测试原则,即不完全原则的遵守。不完全原则即为若测试不完全、测试过程中涉及免疫性原则的部分较多,可对软件测试起到一定帮助。
因软件测试因此类因素具有一定程度的免疫性,测试人员能够完成的测试内容与其免疫性成正比,若想使软件测试更为流畅、测试效果更为有效,首先需遵循此类原则,将此类原则贯穿整个开发流程,不断进行测试,而并非一次性全程测试。
测试方法:
1、静态测试方法
软件代码的静态分析测验,此类过程中应用数据较少,主要过程为通过软件的静态性测试(即人工推断或计算机辅助测试)测试程序中运算方式、算法的正确性,进而完成测试过程,此类测试的优点在于能够消耗较短时间、较少资源完成对软件、软件代码的测试,能够较为明显地发现此类代码中出现的错误。
2、动态测试
计算机动态测试的主要目的为检测软件运行中出现的问题,较静态测试方式相比,其被称为动态的原因即为其测试方式主要依赖程序的运用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。
3、黑盒测试
通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便出入较小亦证明软件程序内部出现问题,需尽快解决。
4、白盒测试
白盒测试相对于黑盒测试而言具有一定透明性,原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。
扩展资料
软件测试工具
开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis zentaopms。
开源功能自动化测试工具:Watir、Selenium [1] 、MaxQ、WebInject。
开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator。
其他测试工具与框架:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。
禅道测试管理工具:功能比较全面的测试管理工具,功能涵盖软件研发的全部生命周期,为软件测试和产品研发提供一体化的解决方案。是一款优秀的国产开源测试管理工具。
Quality Center:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
QuickTest Professional:用于创建功能和回归测试。
LoadRunner:预测系统行为和性能的负载测试工具。
国内免费软件测试工具有:AutoRunner和TestCenter。
参考资料来源:百度百科-软件测试技术
参考资料来源:百度百科-软件测试
参考技术A软件测试就是利用测试工具、方案、流程对软件进行功能和性能测试,测试的目的就是发现问题、提出问题、更踪问题。但是测试的目的不仅仅是发现问题更多的是需要:
1. 证明我们做的软件是符合大众、客户要求的。
2. 测试和设计息息相关,跟着设计做测试,测试也需要软件是否和设计的想法一致。
3.保证软件能够正常无误的运行。
测试方法总结
对于软件测试的流程大概总结了几个基本步骤,测试的文档最好是尽量多,多加一些自己的特色和想法,这样相比于其他文章自己的也更有卖点和优势。
1. 需求:做测试是要跟着测试的文案方向走,这是最重要的,根据需求做测试。
2. 测试的安排计划:测试的时间、地点、资源、人员等竟可能的写全面。
3. 测试用例:测试可以分布的来测试这样更有条理性,主要可以分为单元测试、集成测试、系统测试、验收测试。
4. 测试问题规划:把问题、bug等问题出来,给相关的人员提出问题。
5. 跟进问题:实时更新问题是否解决。
6. 找不同的人测试软件,并把他们的的体验做成报告,充分体现软件的性能、特点、市场、问题等方面的信息。
参考技术B 具体地讲,测试一般要达到下列目标:1、确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明------在某种意义上与ISO9001是同一种思想。
产品缺少明确的书面文档,是厂商一种短期行为的表现,也是一种不负责任的表现。所谓短期行为,是指缺少明确的书面文档既不利于产品最后的顺利交付,容易与用户发生矛盾,影响厂商的声誉和将来与用户的合作关系;同时也不利于产品的后期维护,也使厂商支出超额的用户培训和技术支持费用。从长期利益看,这是很不划算的。领测认为接触过的软件产品,很少有向方正这样大大的产品、薄薄的文档。
当然,书面文档的编写和维护工作对于使用快速原型法(RAD)开发的项目是最为重要的、最为困难,也是最容易被忽略的。
最后,书面文档的不健全甚至不正确,也是测试工作中遇到的最大和最头痛的问题,它的直接后果是测试效率低下、测试目标不明确、测试范围不充分,从而导致最终测试的作用不能充分发挥、测试效果不理想。
2、 确保产品满足性能和效率的要求
使用起来系统运行效率低(性能低)、或用户界面不友好、用户操作不方便(效率低)的产品不能说是一个有竞争力的产品。
用户最关心的不是你的技术有多先进、功能有多强大,而是他能从这些技术、这些功能中得到多少好处。也就是说,用户关心的是他能从中取出多少,而不是你已经放进去多少。
3、 确保产品是健壮的和适应用户环境的
健壮性即稳定性,是产品质量的基本要求,尤其对于一个用于事务关键或时间关键的工作环境中。
另外就是不能假设用户的环境(某些项目可能除外),如:报业用户许多配置是比较低的,而且是和某些第三方产品同时使用的。
测试的原则---Good Enough
对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough是我们的原则。
Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的, 什么样的测试是过分的。目前状况唯一可用的答案是:制定最低测试通过标准和测试内容,然后具体问题具体分析。最明显的例子就是FIT3.0中文报版的产品测试。
测试的规律----木桶原理和80-20原则
1、木桶原理。
在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。
2、 Bug的80-20原则。
一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug,而系统测试又能找出其余Bug中的80%,最后的5%的Bug可能只有在用户的大范围、长时间使用后才会曝露出来。因为测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。
软件测试的方法:
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box testing):只关心输入和输出的结果
(2)白盒测试(white-box testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing)
界面测试(UI testing)UI=User Interface
易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
5、其他测试类型:
回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)
软件测试包括的步骤:
1.制定测试计划;
2.设计测试用例、
3.实施测试(首先要搭建测试用环境)、
4.管理测试时发现的BUG、
5.测试完后(测试完,并且发现的BUG修正完)
6.要做测试报告(这样,该测试过程就算结束了,每种类型(单元测试、集成测试、系统测试、验证测试)的测试都是如此);本回答被提问者采纳 参考技术C 软件测试产生发展已达 40 多年,经过长期地实践,总结归纳出了一些基本 的测试原理与测试特性准则,并被业界普遍接受和遵循,对测试的设计、执行和 管理均具有工程的指导意义。
原理 1:测试可以证明缺陷存在,但不能证明缺陷不存在
测试可以证明软件系统(产品)是失败的,即说明软件中有缺陷。但测试不 能证明软件中没有缺陷。适当的软件测试可以减少测试对象中的隐藏缺陷。即使 在测试中没有发现失效,也不能证明其没有缺陷。
原理 2:穷尽测试是不可能的
测试若考虑所有可能的输入值及其组合,并结合所有的前置条件进行穷尽测 试是不可能的。实际测试过程中,对软件测试基本上是抽样测试。因此,必须根 据风险和优先级,控制测试工作量。
原理 3:测试活动应尽早开始
在软件生命周期中,测试活动应尽早实施,,并聚焦于定义的目标上,这样 可以尽早的发现缺陷。
原理 4:缺陷集群性
在通常情况下,缺陷并不是平均而是集群分布的,大多数的缺陷只存在于测 试对象的极小部分中。因此,如在一个地方发现了较多缺陷,通常在附近会有更 多的缺陷,这就是所谓的缺陷集群性,也就经常所说的‘8/2 现象’,80%的缺 陷集中在 20%的程序模块中。因此,在测试中,应机动灵活地应用这个原理。
原理 5:杀虫剂悖论
若同样的测试用例被一再重复执行,则会减少测试的有效性。先前没有发现的缺陷反复使用同样的测试用例也不会被重新发现。因此,为了维护测试的有效 性,战胜这种“抗药性”,应对测试用例进行修正或更新。这样软件中未被测试 过的部分或先前没有被使用过的输入组合会被重新执行,从而发现更多的缺陷。
原理 6:测试依赖于测试内容
测试必须与应用系统的运行环境及使用中固有的风险相适应。因此,没有两个系统可以完全相同的方式进行测试。对于每个软件系统,测试出口准则等应依据其使用的环境分别量体定制。例如,对安全起关键作用的系统与一个电商应用系统所要求的测试是不尽相同的。
原理 7:没有失效就是有用的系统是一种谬论
测试找到了导致失效的 Bug、并修正了缺陷,并不能保证整个系统达到了用 户的预期要求和需要。因此说,没有发现失效就是有用的系统是一种谬论。 参考技术D 终目标是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付之前发现并改正。
确保软件完成了它所承诺或公布的功能
确保软件满足了性能的要求
确保软件是健壮的和适应用户环境的
为软件的质量评估提供依据
为软件质量改进和管理提供帮助
软件测试有以下目标:
发现缺陷
获取信心和提供信息
防止缺陷
软件测试方法是指测试软件的方法。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
用户界面测试,英文是User interface testing。又称UI测试。用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。
如果想转行软件测试的话也可以来啄木鸟学院了解。
以上是关于McCall提出的软件质量特性都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章