(背景:从以前的工作,一个同事,我最终会在午餐时讨论错误堆.我们开始开发一个名为"本周的错误"的主题.我怀疑我每年有52个帖子的材料,但是这是第一个......)
报告人:
QA测试人员正在阅读HTML/JS代码以编写Web表单的功能测试,并看到:
if (form_field == empty) { ...do stuff for empty field } else if (form_field != empty) { ...do stuff for non-empty field } else { ...do stuff that will never be done }
经过几次尴尬的尝试,测试人员意识到他们无法触发隐藏在第三个区块中的警报字符串.
我想知道的是:
这个问题或多或少是语言特定的(非JS人员可以在这里学习课程吗?)
代码以这种方式结束是否有正当理由?
应该使用哪些方法来查找/解决问题(代码覆盖率,代码审查,黑盒测试等)
其他几点:
我希望我们能保持积极的态度.想象一下,这是一个与你合作的人(在一家不鼓励燃烧的公司).无论你认为有罪的一方是什么意思,我可能已经考虑过了.
我不是职业编码员.我检查了wiki框,以防有人想提供更文字的例子,或者添加到线程的基础.
[编辑]类似于/sf/ask/17360801/
虽然第三个块不能在Javascript中触发,但在所有语言中都不是这样.在T-SQL中:
declare @test as int set @test = null if @test = 1 print 1 else if not @test = 1 print 2 else print 3
这将打印3,因为NULL既不等于,也不等于任何其他值.