可测性设计工程师 (DFT engineer) 主要是做什么的?
DFT是的主要工作就是在芯片设计过程中,加入可测性逻辑。有的公司把该职位归到前端设计,有的归到中端实现。
DFT职位大多分布于规模较大的数字IC设计公司里,因为大公司对芯片品质要求高,而且规模越大,芯片越贵,DFT就越复杂越重要。
DFT主要是通过在芯片中加入可测性逻辑,等芯片制造出来,在ATE(自动测试仪)设备上通过可测性逻辑对芯片进行测试,挑出有制造缺陷的芯片并淘汰掉,留下没有制造缺陷的好芯片。
扩展资料:
这里需要注意,DFT只负责挑出制造缺陷,至于逻辑缺陷那是前端设计工程师和验证工程师的职责,DFT工程师也鞭长莫及。
DFT设计周期很长,从RTL代码阶段介入,需要和前端工程师一起规划scan模式下的时钟和复位网络,接着插入DFT逻辑,比如Scan chain,Mbist,Boundary Scan等。
然后用ATPG,Mbist,Boundary Scan工具产生测试向量,仿真验证测试向量。仿真又分不带时序信息的仿真和带时序的后仿。
参考资料来源:百度百科——可测性设计
下面我们提供一些提高架构设计可测试性的一些建议:
尽量避免使用静态方法。静态方法不能够利用继承进行覆盖,要替换依赖功能是比较困难的。
使用依赖注入(DI)。依赖注入可以很容易的替换真实的业务逻辑,从而把被测对象与依赖环境隔离开来。
使用接口。可以利用对接口的实现把模拟功能引入被测试对象中。
实例初始化要简单。单元测试过程要对被测试类进行创建和销毁。简化类的实例初始化逻辑,不但有利于编写自动化代码,也可以提高单元测试的运行效率。
以上是我们工作中提高软件系统可测试性的一些经验总结。另外一些好的设计实践也有利于提高软件系统的可测试性。 例如 S.O.L.I.D 原则。
S 单一职责原则,一个类只完成一项独立的工作。
O 开发封闭原则,对象应该对扩展开放,对修改封闭。
I 接口隔离原则,使用的接口实现对调用类是透明的。
D 依赖注入原则,高层次模块不依赖低层次模块的实现,而是依赖低层次模块的抽象。
一个产品的可测试性包括2方面的含义:一方面,是能通过外部控制激活产品状态(通常为故障状态)的特性,即可控性;另一方面,能通过控制将激活的故障状态传送到可观测端口的特性,即可观测性。可测试性是设备本身的一种设计特性。同可靠性(reliability)一样,可测试性也是装备本身所固有的一种设计特性。可测性也可以通过可控性、可观测性指标度量。改善可测试性的代价主要有测试生成代价和测试码置入代价两部分。可测试性设计主要包括:降低测试生成代价的设计和降低测试码置入代价的设计。
技术、产品对我们测试中的 测试用例 这个专业术语很熟悉,他们知道我们测试是执行测试用例的一个过程,那测试用例具体是什么呢?我想他们大概知道我们是通过需求分析而来。那测试用例到底是什么呢?如何设计测试用例的呢?
我们测试经常知道怎么去测试,但是能将测试所运用到的知识点进行概述出来的很少,有的甚至对理论这块知之甚少。《测试架构师修炼之道》刘琛梅老师著一书中的测试设计相关知识进行阅读整理。
将书中整理的一些重要的知识点如下:
1、测试设计顾名思义就是 设计测试用例 ,能够输出测试用例,用 最少的测试用例发现更多的缺陷 。
2、测试点和测试用例的区别?
我们通常在日常工作中分析需求整理出相应的测试点,再进行设计测试用例。测试点等同于测试用例吗?
答案当然是否定的。
①使用各种测试方法对 被测对象(产品需求 )进行分析得到测试点。测试分析是一个 “发现性” 的过程。
② 测试点不等同于测试用例 。测试用例在测试点 “加工” 基础上得到。测试点 去重、合并(太细的测试点)、细化(太泛的测试点具体说明) ,然后确定各个测试点的测试条件、测试数据和输出结果,形成测试用例。
3、将测试点加工为测试用例的过程称之为 “测试设计” ,这个过程中使用的方法称为 测试设计方法 。
4、四步测试设计法
5、测试设计法常见的有 等价类划分法、边界值分析法、场景错误推测法、因果图法、正交实验法 等等。每一种测试设计方法都可以套用上面的四步测试设计法进行用例设计。