嵌入式软件测试介绍
内容提要
关于软件测试 软件测试技术 嵌入式软件测试方法 嵌入式软件测试策略 嵌入式软件测试解决方案
2020年6月27日
1
关于软件测试(1)
❖ 对软件测试的几种认识
测试与调试类似,是对调试的一种补充 测试是为了证明软件正确 测试是为了发现软件错误 测试是检验软件是否满足规定的需求 测试是为了减小软件不工作的风险 测试是不需要更多的测试工作即可以产生低风险软件
❖ 软件测试的重要性
海湾战争期间,由于跟踪软件在运行100小时后出 现0.36秒的舍入误差,导致未能成功拦截一枚飞 毛腿导弹,致使28名联军士兵丧生。
1963年美国宇航局事例(Fortran程序):
DO 5 I=1,3
误写成
DO 5 I=1.3;
一点之差导致火箭发射失败
199d6o年ubl6e月d4_b日h;,s阿hor利t 亚s_娜bh;5型火箭首次发射失败
应尽早地开展软件测试。
❖ 问题发现得越早,解决问题的代价就越小。
严格执行测试计划,排除测试的随意性 测试是需要维护的
2020年6月27日❖ 妥善保存测试计划、测试用例、出错统计和测试分析报告,9 为维护提供方便
关于软件测试(8)
假设每次测试用时1ns,全年不间断地测试:
18 times Statistical Paths = 1018
2020年6月27一日 两件测试工具是不够的。
7
❖ 因此,技术、策略和管理构成了软件测试
关于软件测试(6)
测试与调试的关系
测试是检查软件发现问题,调试是分析软件解决问题 测试贯穿于整个软件生存期,调试主要是在软件开发过
程中 调试具有随意性、不明确性,而测试是明确的、可重复
的 测试是全方位的,而调试是代码级的
软件测试要解决的问题是:软件的行为是否符合“规定的”要求 ,它有两个方面的含义:
❖ Does it do everything it is specified to do?
❖ Does it do anything it is not specified to do?
2020年6月27日
3
关于软件测试(3)
2❖020年测6月试27日用例的典型设计方法
13
黑盒法(Black box testing)
软件测试技术——黑盒测试
❖ 黑盒测试的概念
(1)
若被测程序与特定的功能相联系,我们可以针对 功能设计测试,以证实各功能完全可执行,同时 在功能中寻找错误
把测试对象看做一个黑盒子,完全不考虑程序内 部的逻辑结构和内部特性,只依据程序的需求规 格说明书,检查程序的功能是否正确。
的一种认识上的训练
2020年6月27日
2
关于软件测试(2)
❖ 什么是软件测试
专家说法:
测试是为了发现错误而执行程序的过程 软件测试是对软件建立信心的过程
……
IEEE 1983:
使用人工或自动手段来运行某个系统的过程,其目的在于检验它 是否满足规定的需求或是弄清结果与实际结果之间的差别
❖ 总结
2020年6月27日
11
关于软件测试(10)
❖ 测试设计
测试是需要设计的。因此测试是一项具有很大创 造性的工作,其工作量一点也不比软件设计小。
软件测试与软件开发相比,并不低人一等。
软件测试的创造性主要表现在:
❖测试方案选择
❖测试计划制定
❖测试用例设计
❖测试结果的分析
2020年6月2❖7日测试过程的管理程序并没有真正调用其他模块,而是从 桩模块处得到一个所需的值。这种技术叫做打桩。
测试与调试不能相互替代,但相互支持,相辅相成
2020年6月27日
8
关于软件测试(7)
❖ 软件测试的基本原则
Good-enough原则:
❖权衡投入/产出比,既不要不充分,也不要过分。
Pareto法则:
❖在分析、设计、试验、复审等阶段能够发现和避免80 %的bug
❖而系统的软件测试能够找出其余bug中的80%。
12
❖...
关于软件测试(11)
❖ 测试用例
所谓测试用例,是一份关于具体测试步骤的文档,用于指导测 试的实际操作。
测试用例可以是纯文本的说明文档,也可以是用脚本语言或高 级语言编写的一段代码。
测试用例应当包括:
❖测试用例名称及标识
❖测试目的
❖测试条件及设置
❖输入数据要求
❖预期的输出结果
❖操作步骤
❖ 软件测试的发展历程
软件测试并不是一开始就有的
❖轻视——重视
❖简单——复杂
❖被迫——主动
❖ 如何开展软件测试
测试是一个非常复杂的过程,不仅要掌握相
应的技术和方法,而且还要懂得在什么时候、
什么情况下使用什么方法,这就是软件测试
的策略问题。另外,软件测试的实施需要有
效的管理,仅靠简单地组建测试队伍或购买
sense_horizontal_velocity(&d_bh);
s_bh = d_bh; // OPERAND ERROR
2020年6月27日
4
关于软件测试(4)
❖ 软件测试的重要性
当前的软件开发方法——免疫力低
❖ 软件是一种特殊的产品
❖ 开发方法学因素
❖ 人不能避免犯错误
❖ 软件开发工具不完备
黑盒测试又叫做功能测试或数据驱动测试。
黑盒测试类似于中医:使用望、闻、问、切
❖ 黑盒测试的目的
是否有错误的或遗漏了的功能?
2020年6月在27日接口上,输入能否正确地接受? 能否输出正确的14 结果?
软件测试技术——黑盒测试 (2)
❖ 黑盒测试的一个常用技巧——打桩(Stub)
用在隔离测试中,用以消除其他程序对被测程序 的影响
❖ 维护费用昂贵
软件测试——保证软件产品质量的重要手段
❖ 软件测试能最大限度的发现软件中的错误,减少软件中 残留的错误,提高软件产品的可靠性
❖ 通过软件测试可以验证软件功能、性能、可用性、可移
2020年6月27日植性、约束、限制等指标满足规定的需求
5
❖ 软件可靠性测试可得到软件可靠性指标
关于软件测试(5)
18
-9
T=
10 x10
3600 x 24 x 365
T = 31.7 Years
2020年6月27日
10
关于软件测试(9)
❖ 什么是“错误”
我们通常用“错误”这一术语来描述测试过程 中发现的各种问题
在没有特别加以说明的情况下,这是一个泛用 的、模糊的概念,它指的可能是:
❖defect:缺陷。 ❖bug : 差错。 ❖error: 出错。 ❖failure:失效。