课件05-软件可靠性与安全性-验证确认 (1)

上传人:豆浆 文档编号:29218563 上传时间:2018-01-22 格式:PPTX 页数:70 大小:536.31KB
返回 下载 相关 举报
课件05-软件可靠性与安全性-验证确认 (1)_第1页
第1页 / 共70页
课件05-软件可靠性与安全性-验证确认 (1)_第2页
第2页 / 共70页
课件05-软件可靠性与安全性-验证确认 (1)_第3页
第3页 / 共70页
课件05-软件可靠性与安全性-验证确认 (1)_第4页
第4页 / 共70页
课件05-软件可靠性与安全性-验证确认 (1)_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《课件05-软件可靠性与安全性-验证确认 (1)》由会员分享,可在线阅读,更多相关《课件05-软件可靠性与安全性-验证确认 (1)(70页珍藏版)》请在金锄头文库上搜索。

1、软件可靠性与安全性第六部分,软件可靠性与安全性验证,提要,软件评审和分析,软件验证与确认,软件动态测试,2,1,3,验证与确认,验证(Verification)与确认(Validation)是广泛认可的质量保证方法和手段验证与确认的手段不仅仅是测试验证: Are we building the product right?确认: Are we building the right product?验证与确认的独立性取决于机构的质量政策和所管理的软件等级,软件验证与确认的目标,软件需求满足分配给软件的系统需求软件体系结构满足软件需求详细设计满足软件体系结构的要求软件源代码满足详细设计的要求可执行

2、目标码满足软件需求保证为达到上述目标所使用的方法, 对所确定的软件等级而言, 在技术上是正确的且完整的发现和解决软件问题, 提高软件质量,软件验证,软件验证期望证明软件生存期各阶段及阶段间的逻辑协调性、完备性和正确性软件验证是对系统或单元评价的过程, 以确定软件开发周期中的一个给定阶段的产品是否达到前阶段确立的要求软件验证是对软件开发过程和软件验证过程两者结果的技术评估软件验证过程的目的是检测和报告在软件开发过程中可能已形成的缺陷,软件确认,软件确认是在软件开发过程期间或结束时, 对系统或单元评价的过程软件确认的目的是想证实在给定的外部环境中, 软件的逻辑正确性, 以确认它和软件需求是否相一致

3、,软件验证与确认技术,软件验证与确认实践,系统需求和设计,需求定义,软件需求,软件设计,可执行的组件,编码,代码,验证,验证,验证,单元集成,设计规格说明,组件集成,可执行的软件,软硬件集成,可使用的系统,确认,确认,确认,软件验证与确认活动,评审(Reviews)提供正确性的定性评估分析提供正确性的可重复证据动态测试发现软件中的问题和缺陷,验证活动改进实践(Fujitsu),提要,软件评审和分析,软件验证与确认,软件动态测试,2,1,3,软件评审方法,设计评审代码审查代码走查静态分析,软件分析方法,可追踪性分析接口分析危险分析风险分析关键性分析复杂性分析覆盖分析,HWCItesting,fa

4、brication,detaileddesign,preliminarydesign,CSCItesting,CSCintegrationand testing,coding andCSU testing,detaileddesign,systemrequirementsanalysis,systemdesign,SRR,preliminarydesign,SDR,softwarerequirementsanalysis,hardwarerequirementsanalysis,SSR,PDR,CDR,PDR,CDR,TRR,systemintegrationand testing,FCA,P

5、CA,FCA,PCA,FQR,functionalbaseline,allocatedbaseline,productbaseline,development configuration,system requirements reviewsystem design reviewsoftware specification reviewpreliminary design reviewcritical design reviewtest readiness reviewfunctional configuration auditphysical configuration auditforma

6、l qualification review,SRRSDRSSRPDRCDRTRRFCAPCAFQR,Abbreviations,评审与分析时机,软件需求评审与分析,与系统需求的符合性准确性和一致性与目标机的兼容性可验证性与标准的符合性可追踪性算法的精度和特性,软件体系结构评审与分析,与高层需求的符合性一致性与目标机的兼容性可验证性与标准的符合性划分的完整性,源代码评审与分析,与模块设计的符合性与软件体系结构的符合性可验证性与标准的符合性可追踪性准确性和一致性,源代码评审与分析,代码符合安全编码规范代码执行逻辑的正确性代码数据操作的正确性代码的健壮性,源代码评审与分析,重点关注被零除范围检查错

7、栈溢出错堆溢出错无效指针操作浮点上溢出浮点下溢出无效浮点运算对象未初始化,软件集成评审与分析,不正确的硬件地址内存重叠接口冲突遗漏软件部件,软件评审,评审组长,产品开发人员,记录人员,评审人员,SQA人员,系统维护人员,用户代表,软件评审与分析工作中的问题,审查工作流于形式, 缺乏操作性参与审查工作的人员缺乏相应的培训, 审查过程中得不到适当的指导、监督对审查工作的重要性和严肃性认识不足, 没有合理的计划, 审查前准备不充分, 审查工作变成一种临时性的即兴活动审查人员的审查技能或专业知识不足,软件评审与分析工作中的问题,审查会偏离主题, 演变成解决方案研讨或技术攻关会, 审查效率低下没有对审查

8、中发现的问题进行跟踪, 使审查工作功亏一篑, 前功尽弃没有建立测量数据收集机制, 不分析审查工作的有效性, 管理人员和技术人员体会不到审查带来的效益和效果, 不利于全员参与,软件评审工作指南,审查作为项目计划的一部分考虑, 分配资源和时间为每个要审查的工作产品建立一个检查表限制参与人数, 35名成员最佳制定议程, 并且遵守议程审查会的时间不要超过两个小时以建设性的方式讨论问题, 不要针对被审查产品的设计者,软件评审工作指南,将注意力集中在验证和确认参与者提出的意见, 避免探讨解决方案限制争论和辩驳, 对提出的问题有不同意见时, 通过记录下问题并另行专题讨论来结束争论将讨论的意见及其验证和确认结

9、果形成文档建立跟踪机制, 确保返工活动具有满意的性能,提要,软件评审和分析,软件验证与确认,软件动态测试,2,1,3,软件测试知识体系,测试基础,测试技术,术语,环境与设施,测试与其他活动的关系,经验,规格说明,代码,故障,质量特性,应用领域特性,测试级别,测试对象,测试目标,测试过程,组织级过程,项目级过程,测试测量,被测软件评估,测试工作评估,工作量估计,基本过程,软件测试,管理过程,使用模型,软件测试工程实施,测试过程,测试策略,最终用户,主管,测试对象,测试基准,基础设施,组织,建议,缺陷,故障/失效,动态测试,在给定的时限内尽可能多的发现缺陷和隐患, 发现缺陷可以减少业务风险使用适当

10、的测试方法, 建立高质量的测试用例, 完成有效地测试, 提交有用的问题报告测试的质量依赖于使用的测试数据动态测试涉及人员、设备和数据等多个方面, 需要较好的管理和工作规程,动态测试方法,方法,策略,白盒方法,黑盒方法,白盒测试特征,已知产品内部工作流程, 通过测试来检测产品的内部动作是否按照详细设计规格说明的规定正常进行目标是对所有逻辑路径进行测试, 穷举路径,结果输出,内部行为,预期输出,软件设计,选择输入,输出结果推导,白盒测试的优势,对重点区域进行重点测试根据覆盖的指示增加测试可以根据需要观察控制流可方便地监控数据完整性能看到内部边界可模拟内部异常, 方便测试异常处理,白盒测试的局限,测

11、试了所有路径也不能保证没有缺陷, 例如:遗漏的代码边界值处理不正确时序问题、中断相关的缺陷未进行判断保护的除零(x/y)问题指针越界/内存泄漏或栈破坏等最终导致栈溢出,但滞后暴露问题配置相关缺陷,硬件和软件兼容性问题易用性等用户需求相关的缺陷,黑盒测试特征,已知软件产品应该具有的功能, 通过测试来检测每个功能是否都能正常使用黑盒法着眼于程序外部特征和需求, 不考虑内部逻辑结构目标是穷举输入/状态测试,结果输出,预期输出,选择输入,输出结果推导,黑盒测试局限性,不可能测试所有的输入有效的输入无效的输入输入的编辑特性输入时间的考虑不可能测试多个输入的所有组合,测试类型,基于代码的测试类型基于规格说

12、明的测试类型基于质量特性的测试类型基于使用模型的测试类型,基于代码的测试类型,逻辑覆盖测试(Logic-Coverage Testing)数据流测试变元测试(mutation test),基于规格说明的测试类型,功能测试性能测试接口测试人机交互界面测试,基于质量特性的测试类型,安全危险性测试(Safety Test)安全保密性测试(Security Test)可靠性测试强度测试容量测试余量测试,安全性测试,对防止危险状态措施的有效性和每个危险状态下的反应的测试对设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案的测试对异常条件下系统/软件的处理和保护能力的测试, 以表明不会导致不安全

13、状态,安全性测试要点,应明确系统的安全状态以及对软件处理的要求重点关注安全相关的功能, 因此需求的分类管理很重要应对安全性测试的后果预先进行评估, 防止测试导致损失, 在真实环境下测试前应在仿真环境下预先验证应关注系统各级别上安全机制的协调性和合理性,常规测试与安全性测试,危害识别,回归测试,风险估计,安全评估,安全验证,纠正措施,影响分析,常规测试,安全性测试,安全保密性测试,对具有防止非法进入软件并保护软件的数据完整性能力的测试对重要数据的抗非法访问能力的测试防止数据完整性被破坏能力的测试防止系统可用性遭受破坏能力的测试逻辑炸弹、信息泄露等恶意逻辑和功能检测,安全保密性测试内容,安全功能验

14、证测试软件漏洞挖掘接口健壮性测试对恶意逻辑、多余功能和潜通路径等的静态测试和白盒测试,测试用例设计方法,用户需求,测试的充分性,规格说明,程序,白盒测试用例集,黑盒测试用例集,用户使用场景测试用例集,测试准则1,最高风险首先测试最频繁的业务活动重点测试采用用户使用的方式测试系统肯定、否定、边界测试都有助于减少风险自动测试工具有助于减少风险缺陷出现模式和其他特征的统计分析是测试是否完成最有效的预报方法保证测试的追溯性, 可重复、可再现,测试准则2,发现并消除多余功能复活节彩蛋残留于产品代码中的调试功能维护性修改时未删除的废弃功能代码特洛伊木马,测试准则3,与软件开发过程相适应, 分级别进行测试为

15、了说明软件系统内单元/部件/配置项的互操作性, 需要进行三种基本的测试测试单独的组件测试组件间互操作测试组件结合成的软件/系统,测试级别的不同考虑,单元测试的特点,对象模块依据软件详细设计规格说明实现串行或并行测试方法白盒为主,单元测试内容,静态测试代码走查代码检查静态分析动态测试黑盒测试白盒测试基于数据结构的测试,单元动态测试焦点,被测单元,单元接口,局部数据结构,边界条件,独立执行路径,异常处理的路径,测试用例,集成测试,软件部件由软件单元组成部件测试的对象是软件部件以及软件部件的集成过程部件测试前, 部件中的所有单元必须已经完成了单元测试,集成测试内容,单元间的接口测试全局数据结构测试软件功能模块的功能测试性能测试边界和人为条件下的性能,集成测试焦点,重点寻找与下述内容相关的缺陷软件系统结构的设计和构造在子系统层次上被集成的功能或操作部件/模块之间的接口和相互作用资源集成环境集成,配置项测试的目的,发现缺陷和问题软件配置项范围内存在的缺陷和问题验证软件配置项实现了所需的能力验证软件是否按软件需求规格说明书中确定的软件功能、性能、质量属性、约束及限制等技术要求进行工作检验软件配置项与相关的软件/硬件配置项接口的正确性和互操作性,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号