51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 97095|回复: 131
打印 上一主题 下一主题

嵌入式软件的基本测试方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-2-18 15:26:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:佚名      出处:互连网
摘要:嵌入式软件的基本测试方法
随着制造行业的再一次崛起,嵌入式软件目前在软件行业中越来越多,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;播放,暂停,试图调整音量,检查调整音量的功能是否可以被成功执行。

烧入固化测试

当以上测试都通过后可以将程序烧入芯片或者固化,进行最后在实际环境中进行测试工作。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-3-9 23:35:59 | 只看该作者
写的不错,比较符合实际,不过这好象不是什么嵌入式的东西.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-3-16 16:49:51 | 只看该作者
谢谢了!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-4-17 17:26:27 | 只看该作者
挺符合实际,基本就是这么个流程。代码测试属于白盒,功能以后都是黑盒的了。我就是做机顶盒黑盒测试的,刚起步还不知道怎么回事呢,多多交流
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-4-25 10:09:27 | 只看该作者
不错,辛苦了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-5-18 16:43:42 | 只看该作者
谢谢!但是感觉不够具体。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-5-26 14:37:32 | 只看该作者
嵌入式测试包括低层次测试和高层次测试。其中,低层次测试只测试单个部件,在类似于开发的环境中,在生命周期的早期进行,高层次测试则对集成系统或子系统进行测度,是在(模拟的)真实环境中,在生命周期的后期限进行。通常情况下,低层次测试多为面向白盒的测试,而高层次测试多为面向黑盒的测试。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-5-26 22:12:42 | 只看该作者
顶!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-5-27 18:25:41 | 只看该作者
能不能更具体讲一下在低级测试阶段也就是面向白盒测试阶段该怎样去进行测试呢?先谢谢了!本人刚开始入门,很多具体的饿问题都不懂!请各位赐教!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-6-22 13:12:39 | 只看该作者
其实主要的还是黑盒测试!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-7-31 18:39:10 | 只看该作者
大家好,我是做视频处理机顶盒测试的,刚刚做嵌入式不久,大家可以交流一下
msn:ericpeng0826.hotmail.com
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-9-12 11:18:53 | 只看该作者
语言描述不清,嵌入式的范围很大,不知道楼主说的那种平台的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-12-3 23:15:23 | 只看该作者
辛苦了。。。还可以,不过举的例子不够典型。。。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2006-12-7 14:41:40 | 只看该作者
还有些疑惑,第四步功能测试,通过仿真器辅助完成,这里的仿真器如何解释?是自己开发的l类似于硬件功能的可视操作平台么?
    错误测试是否应该并入代码测试?在代码测试时就应该把错误值输入了,为什么要另外再测呢?两者有什么不同么?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2006-12-15 09:13:20 | 只看该作者
fei chang ganxie
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-2-15 09:19:25 | 只看该作者
学了点新知识.呵呵............
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-4-18 17:13:47 | 只看该作者

学习

以前是做产品测试的,现在刚接触到嵌入式测试,所以需要加强学习.
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2007-5-17 09:11:55 | 只看该作者
Cool
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2007-5-26 15:58:30 | 只看该作者
我主要做黑盒的测试,功能,组合功能。
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2007-6-1 10:47:26 | 只看该作者
sdlkfj2 不错,写的虽然不是很详细,但是我也学到了不少东西,谢谢楼主
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-28 18:38 , Processed in 0.084238 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表