资源预览内容
第1页 / 共115页
第2页 / 共115页
第3页 / 共115页
第4页 / 共115页
第5页 / 共115页
第6页 / 共115页
第7页 / 共115页
第8页 / 共115页
第9页 / 共115页
第10页 / 共115页
亲,该文档总共115页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SGS SA 2011 ALL RIGHTS RESERVED 1 TITEL, VERSALIEN, ARIAL, SCHWARZ Untertitel SGS-CSTC www.sgs-tuv-saar.com/fs Mike Chen Functional safety 功能安全与软件测试功能安全与软件测试 2 OBJECTIVES Risk Functional Safety Software test The relationship between functional safety and software test Test methods and process Q b. 人或事物在将来发生危险或问题. 组成部分 风险因素,风险事故和风险结果 风险因素是指增加和引起风险事故发生的机会或增加损失后果 程度的因素。 风险事故是指风险因素变成了风险发生的现实,是酿成事故和 损失的直接原因和条件。 风险结果是指风险发生后产生的后果即风险损失。 7 风险分析 X 伤害严重度 Y 伤害发生的概率 BS EN ISO 14971:2009 Medical devices Application of risk management to medical devices 8 风险分析 BS EN ISO 14971:2009 Medical devices Application of risk management to medical devices 9 风险分析 BS EN ISO 14971:2009 Medical devices Application of risk management to medical devices 10 WHAT IS FUNCTIONAL SAFETY? 目的避免由随机失效、系统失效或共因失效引起的人员伤亡、 环境危害和财产损失,也就是装置或控制系统的安全功能无论 在正常情况或者有故障存在的情况下都应该保证正确实施。 功能安全是依赖于系统或设备对输入的正确操作,是全部安全 的一部分。当每一个特定的安全功能获得实现,并且其必需的 性能等级被满足的时候,才能实现功能安全的目的。 功能安全是主动的。 part of the overall safety relating to the EUC and the EUC control system that depends on the correct functioning of the E/E/PE safety-related systems and other risk reduction measures(come from IEC 61508) Note:EUC Equipment Under Control 11 安全相关系统构成 12 IEC 61508 EDITION 2.0 2010-04 13 当操作员站在防护栏外面的时候,正常情况下是没有危险的。 而当进入护栏区域内,机器还在工作的话,就会有风险(risk),因为你已经接近了 一个危险源(hazard),进入护栏区域内就是一个危险事件(hazard event),而如果 发生了某种人身伤害,那么就是你受到了伤害(harm),也就发生了一起伤害事件 (harm event)。 14 安全完整等级判定-风险图分析法 15 重要领域重要领域 Aerospace z=xy? x:y return (z); Main() float a, b; int c; scanf(“% f,% f, c=max(a,b); Printf(“Max is % dn”,c); 这个示例的代码存 在那些缺陷?如何 修改? 44 /*程序名称:求两个实数中的大树 作者:* * * 版本:1.0 创建时间:2013.-10-14 */ # include float max(float x, float y) /返回两个单精度数中的大数 float z; z=xy? x:y; return(z); main() float a; float b; float c; scanf(“% f, % f”, c=max(a,b); printf(“Max is % fn”, c;) 45 动态测试 分为黑箱测试与白箱测试, 实际运行被测程序,输入相 应的测试数据,检查实际输 出结果和预期结果是否相符 的过程,所谓我们判断一个 测试属于动态还是静态,唯 一的标准就是看是否运行程 序。 1、正常输入输入数字:1 2 3 4 0 Enter 2、非法数据的容错性:a b c d e Enter 3、边界值输入:如果我们输入1 2 3 4 5 6 7 Enter /* 程序名称:数组循环 作者:* 版本:1.0 创建时间:2014-01-01 */ # include void iszero( int m) /数组元素循环输出 If (m!=0) Printf(“% d”,m); Else Printf(“% d”,1) void main(void) int a5 int i=0; printf(“请输入5个整数n”); for(i=0;i=4;i+) / 输入数组数据 Scanf(“% d”, Iszero(ai); 46 单元测试 单元测试 对软件中的最小可测试单元进行检查和验证。C 语言中,单元一般指一个函数, Java里一般指1个类,图形化软件中一般指一个窗口或一个菜单。 方法:1、先规则检查;2、运行代码,通过验证测试来验证代码的正确性、非 法数据的容错性和边界值等问题。 要求:程序通过所有的单元的测试用例;语句覆盖率达到100%,分支覆盖率 达到85%。 接口测试:保证进出单元模块的数据流是正确的。 内部数据结构:保证临时存储的数据在算法执行过程中的完整性 全局数据结构:全局数据结构对单元模块的影响应当审查 边界:采用边界值分析技术,保证模块在边界条件和极限情况下正常执行 语句覆盖:保证每个语句均执行一次 错误路径:对所有处理错误的路径进行测试 依据:1.程序源代码,包括代码和注释;2.详细设计的文档 47 桩模块和驱动模块 在程序中函数并不是一个独立的程序,在考虑测试函数时,也要考虑它和 外界的联系,用一些辅助模块与被测模块联系其它的模块。 桩模块(Stub):指模拟被测模块所调用的模块, 驱动模块(Driver):指模拟被测模块的上级模块,驱动模块用来接受测 试数据,启动被测模块并输出结果。 驱动模块 被测模块 桩模块 桩模块 桩模块 测试用例 测试结果 # include void main(void) int a; int b; int c; c=funl(a,b); Int fun1(int x, int y) return x+y; 48 A B D E F J G I H C #include void hello_world(void) printf(“Hello, world!n“); void three_hellos(void) int counter; for (counter = 1; counter 设计代码单元测试集成测试系统测试验收测试 68 W模型测试领域的主流模型 需求分析 需求测试 系统设计 详细设计 编码实现 模块集成 系统构建 系统安装 概要设计 测试 详细设计 测试 单元测试 集成测试 系统测试 验收测试 69 Where 70 FUNCTIONAL SAFETY V MODEL 71 Who 72 设计工程师 测试工程师 安全经理 产品经理 销售经理 用户 总经理 其他人员 73 How 74 75 系统的层级划分 76 系统工程 Else z = x ; 1. x0 , y!= x 2. x0 , y=x 3. x0 , y!= x 2. x0 , y=x x0 , y!= x 条件覆盖 语句覆盖 分支覆盖 101 MC/MD 测试 修正条件/判定覆盖(Modified Condition/Decision Coverage) 一种实用的软件结构覆盖率测试准则, 已被广泛地应用于软件验证和测试 过程中,指的是程序中入口和出口的每个点至少被调用一次,从而每个程序 的判定到所有可能的结果值都要至少转换一次,判定中的每个条件可以独立 地显示出它对判定结果的影响。复杂的布尔表达式需要开发一个逻辑运算的 真值表,对布尔表达式中的每个变量进行“真”和“假”的设置。 条件是指不含任何逻辑操作符的布尔表达式,由关系操作符构成。 判定是指包含逻辑操作符的布尔表达式。 一个没有逻辑算子的结果就是一个条件。 if(A=0 | B=0) else printf(“FALSE”); A,B,C,D是一个条件,而(A=0 | B=0) & (C=0 | D=0)叫一个Decision 102 黑箱黑箱(黑盒黑盒)测试测试 所谓黑箱测试是将整个被测试的软件当成一个黑箱子, 看不见里边的任何细节,知识进行操作、输入资料、观 察输出资料。 主要在测试软件的需求功能,对软件界面进行测试,也 就是以测试资料检查软件功能是否正确,输入资料是否 正确接受、是否产生正确的输出结果、外部资料的完整 性是否得到维护等。 功能性测试 非功能性测试-GUI状态切换 103 例子例子 一个医疗软件的操作界面,使用者可以输入想要的输入年龄的 范围,例如下限为:1,上限为100。且以1为最小单位的整数。 等价区域: 有效资料区(n=1): 1n,2n,3n,30n 无效区域 输入值1、100、输入小数或者是负数 边界值 有效数据: 1;100 无效数据:0、1000 104 状态转移测试状态转移测试 软件的执行过程是通过不同的状态转换实现的,而最基本的就 是初始状态和中断状态。 在状态转移的测试过程中,如果有发现和软件规格说明书不同 的地方,都应列入测试报告中。 以远端挂号系统软件的读值功能为例 设备初 始状态 分析判 断并处 理操作 者输入 的资料 将资料 送到伺 服机中 资料处理完毕 将有关资料传 回给使用者界 面(显示及选 择挂号科别, 资料处理及确 认) 进入提款 的终端状 态(询问 是否还需 要其它服 务或退出 ) 105 白箱测试与黑箱测试的主要差异 白箱测试(结构性测试)白箱测试(结构性测试) 黑箱测试(功能性测试)黑箱测试(功能性测试) 验证代码处理流程逻辑运作 验证处理功能,测试个案输入直接影响到输 出结果 专业人士 内部或者委外进行皆宜 深度(depth) 以广度(coverage)测试为主 应用于代码设计初期 应用于软件完成后 106 软件测试工作流程 自下而上(V模型右半边) 单元测试集成测试系统测试(功能测试) 自上而下 系统测试(功能测试)集成测试单元测试 107 新项目(自下而上的测试流程) .h 测试报告 fail 开发模式 .h, .c, .cpp 创建/调试/修改单元-集成测试用例 执行测试用例 执行结果 测试覆盖率是 否符合要求 资深测试工程师对测试用 例的合理性和是否充分覆 盖功能需求进行复审 测试用例数据和测试脚本 定期执行测试用例进行回归测试 是否还有其它需要开 发的新增测试模块 系统功能 测
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号