James Whittaker的软件测试戒律(二)

本文借鉴圣经十诫的风格,阐述了软件测试领域的关键原则与实践建议。包括如何利用大量输入测试应用程序,寻找预测行为的基准,避免追求不可重现的缺陷,以及自动化测试的重要性。文章还强调了记录步骤、使用工具辅助、合理分配时间和资源等关键点。

摘录自《探索式软件测试》(注:作者模仿了圣经十诫的语气和内容编写了软件测试戒律)

1.汝应用大量输入反复锤炼汝之应用程序

2.汝应贪图汝之邻居的应用程序

3.汝应亲自寻找睿智的预言家

4.汝不应崇拜无法重现的失效

5.汝应尊重汝的模型和自动化测试

6.汝应利用开发人员的过错与他们作对

7.汝应醉心于谋杀应用程序(庆祝蓝屏吧)

8.汝应保持安息日(指产品发布时刻)的圣洁

9.汝应贪图开发人员的源代码

 

以下内容主要来自《探索式软件测试》,本人根据自己的理解对部分内容稍作了修改

 

3.汝应亲自寻找睿智的预言家

         我们都知道,测试至少存在两个部分。首先我们使用输入数据,然后对结果进行检查。我们将数据输入到软件中,然后测试该软件是否按照既定的方式回应这些输入。如果我们无法对结果进行验证,测试就无法有效进行。

        关于所谓睿智的预言家,我们有兴趣的是“应用某些测试后,该应用程序是否按照既定的方式运行?”。这就需要我们的预言家(也就是测试的基准)清楚的了解在给定特定的输入和环境条件组合的情况下,程序应有的行为。(博主的理解:即要事先知道你要执行的测试会有怎样的预期结果,博主更愿意把这个预言家叫做预期结果。如果不知道预期结果,你也就无法判断程序返回的结果是不是正确。)

        将测试基准进行自动化是一件很困难的事,但是很值得去最求,因为这不仅仅可以创建一个很有价值的测试工具,其本身也是一个启迪智慧的追求过程。即通过自动化的活动,你得到了一个更加聪明的测试者。无论你最终能否成功地将测试基准自动化,强迫自己像它一样思考,常常比你可能选择做的其他任何事情更有工作效率。

 

4.汝不应崇拜无法重现的失效

        我们都曾遇到这种情况,不是吗?你遇到一个缺陷,通常是很好的缺陷,但是却无法重现。缺陷越好,你的感觉越不好。我曾经见过许多优秀的测试人员,花了数小时甚至数天的时间试图重现一个他们只见过一次的缺陷。

        为了重现这样一个缺陷的尝试通常是英勇的,但是没有合适的工具,这些尝试只能是浪费时间。而我看到的情况是时间被白白浪费了,而测试人员却没有意识到这点。我曾经看到一个测试人员花了一整天的时间试图记起一个崩溃缺陷的重现步骤,但是没有成功。我更愿意那个测试人员把他的时间用在其它更好的地方。和其它任何一个测试人员一样,我完全理解那种挫败的感觉,但是最求一个这样的缺陷的结果往往是无法充分利用时间。

        这条戒律的教育意义是双重的。第一、尽你最大努力注意并记住(或记录下来)对软件采取的测试步骤,同时记住应用程序的响应。第二、考虑使用调试器之类能追踪动作和软件状态的工具。这将去除重现缺陷时不少猜测成分,并防止优秀的测试人员违背这条戒律。

 

博主理解:纵观全文,这条戒律的教育意义应该是有三重的,最后一条作者在前面提到了,但并没有在最后的归纳中写下

1、努力记录步骤和结果

2、尽量使用工具辅助

3、如果重现太困难,不要在它上面浪费太多时间,将你的时间投入到其它更有效率的测试中。这样对项目总体是更好的选择。

内容概要:本文介绍了一种用于电磁暂态(EMT)研究的第四类全变流器型风力发电系统的通用Simulink仿真模型,旨在构建一个能够准确反映实际风电系统动态特性的简化通用模型。该模型涵盖了风力机、传动链、发电机、全功率变流器及其控制策略等关键组成部分,重点突出系统在电网故障、风速波动等复杂工况下的动态响应能力,适用于风电并网电磁暂态分析、新型电力系统稳定性评估及高比例可再生能源接入场景的研究。模型设计兼顾准确性与仿真效率,便于研究人员快速搭建和调试,推动风电系统建模与控制技术的发展; 适合人群:具备一定电力系统理论基础和MATLAB/Simulink仿真能力,从事新能源发电、电力电子变换、风电并网控制及相关方向的研究生、科研人员及工程技术人员; 使用场景及目标:①开展风电系统在电网扰动下的电磁暂态仿真分析;②研究全功率变流器风电机组的动态行为与控制特性;③支撑新型电力系统中高渗透率风电接入的稳定性与电能质量评估,服务于学术研究、课程教学与工程项目前期仿真验证; 阅读建议:建议读者结合文中提供的模型结构与参数设置,在Simulink环境中动手复现并调试仿真模型,通过设置不同运行工况(如三相短路、低电压穿越、风速突变等)观察系统响应,深入理解全变流器风电机组的建模方法、控制逻辑与动态特性,进而拓展应用于更复杂的多机并网或综合能源系统仿真场景。
内容概要:本文探讨了Hash算法在芯片行业,特别是网络处理器(NPU)中的性能优化实践,聚焦于如何通过硬件流水线设计实现纳秒级高速哈希查找。文章分析了传统软件哈希方案在高带宽场景下的局限性,提出基于硬件描述语言或高层次综合(HLS)的设计方法,采用CRC32等硬件友好型哈希函数、并行多路哈希、流水线化解耦以及双端口存储结构等核心技术,实现低延迟、无阻塞的数据包处理。通过C++风格的HLS代码示例,展示了从算法选择到资源优化的完整硬件加速逻辑,并深入剖析了循环展开、位宽控制、内存映射和流水线调度等关键实现细节。最后展望了可编程交换机、P4语言支持及TCAM与哈希混合架构等未来发展方向。; 适合人群:具备数字电路基础、熟悉Verilog/SystemVerilog或HLS的芯片设计工程师,以及从事网络芯片、FPGA加速、高性能路由设备研发的技术人员(工作年限1-5年为宜);也适合对硬件加速算法感兴趣的研究人员。; 使用场景及目标:①掌握如何将哈希算法高效映射到硬件逻辑中以满足线速转发需求;②理解流水线设计、资源约束优化、读写冲突规避等在实际芯片项目中的应用;③为开发高性能网络处理器中的流表/路由表查找单元提供技术参考与实现范例。; 阅读建议:学习时应结合HLS工具(如Xilinx Vitis HLS)进行代码仿真与综合,重点关注#pragma指令对硬件结构的影响,并对比不同哈希算法在资源占用与时序表现上的差异,深入理解“空间换时间”的硬件优化本质。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值