雇主在面试中要求我写测试用例或测试方案来检查单词的回文。
我说一个带有阳性测试用例,另一个带有阴性测试用例。但是雇主正在寻找更多的方案。

任何人都可以考虑更多方案或测试用例吗?

预先感谢

评论

这个问题有哪些自动化测试和单元测试的共同点?

嗯...实际的问题是使用JUnit框架编写回文检查器的单元测试。
请参阅en.wikipedia.org/wiki/Palindrome上palindrom的定义,并考虑边界情况。例如,将输入与其反转形式进行比较时,空白和标点符号会发生什么?他们被忽略甚至不被接受吗?这是测试人员探索这些约束的任务。

回复:junit测试。您是希望读者帮助您编写单元测试还是仅获得常规测试用例场景?如果只有后者,我将从您的问题中删除这些标签。

我会说两者都很好。任何书面单元测试或常规测试场景都很好。

#1 楼

回文测试在质量保证思维方面非常具有代表性。此外,编写测试可以大大提高任务规范的质量。当QA工程师编写测试用例时,很可能会发生某些情况未包含在初始规范中的情况。这是质量检查提出改进这些规范的想法的很好理由。

因此,当您在面试中被要求提供更多测试用例时,他们真的想确保您像质量检查一样思考。

让我们看看可以编写哪些测试用例。首先,回文基于字符串,因此您必须执行常见的字符串测试:


空字符串
空字符串-它是回文吗?也许不是,但是幼稚的算法会返回肯定的结果。
间距和标点符号,如@dzieciou所注意到的

零变音符号引入了几种测试:



é(带有重音符号的拉丁文小E)可以用U+00E9U+0065 U+00B4两种方式表示,它们相等吗?好;
最后,就回文而言,U+0065 U+00B4é可以被认为是相同的字符吗?


#2 楼

请参阅palindrom的定义,并考虑边界情况。

例如:


比较输入及其反转形式时,空白和标点符号会发生什么?他们被忽略甚至不被接受吗?
实现不区分大小写吗?通常,安娜和安娜都被认为是回教徒。

这是测试人员探索这些约束的任务。

#3 楼

不要忘记偶数和奇数长度的字符串。

性能测试。

评论


您能否举一个palindrom检查功能的示例实现,其中偶数长度的字符串被错误地以与奇数长度的字符串不同的方式处理。可能吗?

– dzieciou
2012年7月29日在6:53



@dzieciou这取决于编程语言如何舍入整数除法结果。最多取整一半,因此编码器将自动使用(str.length-1)/ 2作为for循环的上限。 (7-1)/ 2 ==(6-1)/ 2 == 3很好。 C#中的相同代码将得到(6-1)/ 2 == 2。

–bytebuster
12年7月29日在8:25



@bytebuster我的错是我只考虑一种可能的实现(输入==反向(输入)),而您可能假设字符串左半部分的字符与右半部分的字符进行了比较。从最初的问题来看,它更像是黑盒测试。在这种情况下,我绝不应该仅假设需求的一种可能实现。这就是我从这次讨论中大致学到的。

– dzieciou
2012年7月29日在9:22



@dzieciou我同意这对于在现实世界中是否应该对实现算法进行纯测试是否值得质量检查负责是非常可疑的。如果这样的测试存在于单元测试中(并由编码人员编写),也许会更好。但是,您要求一个不好的实现,就在这里。 :)

–bytebuster
2012年7月29日在14:01