《软件可测试性介绍.pptx》由会员分享,可在线阅读,更多相关《软件可测试性介绍.pptx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、可测试性特征可测试性特征1 1、可操作性、可操作性 2 2、可观察性、可观察性3 3、可控制性、可控制性4 4、可分解性、可分解性5 5、简单性、简单性6 6、稳定性、稳定性7 7、易理解性、易理解性第1页/共20页可测试性特征可测试性特征-可操作性可操作性1 1、可操作性:、可操作性:运行得越好,被测试的效率越高。运行得越好,被测试的效率越高。1)系统的错误很少;系统的错误很少;2)没有阻碍测试执行的错误;没有阻碍测试执行的错误;3)产品在功能阶段的演化产品在功能阶段的演化(允许同时的开发和测试允许同时的开发和测试)。第2页/共20页可测试性特征可测试性特征-可观察性可观察性2 2、可观察性
2、:、可观察性:你所看见的就是你所测试的。你所看见的就是你所测试的。1)每个输入有唯一的输出;每个输入有唯一的输出;2)系统状态和变量可见,或在运行中可查询;系统状态和变量可见,或在运行中可查询;3)过去的系统状态和变量可见,或在运行中可查询过去的系统状态和变量可见,或在运行中可查询(例如:事务日志例如:事务日志);4)所有影响输出的因素都可见;所有影响输出的因素都可见;5)容易识别错误输出;容易识别错误输出;6)通过自测机制自动侦测内部错误;通过自测机制自动侦测内部错误;7)自动报告内部错误;自动报告内部错误;8)可获取源代码。可获取源代码。第3页/共20页可测试性特征可测试性特征-可控制性可
3、控制性3 3、可控制性:、可控制性:对软件的控制越好,测试越能够被自动执行与优化。对软件的控制越好,测试越能够被自动执行与优化。1)所有可能的输出都产生于某种输入组合;所有可能的输出都产生于某种输入组合;2)通过某种输入组合,所有的代码都可能被执行;通过某种输入组合,所有的代码都可能被执行;3)测试工程师可直接控制软件和硬件的状态及变量;测试工程师可直接控制软件和硬件的状态及变量;4)输入和输出格式保持一致且有结构;输入和输出格式保持一致且有结构;5)能够便利地对测试进行说明、自动化和再生;能够便利地对测试进行说明、自动化和再生;6)接口和模块易控制;接口和模块易控制;7)业务流程和场景易控制
4、。业务流程和场景易控制。第4页/共20页可测试性特征可测试性特征-可分解性可分解性4 4、可分解性:、可分解性:通过控制测试范围,能够更快地分解问题,执行更灵通过控制测试范围,能够更快地分解问题,执行更灵巧的再测试。巧的再测试。1)软件系统由独立模块构成;软件系统由独立模块构成;2)能够独立测试各软件模块;能够独立测试各软件模块;3)业务流程和场景易分解。业务流程和场景易分解。第5页/共20页可测试性特征可测试性特征-简单性简单性5 5、简单性:、简单性:需要测试的内容越少,测试的速度越快。需要测试的内容越少,测试的速度越快。1)功能简单性功能简单性(例如:特性集是满足需求所需的最小集合例如:
5、特性集是满足需求所需的最小集合);2)结构简单性结构简单性(例如:将体系结构模块化以限制错误的繁殖例如:将体系结构模块化以限制错误的繁殖);3)代码简单性代码简单性(例如:采用代码标准为检查和维护提供方便例如:采用代码标准为检查和维护提供方便)。第6页/共20页可测试性特征可测试性特征-稳定性稳定性6 6、稳定性:、稳定性:改变越少,对测试的破坏越小。改变越少,对测试的破坏越小。1)软件的变化是不经常的;软件的变化是不经常的;2)软件的变化是可控制的;软件的变化是可控制的;3)软件的变化不影响已有的测试;软件的变化不影响已有的测试;4)软件失效后能得到良好恢复和隔离。软件失效后能得到良好恢复和
6、隔离。第7页/共20页可测试性特征可测试性特征-易理解性易理解性7 7、易理解性:、易理解性:得到的信息越多,进行的测试越灵巧。得到的信息越多,进行的测试越灵巧。1)设计能够被很好地理解并遵循行业规范;设计能够被很好地理解并遵循行业规范;2)内部、外部和共享构件之间的依赖性能够被很好地理解;内部、外部和共享构件之间的依赖性能够被很好地理解;3)设计的改变被通知;设计的改变被通知;4)可随时获取技术文档;可随时获取技术文档;5)技术文档组织合理;技术文档组织合理;6)技术文档明确详细;技术文档明确详细;7)技术文档精确性稳定;技术文档精确性稳定;8)相关环境配置说明与操作指导。相关环境配置说明与
7、操作指导。第8页/共20页软件可测试性设计软件可测试性设计 软件的可测试性特征主要表现是设立观察点、控制软件的可测试性特征主要表现是设立观察点、控制点、观察装置、驱动装置、隔离装置。需要注意的是可点、观察装置、驱动装置、隔离装置。需要注意的是可测试性设计时必须要保证不能对软件系统的任何功能有测试性设计时必须要保证不能对软件系统的任何功能有影响,不能产生附加的活动或者附加的测试,采取合适影响,不能产生附加的活动或者附加的测试,采取合适的设计模式对软件进行设计。的设计模式对软件进行设计。第9页/共20页软件可测试性设计方法软件可测试性设计方法 1、坚持测试驱动设计(测试先行)的方法、坚持测试驱动设
8、计(测试先行)的方法 优先编写测试代码,这是标准的优先编写测试代码,这是标准的XP方法。不是说应该一次性方法。不是说应该一次性编写全部测试代码后,再一次性全部实现。先写验收测试,再写单编写全部测试代码后,再一次性全部实现。先写验收测试,再写单元测试,编写一些测试代码,实现它们,再编写一些测试代码,再元测试,编写一些测试代码,实现它们,再编写一些测试代码,再实现它们等等是个更好的办法。设计以这种方式得以进展;在实现实现它们等等是个更好的办法。设计以这种方式得以进展;在实现阶段捕捉错误并在下一组测试中改正它,以这种方式编写测试也更阶段捕捉错误并在下一组测试中改正它,以这种方式编写测试也更少会使人畏
9、缩。少会使人畏缩。第10页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)2、尽量做到每个操作对应一个函数,使函数小型化、尽量做到每个操作对应一个函数,使函数小型化 使用小型函数说明和重载带缺省参数的函数将使在测试中调用使用小型函数说明和重载带缺省参数的函数将使在测试中调用这些函数变的愉快的多。否则,在测试这些函数时将不得不构造额这些函数变的愉快的多。否则,在测试这些函数时将不得不构造额外参数,如果参数很大,那么将很快导致代码膨胀。更糟的是,它外参数,如果参数很大,那么将很快导致代码膨胀。更糟的是,它会诱使你编写比在其它情况下更少的测试。会诱使你编写比在其它情况下更少的测试。第1
10、1页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)3、数据的显示与控制分离、数据的显示与控制分离 把代码移到把代码移到 GUI 视图的外面。然后各种视图的外面。然后各种 GUI 动作就能成了模型上的动作就能成了模型上的简单方法调用。这样,对简单方法调用。这样,对GUI测试者来说,通过方法调用测试功能比间接测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易更容易。第12页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)5、可分解性设计、可分解性设
11、计 1)业务流程的可分解性设计业务流程的可分解性设计。对于复杂的业务流程需合理设定分解点,在测试时能够对其进行对于复杂的业务流程需合理设定分解点,在测试时能够对其进行分解。分解。2)场景的可分解性设计场景的可分解性设计。对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。第13页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)6、稳定性设计、稳定性设计 测试模块发布合理,不能在后期追加的模块为前期所测模块引入测试模块发布合理,不能在后期追加的模块为前期所测模块引入新的不必要的测试活动新的不必要的测试活动。第14页/共
12、20页软件可测试性设计方法(续)软件可测试性设计方法(续)6、易理解性设计、易理解性设计 1)设计文档的易理解性设计文档的易理解性 I.设计参考标准设计参考标准 II.内容描述主次要分清内容描述主次要分清 III.依赖关系描述明确依赖关系描述明确 2)接口的易理解性接口的易理解性 I.接口功能明确接口功能明确 II.参数有意义参数有意义 3)业务的易理解性业务的易理解性 4)场景的易理解性场景的易理解性 第15页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)7、可观察性设计、可观察性设计 1)业务执行状态和过程可观察性设计业务执行状态和过程可观察性设计 2)异常情况可观察性设计
13、异常情况可观察性设计 第16页/共20页软件可测试性设计方法(续)软件可测试性设计方法(续)3、数据的显示与控制分离、数据的显示与控制分离 把代码移到把代码移到 GUI 视图的外面。然后各种视图的外面。然后各种 GUI 动作就能成了模型上的动作就能成了模型上的简单方法调用。这样,对简单方法调用。这样,对GUI测试者来说,通过方法调用测试功能比间接测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易更容易。第17页/共20页性能测试、负载测试、压力测试关系性能测试、负载测试、压
14、力测试关系 1、性能测试就象人在无风情况下跑步(正常情况下的性能指标);、性能测试就象人在无风情况下跑步(正常情况下的性能指标);2、压力测试就象人在微风中跑步(在正常的基础上加大多少百分、压力测试就象人在微风中跑步(在正常的基础上加大多少百分比压力的性能指标);比压力的性能指标);3、负载测试就象人在强风中跑步(不断加压,直到系统崩溃);、负载测试就象人在强风中跑步(不断加压,直到系统崩溃);4、负载测试是正常情况下持续的加压;、负载测试是正常情况下持续的加压;5、压力测试是直接加压达到一个极限值;、压力测试是直接加压达到一个极限值;6、性能测试、压力测试、负载测试密不可分,可统称为性能测试
15、。、性能测试、压力测试、负载测试密不可分,可统称为性能测试。第18页/共20页性能测试要点性能测试要点 1、性能测试是在功能测试完成之后进行;、性能测试是在功能测试完成之后进行;2、性能测试计划、方案一般与测试用例统一在一个文档里;、性能测试计划、方案一般与测试用例统一在一个文档里;3、测试环境应尽量与用户环境保持一致;、测试环境应尽量与用户环境保持一致;4、性能测试一般使用测试工具和测试人员编制测试脚本来完成,、性能测试一般使用测试工具和测试人员编制测试脚本来完成,性能测试的环境应单独运行尽量避免与其他软件同时使用;性能测试的环境应单独运行尽量避免与其他软件同时使用;5、性能测试的重点在于前
16、期数据的设计与后期数据的分析;、性能测试的重点在于前期数据的设计与后期数据的分析;6、性能测试的用例主要涉及到整个系统架构的问题,所以测试用、性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,改动一般不大,所以做性能测试的重复使用率一般比例一旦生成,改动一般不大,所以做性能测试的重复使用率一般比较高。(说明:当系统中出现的某个功能点需要修改,它一般只会较高。(说明:当系统中出现的某个功能点需要修改,它一般只会影响到功能测试的设计用例,很少影响到性能测试的设计用例。但影响到功能测试的设计用例,很少影响到性能测试的设计用例。但是如果某个功能有较大的修改,性能测试也应该进行重新测试。)是如果某个功能有较大的修改,性能测试也应该进行重新测试。)。第19页/共20页感谢您的观看!第20页/共20页