zoukankan      html  css  js  c++  java
  • Software Quality Characteristics 软件质量特性

    题记:记得上次Interview时,boss问我对软件质量的理解。我说,对于企业级产品来说是稳定。对于个人级产品来说,就是易用性。boss讲,应该以是不是满足客户需求来衡量软件的质量;今天上午,陪同事去面试,问“你会从哪些方面考虑软件可能存在的缺陷”,同事答道“功能性,易用性”(PS:同事是个新人,刚入行两三个月,能想到易用性,出乎我的意料) --- 这两个问题,一个从正面,一个从反面,考证了一个测试人员对软件质量的理解。想起两周前看的这篇《Software Quality Characteristics》,为了加深自己的理解,献丑翻译一下。

    浏览下面的列表,同时结合你所测试的产品/功能的实际,添加属于你自己的特定条目,构造出一份属于你自己的列表来。

    功能性(Capability).这个产品有没有提供有价值的功能?

    - 完整性(completeness):客户所预期的所有重要功能有没有已经实现。

    - 准确性(Accuracy):产品中的任一输出,计算都是正确的,并以有效数字呈现给用户。

    - 高效性(Efficiency):以一种高效的方式来执行操作(别做那些不希望你做的)。

    - 交互性(Interoperability):产品中的不同特性(功能点)以最佳的方式交互。

    - 并发性(Concurrency):如同其他进程一样,可以并发执行多个任务。

    - 数据不可知(Data agnosticism):支持所有可能的数据格式,并能处理好异常。

    - 可扩展性(Extensibility):客户或其他第三方能够添加新的特性,或则根据自己的需要做定制。

    可靠性(Reliability).确信产品在许多不同的场景下都可以正常使用

    - 稳定性(stability):产品不应该导致系统崩溃,正确处理异常和脚本错误。

    - 健壮性(robustness):产品能够妥善处理那些可预期、不可预期的错误。

    - 压力处理(stress handling):系统是怎么处理那些超出限制的情况。

    - 可恢复性(recoverability):当发生一次致命错误以后,产品是否可恢复、继续使用。

    - 数据完整性(data integrity):产品中的各种数据从始至终都是完整的。

    - 安全性(safety):对于那些有恶意企图的人,是不是可以把它拒之门外。

    - 灾难恢复(disaster recovery):如果最坏,最坏的情况发生了

    - 可信赖(trustworthiness):产品的行为是不是一致的,可预期的,可信赖的。

    易用性(Usability).这个产品很容易上手吗?

    - 功能可见性(affordance):产品吸引人们去发现这个产品可能的功能。

    - 直觉(intuitiveness): 容易理解和解释这个产品可以干些什么。

    - 极简主义(minimalism):产品的内容,或外观没有重复冗余。

    - 易学性(learnability):容易上手,能够快速简单的学习如何使用这个产品。

    - 易记性(memorability):一旦你学习了如何使用某个功能,就不会忘记。

    - 可发现性(discoverability):通过UI上面点点,便能够了解产品信息和功能。

    - 可操作性(operability):一个有经验的使用者可以很快的执行一些常用的操作。

    - 互动性(interactivity):产品的状态易于理解,通过GUI/API能够交互。

    - 可控(control):用户感觉对于程序的整个过程都是可控的。

    - 清晰(clarity):描述清晰,详尽,没有歧义。

    - 错误(errors):提供出错提示,很难出错,一旦出错便能够修复。

    - 一致性(consistency):从始至终产品的行为都是一致的。

    - 程序的剪裁能力(tailorability):默认值和行为能够灵活的修改。

    - 可访问性(accessibility):这个产品能尽可能多的为更多人使用,符合应用程序访问标准。

    - 文档(documentation):提供覆盖功能点的帮助文档。

    魅力(charisma).你的产品有吗

    - 唯一性(uniqueness):产品是否可辨认,有一些别人没有的。

    - 满意度(satisfaction):你用完这个产品后感觉怎样?

    - 专业性(professionalism):产品是否具备专业品质,符合需求。

    - 吸引力(attractiveness):产品的所有方面都很吸引眼球。

    - 好奇心(curiosity):用户是否感兴趣,愿意尝试产品的方方面面。

    - 入迷(entrancement):当使用这个产品时,有没有入迷,全身心投入其中。

    - 大肆宣全(hpye):这个产品有没有使用一些最新的技术、想法

    - 预期(expectancy):产品超出预期,满足了一些你都不知道的需求。

    - 态度(attitude):产品和它的信息以一种正确的态度,语言和你交流。

    - 故事(story):产品的开始,构造,或则使用过程中,有没有一些引人注意的故事。

    安全(security). 产品对于那些不受欢迎的使用是否有足够的保护呢

    - 身份验证(authentication):为用户提供识别

    - 授权(authorization):产品能够处理授权的用户可以看到些什么,做些什么

    - 隐私(privacy):没经授权的用户不能访问数据

    - 安全漏洞(security holes):产品不应该引入社会工程学漏洞

    - 保密(secrecy):产品不应该暴露底层系统的信息。

    - 刀枪不入(invulnerability):能够抵挡得住渗透企图。

    - 病毒免疫(virus-free):不要传播病毒,或则看上去像是在传播病毒。

    - 抵制盗版(piracy resistance):不得非法复制,发布软件,或代码。

    - 合规(compliance):是否符合产品应该遵守的安全规范。

    性能(performance). 你的产品响应够快吗?

    - 功能(capacity):在不同环境下(如,网络环境比较差的时候),产品是否有很多限制。

    - 资源利用率(resource utilization):对于cpu,内存,磁盘,及其他资源的占用是适当的。

    - 响应(responsiveness): 一个操作的响应是可以接受的。

    - 可访问(availability):当应该能访问的时候,就要能访问。

    - 吞吐量(throughput):产品能够处理大数据量。

    - 耐力(endurance): 产品能够长时间运行。

    - 可伸缩性(scalability):横向,纵向拉伸产品,会怎么样

    IT-bility。 产品是否容易安装,维护,售后支持

    - 系统需求(system requirments):在正确的配置下能够运行,同时对于那些缺少组件等不同情况,也能处理。

    - 安装(installability):产品能够安装在特定平台了,并留下痕迹。

    - 升级(ungrades): 在不丢失配置,设定的情况下,升级到新版本。

    - 卸载(uninstallation):当卸载产品时,和产品有关的文件,资源是否都已删除(用户的,或系统的文件除外)。

    - 配置(configuration):安装是否可配,比如安装在不同路径下以适应客户需求。

    - 部署(deployability):能不能由it 部门这对不同用户,环境进行部署

    - 可维护性(maintainablity):产品及其组件是否容易维护,客户支持。

    - 易测(testability):客户是否方便有效地测试已经部署的产品。

    兼容性(compatibility). 产品和其他软件、环境的交互如何

    - 硬件兼容性(hardware compatibility):产品在合适的硬件上可以运行。

    - 操作系统兼容性(operating system compatibility):产品可以在指定操作系统版本上运行,符合典型行为。

    - 应用程序兼容性(application compatibility):产品,及其数据能够和客户常用的一些其他程序共存。

    - 配置兼容性(configuration compatibility):产品的配置和系统其它配置能够融合。

    - 向后兼容性(backward compatibility):当前版本能做的任何之前一个版本能做的事情

    - 向前兼容性(forward compatibility):是否能够应用一些将来版本可能用到的组件,接口?

    - 易于维护(sustainability):如 节省能源,便于开关,省电模式、远程连接

    - 标准一致性(standards conformance):产品遵守应用标准,规章,法律、伦理

    内部软件质量特性

    下面列出的这些特性并不为最终的用户所直接接触,但对于一个成功的产品而言,这些是同等重要的。

    可支持性(supportability):客户的使用过程中的问题是否能够得到支持呢?

    - 标识(identifiers):是否很容易的辨认软件的各个部分、软件版本,或特定的错误。

    - 诊断(diagnostics):无论客户的环境如何,都能够找出产品的配置,日志等细节。

    - 故障排除(troubleshootable):是否能够很容易的定位错误(如,log文件)、获得帮组。

    - 调试(debugging):当需要时,能否观察到软件内部状态。

    - 多用途(versatility):除了当初设计的使用场景,是否还有其他途径使用这个软件。

    可测性(testability):是否容易检查、测试这个产品

    - 可追溯性(traceability):产品以一定格式、一定等级记录产品的行为。

    - 可控性(controllability):能独立的设置状态、对象、变量

    - 可观察性(observability):能够观察被测试的部分。

    - 可监控性(monitorability):产品能给出提示,它现在在干嘛、怎么做的

    - 隔离性(isolateability):能够独立测试各个module.

    - 稳定性(stability):软件的改动是可控的,不会太频繁。

    - 自动化(automation):是否有公开的,或隐藏的借口可用。

    - 信息(information):明确测试人员需要掌握的信息。

    - 可审核性(auditability):产品,及其它产生的文件能够被验证

    可维护性(maintainability).产品是否能以最小的代价维护和扩展

    - 弹性(flexibility):可以根据用户需求来改变产品。

    - 可扩展性(extensibility):在将来是否能够很容易的添加新功能。

    - 简单化(simplicity):代码不要太复杂,测试的设计、执行、评估不要太晦涩。

    - 可读性强(readability):代码的注释要全面,便于阅读和理解。

    - 透明性(transparency):底层结构是否很好理解。

    - 模块化(modularity):代码是否分成几个可管理的部分。

    - 重构(refactorability): 满足单元测试吗

    - 便于分析(analyzability):提供一些线索来发现defects.

    可移植性(portability):把产品迁移到其他软件可行吗

    - 重用(reusability):产品的部分代码是否可以在其他地方使用?

    - 适应性(adaptability):是否能够改变产品以适应不同的环境呢

    - 兼容性(compatibility):产品是否遵守通用接口和官方标准呢

    - 国际化(L18N):是否很容易的翻译这个产品呢

    - 本地化(L10N):产品的所有部分符合特定文化/国家的要求。

    - UI 健壮性(user interface-roustness):翻译完以后,产品的外观是否同样美观。

  • 相关阅读:
    iPhone SDK开发基础之UIPageControl编程
    Ubuntu Linux从初学到精通
    软件架构经验总结
    CMS之图片管理(3)
    如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
    CMS之图片管理(5)
    CMS之图片管理(4)
    iphone4s中cocos2d出现闪屏,花屏的解决方案
    CMS之图片管理(1)
    5 个常用的软件质量指标
  • 原文地址:https://www.cnblogs.com/matt123/p/2574109.html
Copyright © 2011-2022 走看看