可测试性需求
- 格式:doc
- 大小:133.00 KB
- 文档页数:33
软件测试中的可维护性与可测试性在当今数字化的时代,软件已经成为了我们生活和工作中不可或缺的一部分。
从智能手机上的各种应用程序,到企业中复杂的业务系统,软件的质量和可靠性对于用户的体验和业务的成功至关重要。
而软件测试作为保证软件质量的重要手段,其中的可维护性与可测试性是两个关键的概念。
首先,我们来谈谈可维护性。
简单来说,可维护性就是指软件在其生命周期中易于修改、完善和扩展的能力。
想象一下,如果一个软件在出现问题或者需要添加新功能时,开发人员需要花费大量的时间和精力去理解和修改复杂的代码结构,那么这个软件的可维护性就很差。
相反,如果代码结构清晰、文档齐全,开发人员能够轻松地进行修改和扩展,那么这个软件的可维护性就很好。
那么,可维护性对于软件测试有什么重要意义呢?一个具有良好可维护性的软件能够大大降低测试的成本和风险。
当软件需要进行修改时,如果可维护性好,测试人员可以更容易地确定哪些部分的测试用例需要更新,哪些部分可能会受到影响。
这样可以提高测试的效率,减少测试的遗漏,从而保证软件的质量。
为了提高软件的可维护性,开发人员需要遵循一些良好的编程实践和设计原则。
比如,采用模块化的设计,将软件的功能分解为独立的模块,每个模块具有明确的职责和接口。
这样,当需要修改某个功能时,只需要关注对应的模块,而不会影响到整个系统。
另外,编写清晰、规范的代码注释和文档也是非常重要的。
注释可以帮助开发人员和测试人员更好地理解代码的逻辑和功能,文档则可以提供关于软件架构、设计和使用方法的详细信息。
接下来,我们再看看可测试性。
可测试性是指软件能够被有效地进行测试的能力。
这包括能够方便地对软件进行输入、观察输出、控制软件的执行过程以及判断测试结果的正确性等方面。
如果一个软件难以进行测试,那么就很难发现其中的缺陷和问题,从而影响软件的质量。
可测试性对于软件测试的重要性不言而喻。
一个具有良好可测试性的软件能够让测试人员更高效地设计和执行测试用例,更快地发现软件中的问题。
软件可测试性需求设计一、引言1、目的提高软件的可测试性,加快测试进度,提高测试效率。
2、范围描述的范围主要是可测性设计的特征,考虑方向及设计方法。
3、读者对象系统分析员、设计人员、开发人员。
二、测试所需文档1、需求规格说明书2、概要设计说明书3、详细设计说明书4、系统功能清单5、系统运行环境搭建指导书6、系统操作指导书三、可测试性设计需求可测试性主要是指被测实体具有如下特征:可控制性、可分解性、稳定性、易理解性、可观察性,该特征的主要要表现是设立观察点、控制点、观察装置。
需要注意的是可测性设计时必须要保证不能对软件系统的任何功能有影响,不能产生附加的活动或者附加的测试。
1、可控制性设计需求1)全局变量的可控制性设计需求在外界使用适当的手段能够直接或间接控制该变量,包括获取、修改变量值等。
可以将全局类型的变量进行分类并封装到一个个接口中操作。
2)接口的可控制性设计需求各接口在外界使用适当的手段能够直接调用对该接口进行操作,这里所谓的适当的手段主要包括使用测试工具和增加额外代码。
对于向外提供的接口的接洽处能够人为的对接,比如构造测试环境模拟接口对接,这里所指的开放接口主要是指相对于被测系统,即为被测系统外提供的接口。
接口接洽处人为对接时各接口所要求的条件和所需的参数人为的能够轻易达到和提供。
3)模块的可控制性设计需求对于每个相对独立的模块设计好所需要的驱动和桩都能单独设计用例进行测试对应的功能,在测试运行期间模块异常时能够将其隔离而不影响测试。
4)业务流程的可控制性设计需求在测试环境满足的情况下能够控制任一单独业务流程,各业务流程具有流通性。
5)场景的可测性设计需求将一场景所涉及到的业务和接口整合到一个统一的接口使其能够单独操作该场景。
2、可分解性设计需求1)业务流程的可分解性设计需求对于复杂的业务流程需合理设定分解点,在测试时能够对其进行分解。
2)场景的可测性设计需求对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。
IPD_术语⼿册⼤全保密等级:绝密机密控制公开IPD术语⼿册编写⼈:XXX/YY.MM.DD审核⼈:XXX/YY.MM.DD/YY.MM.DD/YY.MM.DD批准⼈:XXX/YY.MM.DDYYYY-MM-DD发布YYYY-MM-DD实施发布⽬录1.0 IPD体系 (8)1.1 集成产品开发IPD (8)1.2 异步开发 (8)1.3 公⽤基础模块CBB (8)1.4 跨部门团队 (8)1.5 结构化流程 (8)1.6 项⽬管理 (8)1.7 管道管理 (9)1.8 客户需求分析 (9)1.9 投资组合分析 (9)2.0 PDT (9)2.1.1 IPMT (9)2.1.2 PDT (9)2.2 Charter (9)2.3 业务计划 (9)2.4 端到端的项⽬计划 (9)2.5 ⼯作分解结构WBS (9)2.6 WBS1/2/3/4级计划 (9)2.6.1 WBS1级计划 (9)2.6.2 WBS2级计划 (9)2.6.3 WBS3级计划 (10)2.6.4 WBS4级计划 (10)2.7 Charter............................................................ 错误!未定义书签。
2.8 PDT⾓⾊ (10)2.8.1 LPDT (10)2.8.2 FPDT (10)2.8.3 RDPDT (10)2.8.4 CSPDT (10)2.8.5 MNFPDT (11)2.8.6 PROPDT (11)2.8.7 MKTPDT (11)2.8.8 PQA (11)2.8.9 POP (11)2.8.10 SE (11)2.8.11 EE (11)2.8.12 SWE (11)2.8.13 ME (11)2.8.14 IDE (12)2.8.16 CSS (12)2.8.17 PP (12)2.8.18 AME (12)2.8.19 PRO (12)2.8.20 MAKE (12)2.8.21 S (12)2.8.22 LLMT (12)2.8.23引导者 (13)3.0 IPMT业务领域术语 (13)3.1 决策评审点 (13)3.2 概念决策评审CDCP (13)3.3 计划决策评审PDCP (13)3.4 可获得性评审ADCP (13)3.5 ⽣命周期终⽌决策评审EOL DCP (13)4.0 财务业务领域术语 (13)4.1 产品成本 (13)4.2 产品⽑利率 (13)4.3 项⽬开发费⽤ (13)4.4 投资回收期 (13)4.5 净现值 (14)4.6 现值指数 (14)4.7 内含报酬率 (14)4.8 投资报酬率 (14)5.0 开发业务领域术语 (14) 5.1 SE (14)5.1.1产品包 (14)5.1.2产品包概念 (14)5.1.3产品包需求 (14)5.1.4易⽤性需求 (14)5.1.5 RAS需求 (14)5.1.6设计需求 (14)5.1.7需求分解 (14)5.1.8需求分配 (15)5.1.9 Build (15)5.1.10产品包需求跟踪矩阵 (15) 5.1.11产品数据结构 (15)5.1.12基线化 (15)5.2硬件业务领域术语 (15)5.2.1基本逻辑 (15)5.2.2⼤规模逻辑 (15)5.2.3硬件概要设计 (15)5.2.4硬件详细设计 (15)5.2.5 EMC (15)5.2.7可制造性设计 (16)5.2.8可靠性设计 (16)5.3软件业务领域术语 (16)5.3.1⽤户(User) (16)5.3.2需求 (16)5.3.3软件需求 (16)5.3.4业务需求 (16)5.3.5⽤户需求 (16)5.3.6功能需求 (17)5.3.7⾮功能需求 (17)5.3.8需求分析 (17)5.3.9软件需求规格说明 (17) 5.3.10统⼀建模语⾔UML (17)5.3.11⽤例图(use case) (17)5.3.12 IPO图 (17)5.3.13实体关系图(E - R图) (17)5.3.14数据流图 (18)5.3.15状态转换图 (18)5.3.16序列图 (18)5.3.17数据字典(data dictionary) (19)5.3.18软件缺陷(bug) (19)5.4结构业务领域术语 (19)5.4.1结构件 (19)5.4.2定制结构件 (19)5.4.3标准件 (20)5.4.4外部电缆 (20)5.4.5线组件 (20)5.4.6 UCD(以⽤户为中⼼的设计) (20) 5.4.7⼯业设计 (20)5.4.8⼿板 (20)5.4.9塑料模具(简称塑模) (20)5.4.10冷冲裁、冲压模具(简称冷冲模) (20) 5.5 TE (20)5.5.1可测试性需求 (20)5.5.2可测试性 (20)5.5.3测试计划 (20)5.5.4测试报告 (20)5.5.5 SDV (20)5.5.6 SIT (21)5.5.7 SVT&SVT2 (21)5.5.8 Beta测试 (21)5.5.9实验局 (21)5.5.10回归测试 (21)5.5.12测试⽅案 (21)5.5.13测试⼯具 (21)5.5.14测试环境 (21)5.5.15⼊⽹测试 (21)5.5.16检验报告 (21)5.5.17⼊⽹证 (21)6.0 制造业务领域术语 (21)6.1 可制造性/制造可测试性 (22)6.2 制造策略 (22)6.3 制造计划 (22)6.4 制造⼯艺 (22)6.5 制造系统 (22)6.6 装备 (22)6.7 ⽣产测试设备 (22)6.8 初始产品 (22)6.9 试产产品 (22)6.10 量产产品 (22)7.0 采购业务领域术语 (22)7.1 Sourcing team (22)7.2 初始的供应商&物料供应计划 (22) 7.3 提前物料采购 (23)7.4 关键器件 (23)7.5 定制器件 (23)7.6 替代器件 (23)7.7 其它器件 (23)7.8 长货期 (23)7.9结构件新供应商(供⽅) (23)7.10备⽤供应商(供⽅) (23)8.0 市场业务领域术语 (23)8.1 RFA (23)8.2 ESP (23)8.3 销售配置器 (23)8.4 客户迁移计划 (23)8.5 市场需求 (24)9.0 客服业务领域术语 (24)9.1 可安装性 (24)9.2 可服务性 (24)9.3 客户迁移 (24)9.4 初验 (24)10.0 质量业务领域术语 (24)10.1 TR1/TR2/TR3/TR4/TR5/TR6 (24) 10.2 同⾏评审 (24)10.3 质量计划 (24)10.5 缺陷 (24)10.6 故障 (24)11.0 产品维护业务领域术语 (24) 11.1 设计变更 (24)11.2 CCB 变更控制委员会 (25)11.3 设计变更评审 (25)11.4 ECN ⼯程变更通知 (25)11.5 A类设计变更 (25)11.6 B类设计变更 (25)11.7 C类设计变更 (25)11.8 D类设计变更 (25)12.0 产品规划术语 (26)12.1 市场 (26)12.1.1需求 (26)12.1.2市场 (26)12.1.3市场细分 (26)12.1.4细分市场Segmenting (26)12.1.5客户customer (27)12.1.6⽤户user (27)12.1.7渠道 (27)12.1.8市场调研 (27)12.1.9市场营销管理 (28)12.2 产品 (28)12.2.1产品 (28)12.2.2新产品 (29)12.2.3产品⽣命周期 (29)12.2.4产品平台和产品平台战略 (29) 12.2.5产品线和产品线战略 (30)12.3 缩略语 (30)12.3.1 MM (30)12.3.2 SWOT (30)12.3.3 $APPEALS (30)12.3.4 SPAN (31)12.3.5 FAN (31)12.3.6 ANSOFF (31)附件:修订记录(本⽂档的任何变更应该在⾸次检视后在本附件进⾏跟踪)IPD术语⼿册1.0IPD体系1.1集成产品开发IPDIntegrated Product Development,IPD是⼀种领先的、成熟的产品开发的管理思想和管理模式。
输出文档格式要求:在按照IPD模板内容执行IPD活动中,当输出文档时,请作者务必套用《IPD输出文档格式》,以保证文档格式的规范性。
Requirements for format of output documents: when you output documents while following IPD template to execute activities, Format of IPD Output Document must be followed to ensure that the format of documents are consistent and standardized.R&D-Template -Testability Requirements Guideline概念阶段确定可测试性需求指南-03.00.00活动号:TE-15Activity ID: TE-15Control Section文档控制Version 版本Date日期Change and reason更改及其理由By责任人Project Manager: __________________ Project: _________________ 项目经理:__________________ 项目:_________________Project Phase / Decision Checkpoint:项目阶段/决策检查点:X Concept概念Develop开发Launch发布Interim临时Plan计划Qualify验证Life Cycle生命周期该模板仅作为确定可测性需求的指南,实际需求文档模板参照IPD《端到端产品包需求模板》。
1、概述 OVERVIEW目前可测性需求一般有以下几方面的考虑:1、面向产品的可测性需求,是为了提高产品的故障检测定位和隔离能力而考虑的可测性需求,直接影响产品问题故障检测定位和隔离的难易程度。
产品可测试性需求报告记录目录2范围................................................... 3术语................................................... 4引用文件............................................... 5测试文档...............................................5.1测试参考文档.......................................5.2测试提交文档....................................... 6测试安排和计划.........................................6.1测试重点...........................................6.2测试难点...........................................6.3测试计划........................................... 7测试资源...............................................7.1人力资源........................................... 8功能测试方案...........................................8.1XXX功能............................................8.1.1.............................. 功能测试需求分析8.1.2.................................. 主要功能描述8.1.3.................................... 测试点分析8.1.4.................................. 测试所需工具9性能测试方案...........................................9.1XXX性能............................................9.1.1.............................. 性能测试需求分析9.1.2.................................. 主要性能指标9.1.3.................................... 测试点分析9.1.4.................................. 测试所需工具10可靠性试验方案.........................................10.1 ................................ 可靠性试验需求分析10.2 ................................ 可靠性试验参照标准10.3 .................................... 可靠性试验分析11环境实验方案...........................................11.1................................... 环境实验需求分析11.2................................... 环境实验参照标准11.3....................................... 环境实验分析12附录...................................................1 目的描述本文档的目的,如解决什么问题,满足什么需要等。
产品文档的可测试性和可测量性关键指标与评估方法产品开发过程中,产品文档起着至关重要的作用。
一个好的产品文档不仅要能够准确地描述产品的功能和特性,还应当具备可测试性和可测量性,以便在测试和评估过程中提供有力的支持。
本文将介绍产品文档可测试性和可测量性的关键指标,并提供相应的评估方法。
通过合理地利用这些指标和方法,开发团队能够更加有效地测试和评估产品,提高质量和性能。
一、可测试性关键指标和评估方法1. 清晰的需求描述产品文档应当清晰地描述产品的需求,包括功能需求、性能需求、界面需求等等。
评估产品文档的可测试性,可以从需求描述的明确性和完整性入手。
可借助如下方法进行评估:(1) 检查需求描述是否具备清晰的主题、具体的细节,并且没有二义性;(2) 确保需求描述的完整性,是否包含了所有必要的信息;(3) 验证需求描述是否能够通过测试用例来进行测试。
2. 易于验证的设计规范产品文档应当包含易于验证的设计规范,这有助于在开发过程中追踪和核对产品的设计。
评估产品文档的可测试性,可以从设计规范的详细性和准确性入手。
可采用如下评估方法:(1) 检查设计规范是否详细地描述了产品的设计细节和相关标准;(2) 确保设计规范能够满足产品的功能需求和性能需求;(3) 核对设计规范是否能够通过测试进行验证。
3. 可测量性关键指标和评估方法1. 易于追踪的问题反馈机制产品文档应当包含易于追踪的问题反馈机制,能够帮助测试团队及时捕捉和解决问题。
评估产品文档的可测量性,可以从问题反馈机制的及时性和准确性入手。
可采用以下方法进行评估:(1) 检查问题反馈机制是否明确指明了问题的提交方式和时间要求;(2) 验证问题反馈机制是否能够及时捕捉和记录问题;(3) 确保问题反馈机制能够提供准确的问题描述和复现步骤。
2. 完备的测试计划和报告产品文档应当包含完备的测试计划和报告,以便测试团队能够系统地进行测试和评估。
评估产品文档的可测量性,可以从测试计划和报告的详细程度和完整性入手。
可测试性需求分析的维度可测试性是软件质量的一个重要方面,它指的是在软件开发过程中,能够对系统的功能和性能进行全面的测试和评估的能力。
可测试性需求分析是为了设计和开发可测试的软件系统,以确保软件的正确性和稳定性。
以下是可测试性需求分析的几个重要维度:1.可测性目标:定义软件系统中需要测试的方面和检验的标准。
例如,系统功能是否正确、性能是否达标、可靠性是否足够,等等。
这些目标应该明确、可衡量,并且与系统的其他需求和目标相一致。
2.可测性设计:在软件系统设计阶段,考虑如何使系统易于测试和评估。
这包括确定测试用例和测试数据,设计测试工具和环境,以及选择适当的测试方法和技术。
可测性设计还包括模块化和接口规范,以便可以对每个组件进行独立的测试。
3.可测性需求规范:将可测性需求明确地规定在需求规范中。
这包括需求的可测性规则、测试用例和预期结果,以及测试环境和工具的要求。
可测试性需求规范可以帮助开发人员和测试人员理解和实施相应的测试策略,并确保测试的可重复性和一致性。
4.测试用例的设计和执行:根据可测性需求规范,设计测试用例并执行测试。
测试用例应该能够覆盖系统的所有功能和性能,并且能够验证系统的正确性和稳定性。
测试用例的设计可以基于黑盒测试、白盒测试、性能测试等不同的测试方法和技术,以满足可测性目标。
5.测试结果的分析和评估:分析和评估测试结果,检查系统是否满足可测性目标。
这包括检查测试用例的覆盖率、错误率和性能指标是否达到要求,以及验证系统是否满足其他非功能性需求,如可靠性和安全性。
测试结果的分析和评估可以为软件开发过程的改进提供重要的反馈和指导。
6.可测性管理:对可测试性需求的管理和控制是软件开发过程中的一个重要环节。
这包括确定测试资源的需求和分配,制定测试计划和进度,跟踪测试进展和结果,以及对测试过程进行监控和评估。
可测性管理可以确保测试工作的高效进行,并及时发现和解决测试过程中的问题和风险。
总结起来,可测试性需求分析的维度包括可测性目标、可测性设计、可测性需求规范、测试用例的设计和执行、测试结果的分析和评估,以及可测性管理。
软件需求评价指标在软件开发过程中,对软件需求进行有效的评估和管理是保证项目成功的重要环节。
以下是软件需求评价指标,包括完整性、准确性、可理解性、可实施性、稳定性、兼容性、可测试性和可维护性等方面。
1. 完整性完整性是指软件系统所需求的功能是否完整,是否能够满足用户的需求。
在评价软件需求的完整性时,需要考虑以下几点:* 是否有遗漏了重要的功能?* 是否考虑了所有可能的业务场景?* 是否考虑了系统的边界条件?2. 准确性准确性是指软件系统所需求的功能是否准确,是否能够准确地实现用户的需求。
在评价软件需求的准确性时,需要考虑以下几点:* 是否有错误或不一致的需求?* 是否考虑了用户的真实需求?* 是否考虑了数据和计算的准确性?3. 可理解性可理解性是指软件系统所需求的功能是否容易理解,是否能够让开发人员清楚地了解用户的需求。
在评价软件需求的可理解性时,需要考虑以下几点:* 是否使用了清晰、简洁的语言描述需求?* 是否考虑了开发人员的背景和经验?* 是否容易让开发人员理解并实现需求?4. 可实施性可实施性是指软件系统所需求的功能是否容易实现,是否能够在规定的开发时间内完成。
在评价软件需求的可实施性时,需要考虑以下几点:* 是否考虑了技术实现的难度?* 是否考虑了开发资源的限制?* 是否能够在规定的开发时间内完成?5. 稳定性稳定性是指软件系统所需求的功能是否稳定可靠,是否能够在长时间内稳定运行。
在评价软件需求的稳定性时,需要考虑以下几点:* 是否考虑了系统的容错性和恢复能力?* 是否能够保证系统的安全性和隐私保护?* 是否能够在不同的环境和条件下稳定运行?6. 兼容性兼容性是指软件系统所需求的功能是否与其他的系统或设备兼容,是否能够与其他系统或设备协同工作。
在评价软件需求的兼容性时,需要考虑以下几点:* 是否考虑了与其他系统的接口对接?* 是否考虑了不同设备和浏览器的兼容性?* 是否能够与其他系统或设备无缝对接?7. 可测试性可测试性是指软件系统所需求的功能是否容易测试,是否能够通过测试验证其正确性。
ipd集成产品开发各阶段评审要素说明1. 需求评审阶段
- 需求完整性和一致性
- 需求可测试性和可追踪性
- 需求优先级和风险评估
- 需求与业务目标的一致性
2. 概念设计评审阶段
- 设计方案的可行性和完整性
- 设计与需求的一致性
- 设计风险和约束条件的识别
- 设计方案的可维护性和可扩展性
3. 详细设计评审阶段
- 设计细节的正确性和完整性
- 设计与概念设计的一致性
- 接口定义和集成策略的合理性
- 设计文档的质量和可读性
4. 代码评审阶段
- 代码质量和可维护性
- 代码与设计的一致性
- 代码安全性和性能考虑
- 代码注释和文档的完整性
5. 测试评审阶段
- 测试用例的覆盖率和适当性
- 测试策略和测试环境的合理性
- 测试结果的分析和缺陷管理
- 测试文档的完整性和可追踪性
6. 发布评审阶段
- 产品发布准备的完整性
- 部署和运维计划的合理性
- 用户文档和培训材料的质量
- 发布风险和应急预案的评估
每个阶段的评审都需要确保产品质量、满足需求、降低风险和提高可维护性。
评审过程应该涵盖相关利益相关方的参与和反馈,以确保产品开发的高质量和成功交付。
性能测试需求分析及⽤例5.1.2性能测试需求提取复习了⼀些常见的理论概念后,我们开始性能测试需求的提取。
这个过程是⾮常重要的,往往测试失败,就是因为在这个过程中不知道如何得到确切的性能指标,⽽导致测试⽆法正常开展。
性能测试需求提取⼀般的流程如图5- 1所⽰。
图5- 1性能测试需求提取流程分析提取指标在⽤户需求规格说明书中,会给出系统的功能、界⾯与性能的要求。
规范的需求规格说明书都会给出明确的性能指标,⽐如单位时间内访问量要达到多少、业务响应时间不超过多少、业务成功率不低于多少、硬件资源耗⽤要在⼀个合理的范围中,这些指标都会以可量化的数据进⾏说明。
如果,实际项⽬并没有这些正规的⽂档时,项⽬经理部署测试任务给测试组长时,⼀般就会说明是否要对项⽬的哪些业务模块进⾏性能测试,以及测试的要求是什么的。
最⿇烦的就是项⽬经理或者客户要求给出⼀个测试部门认为可以的数据,这样⾮常难做的。
可是“甲⽅”往往都是提要求的,“⼄⽅”只能“⽆条件”接受!对于正规的项⽬,⽤户需求规格说明书中⼀般会给出类似表5- 1的性能测试要求:测试项响应时间业务成功率并发数CPU使⽤率内存使⽤率⽤户登录<=3秒>98% 20 <75% <75%表5- 1需求规格说明书中的性能要求表5- 1给出的指标⾮常明确,在测试过程中,我们只需收集⽤户登录模块的响应时间、登录成功率、并发数、CPU使⽤率、内存使⽤率的数据,然后与表5- 1的指标进⾏⽐较即可,通过的,就认为达到了客户要求的性能,未达到就分析原因,并给出测试报告及解决建议。
⼤多数是没有明确的需求,需要我们⾃⼰根据各种资料、使⽤各种⽅法去采集测试指标。
以OA系统为例,假设《FIX OA系统需求规格说明书》中并未指明系统的性能测试要求,需要测试⼯程师⾃⼰分析被测系统及采集性能衡量指标。
分析OA系统的结构,所有功能中仅有考勤模块可能是被测系统最终⽤户经常使⽤的业务点,那么我们的重点应该在放在该模块上。
软件可测试性需求设计一、引言1、目的提高软件的可测试性,加快测试进度,提高测试效率。
2、范围描述的范围主要是可测性设计的特征,考虑方向及设计方法。
3、读者对象系统分析员、设计人员、开发人员。
二、测试所需文档1、需求规格说明书2、概要设计说明书3、详细设计说明书4、系统功能清单5、系统运行环境搭建指导书6、系统操作指导书三、可测试性设计需求可测试性主要是指被测实体具有如下特征:可控制性、可分解性、稳定性、易理解性、可观察性,该特征的主要要表现是设立观察点、控制点、观察装置。
需要注意的是可测性设计时必须要保证不能对软件系统的任何功能有影响,不能产生附加的活动或者附加的测试。
1、可控制性设计需求1)全局变量的可控制性设计需求在外界使用适当的手段能够直接或间接控制该变量,包括获取、修改变量值等。
可以将全局类型的变量进行分类并封装到一个个接口中操作。
2)接口的可控制性设计需求各接口在外界使用适当的手段能够直接调用对该接口进行操作,这里所谓的适当的手段主要包括使用测试工具和增加额外代码。
对于向外提供的接口的接洽处能够人为的对接,比如构造测试环境模拟接口对接,这里所指的开放接口主要是指相对于被测系统,即为被测系统外提供的接口。
接口接洽处人为对接时各接口所要求的条件和所需的参数人为的能够轻易达到和提供。
3)模块的可控制性设计需求对于每个相对独立的模块设计好所需要的驱动和桩都能单独设计用例进行测试对应的功能,在测试运行期间模块异常时能够将其隔离而不影响测试。
4)业务流程的可控制性设计需求在测试环境满足的情况下能够控制任一单独业务流程,各业务流程具有流通性。
5)场景的可测性设计需求将一场景所涉及到的业务和接口整合到一个统一的接口使其能够单独操作该场景。
2、可分解性设计需求1)业务流程的可分解性设计需求对于复杂的业务流程需合理设定分解点,在测试时能够对其进行分解。
2)场景的可测性设计需求对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。
3、稳定性设计需求测试模块发布合理,不能在后期追加的模块为前期所测模块引入新的不必要的测试活动。
4、易理解性设计需求1)设计文档的易理解性设计参考标准内容描述主次要分清依赖关系描述明确2)接口的易理解性接口功能明确参数有意义3)业务的易理解性4)场景的易理解性5、可观察性设计需求1)业务执行状态和过程可观察性设计需求2)异常情况可观察性设计需求6、测试驱动和桩的设置为单个测试接口、测试业务、测试场景预留测试驱动和桩的接入点。
7、适合增量式开发的可测性设计在增量式开发过程中必须优先考虑测试桩和测试驱动实现的难易程度和真实性。
8、可查询设计对系统级别的全局变量或者状态设置查询接口;某一业务或场景调用接口设置接口路径查询。
9、自愈合功能在某一场景中局部出现故障时设置多路选择或者其他干涉进行跳转执行使其具有正常逻辑功能。
10、输出结果对于任何一项操作都要能产生预期的输出,不管是正确的还是错误的甚至是异常的。
测试结果的表现形式可以是数据、现象等,不管是以什么方式表现,都要有依可寻,在设计文档中要有说明。
对于测试结果易于判断,具有可分析性、可获得性。
在设置的各个控制点或观察点的结果易于查询、修改等。
11、提供统一的操作执行面板操作面板元素主要由输入和输出元素组成,如所执行的操作和对应的输出,但由于被测系统可能是一个比较复杂的系统,由多个可以独立的模块组成,涉及到的操作和输出比较多,各操作之间的关联也比较复杂。
在设计时统一的做一个操作面板,该操作面板成为一个可以执行整个被测系统操作的独立模块,一种是以命令的形式执行操作,直接以printf语句的形式输出查看,另一种是以GUI的形式,输入(执行的操作)输出均在界面上执行和体现,这样比较直观。
特别对于执行某一场景时要跟踪该场景的关键过程和执行后的输出参数,给出一系列可以分析的数据,该场景可以以执行过程分阶段监控,将监控范围内的数据输出以供测试人员分析。
[讨论] 需求的可测试性需求需求敏捷模式中强调User Story的可测试性。
我觉得在传统模式中,强调需求的可测试性也有非常大的好处。
1. 用户需求以文字性描述居多,如果需求有测试通过标准,那么开发和测试人员都可以有一个容易遵循的规则。
2. 需求有通过标准,说明开发测试以及需求分析人员都达成了共识,减少工作中的分歧。
3. 既然要研究测试通过标准,那么自然就要求QA从需求分析阶段就开始工作。
我想这是所有QA都期盼的结果。
4. 如果团队无法设计出需求的通过标准,那可能是需求不够明确或者团队缺乏相关的知识。
总之,大家可以在开发前就可以知道这个需求多半是无法完整实现的。
应该还有其他的好处,大家可以来讨论一下。
软件可测试性设计发布时间: 2009-8-06 17:27 作者: Vince 来源: 文斯测试技术研究中心字体: 小中大| 上一篇下一篇| 打印| 我要投稿| 推荐标签:软件测试技术一、概述随着软件行业的迅猛发展,软件测试也逐渐受到越来越多的软件公司所重视,然而开发出来的软件直接就可以拿出来做测试吗?根据近几年来的实践证明,在设计软件时事先没有对软件的可测试性进行周密设计和部署的软件在测试时总是很难于进行,直到测试无法进行下去为止。
被测软件在编码时需要考虑给测试和后期的产品维护提供必要的手段和接口支持,即要求软件具有可测试性。
基于可测试性的目标考虑,良好的架构设计,完备的接口,使得软件测试更加高效和可行,同时产品维护也更加便利。
本文描述的范围:可测试性定义、可测试性特征、可测试性设计。
读者对象:系统分析和设计人员、开发人员、测试人员。
参考文献:1、《软件可测试性需求设计》Vince2、《高质量C++/C编程指南》林锐3、《软件工程思想》林锐二、软件可测试性定义2.1 可测试性定义软件的可测试性是指在一定的时间和成本前提下,进行测试设计、测试执行以此来发现软件的问题,以及发现故障并隔离、定位其故障的能力特性。
简单的说,软件的可测试性就是一个计算机程序能够被测试的容易程度。
一般来说可测试性很好的软件必然是一个强内聚、弱耦合、接口明确、意图明晰的软件,而不具可测试性的软件往往具有过强的耦合和混乱的逻辑。
2.2 可测试性特征1、可操作性:“运行得越好,被测试的效率越高。
”1)系统的错误很少;2)没有阻碍测试执行的错误;3)产品在功能阶段的演化(允许同时的开发和测试)。
2、可观察性:“你所看见的就是你所测试的。
”1)每个输入有唯一的输出;2)系统状态和变量可见,或在运行中可查询;3)过去的系统状态和变量可见,或在运行中可查询(例如:事务日志);4)所有影响输出的因素都可见;5)容易识别错误输出;6)通过自测机制自动侦测内部错误;7)自动报告内部错误;8)可获取源代码。
3、可控制性:“对软件的控制越好,测试越能够被自动执行与优化。
”1)所有可能的输出都产生于某种输入组合;2)通过某种输入组合,所有的代码都可能被执行;3)测试工程师可直接控制软件和硬件的状态及变量;4)输入和输出格式保持一致且有结构;5)能够便利地对测试进行说明、自动化和再生;6)接口和模块易控制;7)业务流程和场景易控制。
4、可分解性:“通过控制测试范围,能够更快地分解问题,执行更灵巧的再测试。
”1)软件系统由独立模块构成;2)能够独立测试各软件模块;3)业务流程和场景易分解。
5、简单性:“需要测试的内容越少,测试的速度越快。
”1)功能简单性(例如:特性集是满足需求所需的最小集合);2)结构简单性(例如:将体系结构模块化以限制错误的繁殖);3)代码简单性(例如:采用代码标准为检查和维护提供方便)。
6、稳定性:“改变越少,对测试的破坏越小。
”1)软件的变化是不经常的;2)软件的变化是可控制的;3)软件的变化不影响已有的测试;4)软件失效后能得到良好恢复和隔离。
7、易理解性:“得到的信息越多,进行的测试越灵巧。
”1)设计能够被很好地理解并遵循行业规范;2)内部、外部和共享构件之间的依赖性能够被很好地理解;3)设计的改变被通知;4)可随时获取技术文档;5)技术文档组织合理;6)技术文档明确详细;7)技术文档精确性稳定;8)相关环境配置说明与操作指导。
三、软件可测试性设计3.1 可测试性设计软件的可测试性特征主要表现是设立观察点、控制点、观察装置、驱动装置、隔离装置。
需要注意的是可测试性设计时必须要保证不能对软件系统的任何功能有影响,不能产生附加的活动或者附加的测试,采取合适的设计模式对软件进行设计。
1、坚持测试驱动设计(测试先行)的方法。
优先编写测试代码,这是标准的XP方法。
不是说应该一次性编写全部测试代码后,再一次性全部实现。
先写验收测试,再写单元测试,编写一些测试代码,实现它们,再编写一些测试代码,再实现它们等等是个更好的办法。
设计以这种方式得以进展;在实现阶段捕捉错误并在下一组测试中改正它,以这种方式编写测试也更少会使人畏缩。
2、尽量做到每个操作对应一个函数,使函数小型化。
使用小型函数说明和重载带缺省参数的函数将使在测试中调用这些函数变的愉快的多。
否则,在测试这些函数时将不得不构造额外参数,如果参数很大,那么将很快导致代码膨胀。
更糟的是,它会诱使你编写比在其它情况下更少的测试。
3、数据的显示与控制分离把代码移到GUI 视图的外面。
然后各种GUI 动作就能成了模型上的简单方法调用。
这样,对GUI测试者来说,通过方法调用测试功能比间接地测试功能容易的多。
另一个好处是它使修改程序功能而不影响视图变的更容易。
4、可控制性设计1)全局变量的可控制性设计I. 在外界使用适当的手段能够直接或间接控制该变量,包括获取、修改变量值等;II. 可以将全局类型的变量进行分类并封装到一个个接口中操作。
2)接口的可控制性设计各接口在外界使用适当的手段能够直接调用对该接口进行操作,这里所谓的适当的手段主要包括使用测试工具和增加额外代码。
对于向外提供的接口的接洽处能够人为的对接,比如构造测试环境模拟接口对接,这里所指的开放接口主要是指相对于整个被测系统,即为被测系统以外提供的接口。
接口接洽处人为对接时各接口所要求的条件和所需的参数人为的能够轻易达到和提供。
3)模块的可控制性设计对于每个相对独立的模块设计好所需要的驱动和桩都能单独设计用例进行测试对应的功能,在测试运行期间模块异常时能够将其隔离而不影响测试。
4)业务流程的可控制性设计在测试环境满足的情况下能够控制任一单独业务流程,各业务流程具有流通性。
5)场景的可测试性设计将一场景所涉及到的业务和接口整合到一个统一的接口使其能够单独操作该场景。
5、可分解性设计1)业务流程的可分解性设计对于复杂的业务流程需合理设定分解点,在测试时能够对其进行分解。
2)场景的可分解性设计对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。