首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于日志打印几点建议

WHERE 1.程序入口 在入口打印日志是因为这个时候传递进来参数没有经过任何处理,将它打印在日志文件中能一眼就知道程序原始数据是否符合我们预期,是不是传递进来原始数据就出现 问题。...IDE来让你查看控制台信息,此时就需要我们将堆栈信息记录在日志中,以便发生异常我们能准确定位程序在哪里出错。...首先,程序开发结束后交由给测试人员进行测试,测试人员根据测试用例发现某个用例输出和预期不符,此时他第一反应该是查看日志。...此时日志是INFO级别日志不会出现DEBUG级别的日志,现在就需要根据日志打印分为两种情况决定他下一步操作: 通过查看INFO日志发现是由于自己操作失误,造成了程序结果和预期不符合,这种情况不是程序出错...例如对于某个具体算法过程,可以使用DEBUG打印,开发人员不仅关心结果,同时在结果不正确应该能根据DEBUG日志查询计算过程是否出现偏差   WARN 某个不常走到分支,对于常规操作是不应该打印

94440
您找到你想要的搜索结果了吗?
是的
没有找到

框架设计想法

如果团队里面成员英文水平不高,那更建议使用接地气命名法而不是专业英文,对于特别的算法或难以表述,可采用中文 如果有大量 API 从命名上,不符合用户习惯,将会让开发者用户在不熟悉,不断找不到期望调用...而当此开发者对接到 B 业务,将会发现原有的知识,资源需要使用 Id 作为唯一标识符,已失效,需要重新学习新知识,对于业务 B 资源需要使用 Name 作为唯一标识符,同时也需要学习到资源定义对业务...那么对于此两个不同等级方法设计上,就可以采用不同命名方式,甚至要求传入不同参数来进行区分 不同逻辑截然不同指的是那些好混淆逻辑,而不是让每个模块各自为政 开发做好防逗比 按照优先级,最高是构建不通过...在实现框架,尽可能给定单位,比如我期望画出一个 10 像素矩形,我在调用某个函数进行画矩形,这个函数里面的参数是 int 值,请问我是否应该传入 10 进去?...关于给定单位请看 程序猿修养 给属性一个单位 博客 下面来做一道题,假定你要设计一个函数,这个函数里面有一个参数期望表示线程等待时间,请问此参数类型推荐是什么 最好方法就是让开发者写不出不符合预期逻辑

47920

黑盒测试和白盒测试区别

灰盒测试:白盒测试和黑盒测试往往不是决然分开,一般在白盒测试中交叉使用黑盒测试方法,在黑盒测试中交叉使用白盒测试方法。灰盒测试就是这类界于白盒测试和黑盒测试之间测试。...第二步是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。 2.      ...(5)、出错处理:模块代码要求能预见出错条件,并设置适当出错处理,以便一旦程序出错,能对出错程序重做安排,保证其逻辑正确性,这种出错处理应当是模块功能一部分。...测试类设计:一个模块或一个方法(Method)并不是一个独立程序,在考虑测试它要同时考虑它和外界联系,用些辅助模块去模拟与所测模块相联系其他模块。...测试用例设计基本原则:(1)、一个好测试用例在于能够发现至今没有发现错误;(2)、测试用例应由测试输入数据和与之对应预期输出结果这两部分组成;(3)、在测试用例设计时,应当包含合理输入条件和不合理输入条件

7.4K21

Web安全需要会写代码吗?

Web安全中Web漏洞,多数是因程序接收了“错误”输入数据,造成了非预期程序运行出错。这个输入数据是程序设计者,实现代码未预料到数据,造成Web程序出现“漏洞”。...代码审计 一旦我们发现代码有问题,我们可以针对代码这个安全问题点, 设计让程序出错各种测试用例,设计用例对应输入数据,执行这些测试,暴露复现Web程序漏洞。...此漏洞程序设计实现者,考虑了用户提供正常输入数据,没有更多过滤不怀好意用户,对程序提供进行XSS注入数据。 我们平时使用攻击靶机程序,是人为故意写出各种漏洞Web程序集合。...a_key对应值a_value,问题出现在a_key值在正常情况下应该是一个URL,但是如果用户提交a_key值,不是正常URL,附加了另外字符内容,self.write语句在执行时候,告诉浏览器去回显执行...从白盒设计、代码审计角度,能读懂Web代码、实现Web代码、更便于发现和理解Web程序漏洞。

85620

【Rust日报】2022-01-24 讨厌Linux内核错误

讨厌Linux内核错误 最近在Linux内核中发现了一个堆溢出错误。该补丁现在可以在大多数主要Linux发行版中使用。...在这个例子中,Linux内核 fs/fs_context.c 程序中 legacy_parse_param 有一个堆溢出错误。...在Linux文件系统中,该参数在创建超级块用于挂载和重新配置超级块用于重新挂载期间使用。超级块记录文件系统所有特征,如文件大小、块大小、空和已填存储块。所以,是的,这很重要。...这意味着较大“size”值将导致较高正值,而不是预期负值。哎呦。 Rust被纳入Linux一个重要原因是,Rust使得这种内存错误更难发生。...当你复制一份程序并传给你朋友,你高分会被保存下来。 这是一篇很有趣文章, 请把他当做是聚会小把戏,不要真正使用他.

45820

4个避免使用npm link理由

link替代品 因为如下原因我们应该避免使用npm link 多个 Node.js 版本同时使用容易出错 link 失败不会报错并且会回退到直接从 npm 仓库进行安装 会有预期之外二进制可执行文件安装...不符合预期软链接删除 npm link是什么 npm link是一个用于开发直接将本地包链接为依赖项一个命令行工具。.../my-library 使用npm link 更加方便和不易出错,因为它是需要显式指定链接路径 4 个使用npm link缺点 多个 Node.js 版本同时使用容易出错...综上,由于缺少适当报错,使用npm link带给我们不是很好体验。...它是一个开发进行软链接工具。通过上文,我们了解到这种行为是会导致不少预期行为以及可能导致一些错误 顺便提下上面提到运行npm link a,则二进制执行命令a已安装到系统中。

1.5K20

slf4jlog.warn()参数问题研究

, e); } } 根据前面的经验,我们认为这个应该不会打印e,因为格式化占位符只有两个,这个是三个参数。 我们发现结果和我们想不一样!!!...getThrowableCandidate函数会判断数组最后一个是不是Throwable子类型,如果是转成Throwable返回给前面,否则返回null....因此结论是: 使用org.slf4j.Logger#warn(java.lang.String, java.lang.Object...),最后一个参数如果是异常可自动追加到日志中。...另外为什么会调用到适配器这里,可以看文末另外一篇文章《Slf4j优势与原理》。 五、总结 一、遇到和自己预期不符代码,一定要借机研究一下,能够学到更多。...可能发现自己没注意点,没掌握好点,也可能会发现一个隐患或者BUG。 二、遇到问题尽量跟到源码里,从源码角度去分析为什么,是快速成长一个途径。 三、验证代码是否运行,可以断点,这是一个经验。

27320

C:02---scanf、printf

(包括空白符、换行符等) 输出出错:返回负数(如果不用变量接收错误printf,程序就会出错。...实际上从printf使用情况来看,我们不难发现一个规律,就是无论其可变参数有多少个,printf第一个参数总是一个字符串。 而正是这第一个参数,使得它可以确认后面还有有多少个参数尾随。...然而printf到底是怎样取第一个参数后面的可变参数呢, 实际上可变参数函数实现与函数调用栈结构有关,正常情况下c/c++函数参数入栈规则为__stdcall, 它是从右到左,即函数中最右边参数最先入栈...其调用格式为: scanf("",); scanf()函数返回成功赋值数据项数,出错则返回EOF。 其控制串由三类字符构成: 1。格式化说明符; 2。...the data\n "); scanf( "%d\n ",&a);//这里多了一个回车符/n printf( "%d ",a); return 0; } 结果要输入两个数程序才结束,而不是预期一个

1.2K20

Android客户端性能异常类

,且大部分和业务侧逻辑使用相关 checked异常:由编程与环境互动造成程序在运行时出错,编译异常 Error类:通常是指Java内部错误以及如资源耗尽错误 runtime异常:运行时异常 常见原因...: Native崩溃 主动类:运行时框架代码或业务代码发现状态异常,代码运行过程中主动触发;这类异常在预期范围内,通过此类方法暴露问题。...汇编指令bkpt(break point缩写),用于产生软件断点中断,以便软件调试使用。...空对象:底层某个对象null了 PC跑飞:一般是程序(PC寄存器)跑飞或者栈(SP寄存器)被破坏 SIGBUS 非法地址,包括内存地址对齐出错,比如访问一个4字节整数, 但其地址不是4倍数。...udf指令:此指令 arm cpu无法识别 指令被破坏:生成指令(ROM or RAMBIt位反转)出错,导致RAM或者ROM中指令异常;属于硬件出错 指令集错误:CPU错误解析指令

4K10

理论 | nodejs中错误捕获一些最佳实践

2、如何假设函数参数?是否应该检测类型正确?非null,IP,QQ号码? 3、函数参数不符合预期该怎么处理? 4、应该如何区分不同类型错误?...所以在使用fs.stat使用者仍然只需要处理callback传递错误,不需要使用try...catch。 错误输入属于哪种情况?编码错误还是操作错误?...2、函数接收任意字符串参数,如果参数不是ip地址格式,则使用callback发出一个异步错误,提示无法连接该地址。 这两种做法决定了同样输入会导致编码错误或操作错误。...domain和全局异常捕获主要是为了发现和处理未预料到编码错误。...4、一个函数参数、类型、预期错误、如何捕获都应该是明确。 5、缺少参数参数无效都属于编码错误,应该直接抛出异常(throw)。 6、使用标准Error类和标准属性。

1.3K10

单元测试 - Tests和UITests (一) 业务测试

等这业务代码处理完时候你就发现这点你单测也完成差不多了,能帮助你理解这块业务提示也能让你及时发现业务可能存在问题,而不是因为产品或者我们都考虑不全,等测试发现问题时候我们再进行一个大手术...判断不等,[a1 isEqual:a2]值为false通过 XCTAssertEqual(a, b, format...)判断相等(当a和b是 C语言标量、结构体或联合体使用,实际测试发现NSString...传入nil参数,而不是原来一个block作为参数....,对于所有活跃invocations,置换该方法.Pointers 和selectors 需要像上面一样特殊对待.对于既不是对象,也不是指针,更不是SEL类型,不可以忽略参数,可以使用 any 来代替...验证mock对象(也就是验证期望方法是否被调用了) 如果预期方法没有被调用,或者调用时候,传递参数不对,那么就好产生错误.可以使用上面 参数约束.

95120

nodejs中错误捕获一些最佳实践

如何假设函数参数?是否应该检测类型正确?非null,IP,QQ号码? 函数参数不符合预期该怎么处理? 应该如何区分不同类型错误?...所以在使用fs.stat使用者仍然只需要处理callback传递错误,不需要使用try...catch。 错误输入属于哪种情况?编码错误还是操作错误?...函数接收任意字符串参数,如果参数不是ip地址格式,则使用callback发出一个异步错误,提示无法连接该地址。 这两种做法决定了同样输入会导致编码错误或操作错误。...domain和全局异常捕获主要是为了发现和处理未预料到编码错误。...一般来说,在nodejs中,同步函数导致操作错误是比较少见使用try...catch会很少,常见是用户输入验证如JSON、解析等。 一个函数参数、类型、预期错误、如何捕获都应该是明确

1.7K60

nodejs 中错误捕获一些最佳实践

如何假设函数参数?是否应该检测类型正确?非null,IP,QQ号码? 函数参数不符合预期该怎么处理? 应该如何区分不同类型错误?...所以在使用fs.stat使用者仍然只需要处理callback传递错误,不需要使用try...catch。 错误输入属于哪种情况?编码错误还是操作错误?...函数接收任意字符串参数,如果参数不是ip地址格式,则使用callback发出一个异步错误,提示无法连接该地址。 这两种做法决定了同样输入会导致编码错误或操作错误。...domain和全局异常捕获主要是为了发现和处理未预料到编码错误。...一般来说,在nodejs中,同步函数导致操作错误是比较少见使用try...catch会很少,常见是用户输入验证如JSON、解析等。 一个函数参数、类型、预期错误、如何捕获都应该是明确

2.9K00

nodejs中错误捕获一些最佳实践

如何假设函数参数?是否应该检测类型正确?非null,IP,QQ号码? 函数参数不符合预期该怎么处理? 应该如何区分不同类型错误?...所以在使用fs.stat使用者仍然只需要处理callback传递错误,不需要使用try...catch。 错误输入属于哪种情况?编码错误还是操作错误?...函数接收任意字符串参数,如果参数不是ip地址格式,则使用callback发出一个异步错误,提示无法连接该地址。 这两种做法决定了同样输入会导致编码错误或操作错误。...domain和全局异常捕获主要是为了发现和处理未预料到编码错误。...一般来说,在nodejs中,同步函数导致操作错误是比较少见使用try...catch会很少,常见是用户输入验证如JSON、解析等。 一个函数参数、类型、预期错误、如何捕获都应该是明确

1.1K10

30 - JavaScript 中严格模式​

原文地址:https://dev.to/bhagatparwinder/strict-mode-in-javascript-4ge4 ES5 中引入严格模式,它是一种在写 JS 代码强制使用严格模式方法...禁止静默错误取而代之是抛出它们。 2. 在JS引擎支持性能优化特定情况下使用高性能代码。 3....代码提升 • 对象中不存在重复 key • 声明变量不使用 var 关键字 • 函数参数不存在重复参数 开启严格模式 • 文件级别: 在文件开头处添加 "use strict"。...严格模式带来变化 1.没有使用 var 关键字声明变量 someVariable = 17; console.log(someVariable); // 17 这是一段合法代码,即使我们没有使用...2 赋值给 a ,但是结果返回是 7 而不是预期 6 。严格模式下将会报语法错误。 1. 非严格模式下把 NaN 赋值给一个变量不会有错误反馈,而严格模式会抛出错误。

48930

nodejs中错误捕获一些最佳实践

如何假设函数参数?是否应该检测类型正确?非null,IP,QQ号码? 函数参数不符合预期该怎么处理? 应该如何区分不同类型错误?...所以在使用fs.stat使用者仍然只需要处理callback传递错误,不需要使用try...catch。 错误输入属于哪种情况?编码错误还是操作错误?...函数接收任意字符串参数,如果参数不是ip地址格式,则使用callback发出一个异步错误,提示无法连接该地址。 这两种做法决定了同样输入会导致编码错误或操作错误。...domain和全局异常捕获主要是为了发现和处理未预料到编码错误。...一般来说,在nodejs中,同步函数导致操作错误是比较少见使用try...catch会很少,常见是用户输入验证如JSON、解析等。 一个函数参数、类型、预期错误、如何捕获都应该是明确

1.3K30

关于日志打印几点建议以及非最佳实践

WHERE 1.程序入口   在入口打印日志是因为这个时候传递进来参数没有经过任何处理,将它打印在日志文件中能一眼就知道程序原始数据是否符合我们预期,是不是传递进来原始数据就出现 问题。  ...,更别说有IDE来让你查看控制台信息,此时就需要我们将堆栈信息记录在日志中,以便发生异常我们能准确定位程序在哪里出错。...首先,程序开发结束后交由给测试人员进行测试,测试人员根据测试用例发现某个用例输出和预期不符,此时他第一反应该是查看日志。...此时日志是INFO级别日志不会出现DEBUG级别的日志,现在就需要根据日志打印分为两种情况决定他下一步操作: 通过查看INFO日志发现是由于自己操作失误,造成了程序结果和预期不符合,这种情况不是程序出错...通过查看INFO日志发现自己操作正确,根据INFO日志查看并不是操作失误造成,这个时候就需要开发人员到场确认。

1.8K70

软件测试_接口测试面试题_1.6

在进行接口测试,我们需要根据系统设计和需求文档,设计合适测试用例,对接口各种情况进行全面的覆盖。同时,我们还需要使用各种工具和技术来模拟不同测试场景,以确保系统在各种情况下都能正常运行。...; 错误和异常处理测试:输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;输入错误参数,接口能正确处理,并按预期响应;多输入、少输入参数,接口能正确处理,且按预期响应;错误传输数据格式...依赖登录状态接口本质上是在每次发送请求需要带上session或者cookie才能发送成功,在构建POST请求添加必要session或者cookie 08. 如何模拟弱网做测试?...Fiddler和charles都可以模拟弱网测试,平常说模拟丢包,也是模拟弱网测试。 09. 你平常做接口测试过程中发现过哪些bug? 常规错误,接口没实现,没按约定返回结果,边界值处理出错等。...通过设计合适测试用例和使用适当工具和技术,我们可以发现并解决系统中潜在问题,提高系统可靠性和稳定性。接口测试不仅能够满足用户需求,还为软件开发和维护提供了有效支持。

11610

Shell 编程核心技术《四》

从上图中发现,调用test_001.sh脚本并传入一个参数为:java,并没有输出我们预期java auto tester,原因是因为只定义函数是不会得到执行,比如此时没有输出任何有关auto...而我们运行 tester_level 函数并将 2 参数传给它,此时 2 是脚本第二个参数,但却是 tester_level函数第一个参数。...接收是整个脚本第二个参数。...首先查看test_001.sh权限位目前是多少,可以使用命令:ls -l /tmp/test_001.sh,如上图所示,可以发现权限位中没有x,即没有可执行权限。...如上图所示,可以使用sh -x 命令,它可以在脚本运行时打印当前脚本每一行命令,当脚本出错就可以知道到底是哪一行出错了,它通过以 + 开头输出来显示当前正在执行是哪一行 Shell 代码,有了它调试就变得非常方便

2K10
领券