测试的目的 寻找最小的测试向量集去覆盖更多的芯片以及板级的故障 衡量标准:故障覆盖率 2.可测性设计 可测性设计基础 所谓可测性设计是指设计人员在设计系统和电路的同时,考虑到测试的要求,通过增加一定的硬件开销 ,获得最大可测性的设计过程。 目前,主要的可测性设计方法有: 扫描通路测试(Scan) 内建自测试(BIST) 边界扫描测试(Boundary Scan) 可测性设计的优势和不足 3.可测性方法(SCAN、BIST、 Boundary SCAN) 扫描通路测试 Scan 可测试性 Scan的基本概念 扫描测试设计规则 可控制性:把激励施加到被测单元的能力 可观察性:故障传播到原始输出端的能力 扫描测试的基本概念 扫描测试是目前数字集成电路设计中最常用的可测性设计技术 逻辑单元BIST Logic BIST是SoC设计中芯片可测性设计的发展方向。 大多数的ASIC使用基于扫描的DFT技术。对于规模越来越大的芯片来说,扫描测试的策略面临着巨大的挑战。
使用这种方法我们可以快速的创建各浏览器表现一致的按钮,免受各种bug困扰,但同时也带来了可访问性问题。 虽然点击一个链接时,通常链接会将我们带至其他地方,但使用辅助工具的用户仍然能够感知到这里是可以点击的(而且功能性链接在现代交互中使用的越来越广泛)。如果使用的是其他元素,就没有那么幸运了。
因此异步不仅利用底层框架平台的异步性,更重要的是如何做到应用本身的异步性,只有做到了这一点才算是真正的异步。 我想这一点大家应该比较清楚,如果将业务逻辑用存储过程实现,那么就会造成非常差的伸缩性,但是我想说的是及时不用关系数据库的特性,如果我们不能从应用的角度去设计系统,照样会造成很差的伸缩性。 业务对象会触发领域事件,然后最终领域事件监听器调用技术组件完成一些附加操作,采用这种方式,我们还可以采用异步的领域事件,这就使得系统的并发通过JAVA本身的内存锁机制实现,而不是靠原来的数据库的事务隔离性来保证并发安全性 容量规划以及伸缩性探讨会 我们要清楚的认识到当前系统能支持的负载,以及系统中可能存在的性能和伸缩性的瓶颈在哪里,在解决了某一个伸缩性的瓶颈以后,我们就需要关注下一个随着系统不断增加可能带来伸缩性瓶颈的问题 回滚 任何操作都有可能失败,因此我们的系统一定要做好回滚操作,这个回滚操作室广义的回滚,具体可参考“可伸缩性和可用性反模式”。 根源分析 确保能在发生问题的时候找到问题的根源,做到治标治本。
人为错误, 比如我们的系统依赖外部的配置, 这个时候需要人工手动下发配置, 结果配置缺失或者配置错误导致软件朝着不可预期的方向执行导致数据错乱, 这个时候我们查询数据结果也不对. 2) 可扩展性与可伸缩性 可扩展在我的理解主要包含两个层次, 其一是软件层面, 可扩展意味着我们的软件能够适配业务的变化,也是后面可维护性中要具备可演进性,其有两种模式如下: 另一个可扩展层面就是我们架构部署层面上的可伸缩性, 什么是可伸缩性? 可伸缩性就是在系统面临规模的增长,我们的性能逐步出现瓶颈,比如机器负载增加、耗时增加等, 那么这个时候可伸缩性是指我们可以通过增加资源来让我们的系统恢复到原有的性能水平. 可伸缩性意味着即使负载增加,也有办法保持良好的性能。为了讨论可扩展性,我们首先需要有定量描述负载和性能的方法。我们简要地以推特的主页时间线为例来描述负载,并以响应时间的百分位数作为衡量性能的一种方式。 在一个具有可扩展性的系统中,你可以增加处理能力,以便在高负载下仍能保持可靠性。 可维护性包含很多方面,但本质上是为那些需要与系统打交道的工程和运维团队创造更好的工作条件。
可迭代与迭代器的区别 2. 应用 2.1. 字典dict的迭代 2.2. 字符串str的迭代 3. 判断对象的可迭代性和获得获取迭代索引 3.1. 判断对象的可迭代性 3.2. 参考文献 Python迭代和对象的可迭代性 Python文档整理目录: https://blog.csdn.net/humanking7/article/details/80757533 0. 可迭代与迭代器的区别 可迭代: 在Python中如果一个对象有__iter__( )方法或__getitem__( )方法,则称这个对象是可迭代的(Iterable);其中__iter__( )方法的作用是让对象可以用 判断对象的可迭代性和获得获取迭代索引 3.1. 判断对象的可迭代性 由1.2节可知,如果对象类中含有__iter__( )方法或__getitem__( )方法,则称这个对象是可迭代的(Iterable),那么如何判断呢?
目前而言,ARIA 是唯一一种可以添加可访问帮助或说明文本的方式。 可访问性示意图 注意点1: 官方给出的最佳实践中指出: 与其乱用、错用 aria 属性,那还是不要用的好 role 属性和 aria 属性之间的区别 比如说:
JSON文件 回放:在某个方法执行时,如果是回放范围内的,则拦截该方法的执行,将匹配方法执行的MockRecord记录作为本次执行的结果进行返回 增量录制:在回放时,如果查无记录,则执行真实的方法并进行录制 接口录制回放:在微服务运行时,通过拦截HTTP请求和处理过程中的指定依赖来自动形成可用于回放的接口自动化用例。 后端重新录制:根据提供的HTTP请求文件来回放并重新录制指定依赖来更新接口自动化用例。 特殊使用场景: 异常录制:如果方法在执行过程中产生了异常,则需要记录该异常,以便于回放时将相同的异常作为该方法被再次执行时的结果。 有状态回放:默认情况下,在回放时将返回匹配到的第一条MockRecord记录。某些情况下,如转账前后,查询账户余额,相同请求下希望有不同的返回值,因此设计了有状态回放来支持该类场景。 ,按需开启 工具原型见 2021第一篇-流量录制回放完整案例
特别要说明的是,QMRR组件是使用Remod框架输出的可复用业务层组件,该组件包含React 业务组件与Redux 相关业务层代码,与传统Page不同的是,使用了Remod内置的connect方法延迟连接到 Reducer 代码全部优化掉 提升开发效率,表格页面开发效率从1天提升到1小时 减少样板代码,CLOC统计模块代码量减少约 15.3% 减少重复代码,CLOC统计项目代码量平均减少约 50.2% 高可维护
在深度学习模型的训练过程中,难免引入随机因素,这就会对模型的可复现性产生不好的影响。但是对于研究人员来讲,模型的可复现性是很重要的。 这篇文章收集并总结了可能导致模型难以复现的原因,虽然不可能完全避免随机因素,但是可以通过一些设置尽可能降低模型的随机性。 1. 常规操作 PyTorch官方提供了一些关于可复现性的解释和说明。 2. upsample层 upsample导致模型可复现性变差,这一点在PyTorch的官方库issue#12207中有提到。 总结 上面大概梳理了一下可能导致PyTorch的模型可复现性出现问题的原因。可以看出来,有很多问题是难以避免的,比如使用到官方提及的几个方法、涉及到atomicAdd的操作、多线程操作等等。 目前笔者进行了多次试验来研究模型的可复现性,偶尔会出现两次一模一样的训练结果,但是更多实验中,两次的训练结果都是略有不同的,不过通过以上设置,可以让训练结果差距在1%以内。
这篇文章的目的是: 为什么可访问性很重要 使网站可访问 测试可访问性 关于可访问性的错误观念 可访问性影响所有用户,而不仅仅是那些有特定障碍的用户。 这很重要,因为它将您的可访问性概念从“因为只有一些人有X残疾并不重要”转变为“我们需要覆盖所有用户的压力情况”。这有助于其他人更好地了解为什么可访问性如此重要。 Web可访问性的四个关键 最广泛接受的可访问性规则是Web内容和可访问性指南2.0,或简称WCAG 2.0。它们是任何技术界面的通用规则,这也是它们如此受欢迎的原因之一。 测试可访问性 使用一个或多个工具自动测试: 颜色对比 语义HTML 不需要的div元素 翻译文本 ARIA和其他可访问性属性,如标题 自动测试涵盖了至少75%的可访问性问题。 永远不要忘记无障碍 可访问性与数据库管理,应用程序架构,数据安全性或远程镇静剂枪一样重要 - 如果没有它们,它们很快就会分崩离析,可能会火上浇油。
可测试性 关于CPO光引擎的可测试性(testing ability),Broadcom与Marvell都强调了可测试性的重要性,并分享了各自光引擎的测试经验。 可测试性是CPO制造过程中需要解决的首要难题。 而对于传统的可插拔光模块,其FIT的典型值为125左右。CPO与可插拔光模块对可靠性的要求差别还是非常大的。 CPO的可测试性、可靠性、可插拔光学连接器与大批量组装方案,是大家比较关注的方向。虽然每家公司的技术路线目前并不完全一致(未来是否会形成统一标准?),但是涉及到的问题是共性的。 对于可插拔光学连接器的研发,是CPO实现可测试性不可或缺的一环。为了保障CPO的可靠性,采用外置激光器模块也基本成为共识。
1 问题 ReentrantLock是如何实现可重入性的? 并且在进入锁内之前进行了哪些判断?
尽管如此,他们还是能够修复和防止WebAIM百万报告中强调的许多问题,并避免困扰当今互联网的主要可访问性问题。WebAIM Million report 显然,网络可访问性不仅仅是基础知识。 无论哪种方式, 这是一个可疑的说法, 可以听到接近项目结束时, 他们不考虑网络可访问性的早期阶段...这使得它昂贵! 从一开始,可访问的网站可以是视觉上引人注目的、动画的、有趣的互动网站。优秀的设计师在将包容性和可访问性灌输到开箱即用方面做得非常好。 覆盖物足以确保 Web 可访问性 这更多的是高管和决定购买此类解决方案的人的误解。辅助功能社区的共识几乎是一致的:覆盖不起作用。他们都没有完全工作。 覆盖物是一种自动化技术,旨在提高网站的可访问性。 正如我们在上一节中提到的,Web 可访问性没有一刀切的解决方案。而这正是叠加试图成为。 事情可能会改变。
一些组件只需要基本的可重用性。 其他人则需要更复杂的技术才能充分利用它们。 我已经确定了6个不同级别的可重用性,但是可能还有更多我错过的地方。 这是有关级别的基本概述。 我即将举行的课程“ 可重用组件 ”探讨了每个组件以及如何充分利用它们。 1.模板化 通过这种技术,我们将其包装在其自己的组件中,而不是到处复制+粘贴代码。 当我们重用该组件(而不是直接使用代码)时,它给我们带来了两个好处: 将来进行更改要容易得多,因为我们只需要在一个地方做 我们不必记住将代码复制到的数十个(或数百个)地方 这是最基本的,也是最经常谈论的可重用性形式 5.扩展 通过适应性和反转性,我们拥有必要的技术,可以最大限度地提高组件的可重用性。 下一步是将这些技术应用于整个组件,以便我们更轻松地扩展其行为。 我们使用命名槽在组件中添加一个或多个扩展点。 这是我遇到的最先进的可重用性应用程序。我用这个技术有很多在我自己的工作。 结论 这是我遇到的6个可重用性级别。 我可能会错过一些,我当然不会说这是一份详尽的清单,但是它足够完整,可以使用。
日常工作中大家经常忽略可访问性测试。今天我们就先聊一聊可访问性测试。 什么是网页可访问性(无障碍): 网络是向所有人开放的,作为一个测试者(也是人),我们有责任检查它是否对所有用户开放。 测试一个web应用程序,以确保每个用户都能轻松地访问网站,这被称为可访问性测试。帮助确保网站在这一领域确实有效的专门测试分支被称为“Web可访问性测试”。 Web内容可访问性指南:这些指南建议了一些方法,可以帮助提高网站的可访问性。 如何衡量网页可访问性? web的可访问性可以通过W3C创建的web内容可访问性准则(WCAG)来衡量。很少有其他部门也制定了自己的指南,但这些指南也遵循了Web无障碍倡议(WAI)指南。 #8) PDF可访问性检查器:它检查PDF文件的可访问性。 易访问性测试清单/测试用例/场景 以下是在进行此类测试时需要检查的几点: 标签书写、摆放是否正确。 音频/视频内容是否正常可听/可见。
可重入函数是并发编程中必须要考虑的问题,否则代码就会有隐患,更糟糕的是这些隐患往往只能在特定场景下才能复现。 拓展: 一个函数所谓的可重入性,是在多线程的语境下的概念:一个函数如果同时被多条线程调用,他返回的结果都是严格一致的,那么该函数被称为“可重入”函数(reentrance funciton),否则被称为 从这点出发,如果你想要写一个线程安全的可重入函数的话,只要遵循以下原则就行了: A) 不使用任何静态数据,只使用局部变量或者堆内存。 B) 不调用上表中的任何非线程安全的不可重入函数。
星球群里,几位同学在讨论测试左移右移相关的话题,其中提到了一个词:可测性。 这个词在很多质量保障相关的文章中出现过,大家也觉得可测性是质量保障工作开展很重要的一个前提。但是可测性到底该如何理解? 可测性有没有一个具体的定义?如果有,在软件的整个生命周期中,可测性在不同环节又是如何体现的? 这篇文章,我想谈谈我对于可测性的理解和思考。 如何理解可测性? 设计阶段 设计阶段的可测性,主要指的是技术实现方案和测试用例两方面。 研发测试阶段 到了研发测试阶段,可测性其实都是大家熟知的事情了。 其实所谓的可测性,和质量门禁在本质上没有太多区别。唯一的区别在于:可测性是前置要求,质量门禁是前置要求的具体定义。
,连 Mock 依赖都难(缺乏可测试性)。 这三者看似独立,实则相辅相成:可维护性是基础:代码能被快速理解、修改,减少协作成本;可扩展性是延伸:基于良好的维护性,应对变化时无需重构核心逻辑;可测试性是保障:通过测试验证修改的正确性,避免 “改一处崩多处 协同关系:一个良性循环可维护性是基础:模块化、命名清晰的代码,自然更容易拆分扩展点、隔离依赖(提升可扩展性和可测试性);可测试性是保障:写测试的过程会倒逼你拆分耦合、明确输入输出(反过来优化可维护性和可扩展性 六、总结:写出 “三优代码” 的核心心法可维护性、可扩展性、可测试性,本质都是 “降低代码的认知成本和修改成本”。 (可维护性)新增需求时我需要改多少代码?(可扩展性)我能轻松写出测试用例覆盖核心场景吗?(可测试性)坚持下去,你的编码能力会在潜移默化中实现质的飞跃。
可插拔性 为了实现动态数据源管理框架的目标,Calcite提供了丰富的可插拔能力和扩展性。用户可以根据使用场景进行自定义扩展。 相关可插拔扩展的组件包括: SqlParserImplFactory:语法解析器,可扩展特定的SQL方言,例如,新增SqlSparkParserImpl 用于Spark语法解析 Lex:词法配置,可配置标识符处理行为 模式连接异构数据源,可编写自定义Adapter连接特定的扩展数据源 SQL解析:基于FreeMarker模板化,提供了高度可配置的 SQL 解析器,可继承已有的语法解析进行自定义扩展 查询优化:查询优化器是可插拔的 ,支持自定义优化规则和代价模型,可根据特定场景和数据源,实现个性化的优化策略 函数库:支持添加自定义的UDF、UDTF、UDAF等,支持不同的模式Function查找 类型系统:提供了可扩展的类型系统, 更多详情可参考官方文档:Avatica Background 我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!
这段经历对我在弈倍现在的投研模式有了很多的借鉴,比较核心的有: 系统化量化投资的每一个步骤,减少主观的干预 长期看来,因子的逻辑性和可交易性非常重要 有限度、有节制的使用GA算法因子挖掘 量化策略是非常多样化的 我们认为,一个好的Alpha信号应该对噪音不敏感,这才是可持续的关键。因此,敏感性测试和显着性测试是很重要的。 噪音的冲击往往会带来阶段性的亏损,但噪音之后的均值回归又会给量化策略带来可观的收益。 Alpha研究:更关注因子的可交易性 一切可用的、可靠的数据都是我们Alpha的来源。 所以,在设计新Alpha的过程中,需要不断测试Alpha的稀缺性,逻辑性,稳定性和可交易性。 这个过程中不会特别在意输入特征本身的预测性,即使在意,可能也只是考察特征与投资标的未来收益的相关性。但是在弈倍,不仅可预测性,我们还看中因子的可交易性,包括它的换手、回撤及胜率等。