- 热门文章:
- · 如何成为一名优秀的软件测试工程师
- · 软件测试常用术语表
- · 软件测试知识帖(99-108)
- · 软件测试知识帖(57-70)
- · 软件测试知识帖(71-84)
- · 如何写毕业论文
- · 计算机专业毕业设计的类型
- · 实现一个系统设计生命周期
- · 文档编制的质量要求
- · 程序文档合一与动态文档
- · 无形团队,有形管理
- · Microsoft Visio在信息管理…
嵌入式软件的基本测试方法
嵌入式软件的基本测试方法
作者:Jerry
转载请注明源自www.sawin.cn网站
随着制造行业的再一次崛起,嵌入式软件目前在软件行业中越来越多,2004年软件行业最火爆的三个项目是:嵌入式开发,软件培训以及软件外包。由于嵌入式软件与其他产品息息相关,这给嵌入式软件的测试工作带来了极大的困难,软件的测试工作不能够等程序烧到或者固化到芯片中才开始进行测试,这就太晚了,本文结合自己的一些经验提出自己的看法,希望大家一起讨论。
搞好开发前的原型设计
原型开发目前在开放流程中受到了更多的重视,同样嵌入式软件也是非常需要的。比如说一个录音机版面的设计,可以定义好版面上面的按键以及每个按键的功能。然后画出状态转化图,写清楚每个按键何时可以触发,触发后由哪个状态转入别的其他状态。原型设计好了,组织专家,工程师进行评审,尽可能多的找出原型中不合理需要改进的地方;改进以后,有必要可以进行再一次的评审工作。每一次评审工作需要记录评审建议是否需要解决?如何解决以及实际解决情况。
进行设计和开发工作
设计和开发工作需要设立里程碑。每个里程碑结束前都需要进行评审工作。由于嵌入式软件的运行环境不同,受到很大的限制,所以在进行开发之前需要进行编程规范工作,编码的时候需要严格按照编码要求进行工作,每一个条款都需要认真执行和审查。现在业界提供许多关于嵌入式软件开发的标准,大家可以通过网站搜索,最好能够购买业界一些比较著名的标准。目前市场上也提供许多关于代码检验的工具。为什么一直提出代码编码规范?这是因为嵌入式软件的质量与代码规范是十分重要的。举个例子,著名的阿里亚火箭失事,专家进行详细的调查工作,最后发现问题出在代码上。代码是符合标准C语言的,但是在运行过程中由于程序员将一个长整形变量赋给了一个短整形变量,造成内存溢出,这是导致火箭失事的关键所在。
(
int8 a;
int32 b;
…
a=b;
)
代码测试
当程序开发完毕,需要进行测试工作,但是在程序烧入或固化芯片之前如何进行测试呢?这里介绍一种方法:比如程序时使用C语言进行开发的,请将所有的操作都封入在函数中,函数的定义都在相应的头文件中定义(.h),然后设计测试用例,书写测试代码,测试代码包含相应头文件,可以对函数进行检测。测试案例往往分为两类:一种是功能测试,主要测试函数的功能;另外一种是错误参数测试,主要检查程序对进行错误参数进行检验。
功能测试
这种测试的运行往往需要通过仿真器辅助完成,比如类似录音机软件程序,分别测试播放,加大(减小)音量,停止,暂停(取消暂停),快速前进,快速后退,录音对应的功能是否能够正常运行。
错误测试
主要测试函数在调用参数无效的时候,系统是否会按照规定返回正确的错误代码。比如
function test(int Tid)
测试的时候给出一个错误的序列号(Tid),看程序是否返回正确的错误代码。
对于函数function test1(int t)需要进行特出的处理
t 定义为1-100
我们可以按照边界值法和等价分类法进行测试
上边界:-1,0,1
下边界:99,100,101
中边界:50
所以测试用例集合为(-1,0,1,50,99,100,101),其中-1,101为错误测试用例,其他为正确测试用例
功能组合测试
在进行完功能测试后,我们可以进行功能组和测试,还是拿录音机程序做个例子。我们可以定义将音量增加到10,快速前进,检查音量,看是否还是为10;播放,暂停,试图调整音量,检查调整音量的功能是否可以被成功执行。
烧入固化测试
当以上测试都通过后可以将程序烧入芯片或者固化,进行最后在实际环境中进行测试工作。
最后需要指出的是,虽然目前市场上嵌入式测试工具比较多,最有名气的就是CodeTest,但是价格都非常昂贵,一般都需要上千美金,中小型企业可以根据自己的情况多想办法,如果大家有啥好的别的方法,可以告诉我(xianggu@yahoo.com),大家一起讨论。希望中国的嵌入式产品质量越来越高。
(最后修改日期:2004-12-04)
- · Delphi源程序格式书写规范
- · C语言的代码规范探讨
- · 软件开发文档模板(1)
- · IEEE指南:开发系统需求规格
- · 国家计算机标准和文件模板(…
- · 国家计算机标准和文件模板(…
- · 典型系统分析
- · 项目方案实例 - ProSun2000项目方案
- · 使用UML为EAI建模
- · 系统约定:用UML描述工作流管理
- · UML 在商业活动建模中的应用
- · XMI 与 UML 合力推动产品开发
- · 使用 XML:UML、XMI 和代码生成,第 1 部分
- · 两段式OOAD开发大型3- tier系统
- · 如何绘制和分析业务流程(讲义)
- · 动态企业建模体系
- · 管理软件的“银弹”
- · 用UML进行有效业务建模(编译…
- · 使用用例捕获业务需求(业务需求的7个实践原则)
- · 需求分析
- · 用例场景,软件需求的关键
- · C#语言概述
- · Internet技术知识讲座----电子邮件E-mail
- · Internet技术知识讲座----HTTP协议
- · Internet技术知识讲座----TCP/UDP协议
- · Internet技术知识讲座----域名体系与域名系统
- · Internet技术知识讲座----TCP/IP协议
- · Internet技术知识讲座----Ip地址与地址解析
- · 试论软件设计原则
- · 源代码就是设计
- · 泛型编程与设计新思维
- · 用JAVA和XML构建分布式系统
- · 网站可用性设计指南
- · VC面向对象开发分析与设计实例解析
- · 从软件设计到应用系统实现
- · 了解AOP
- · web应用文章(1)
- · 常规应用系统设计要点
