【发布时间】:2019-03-31 10:40:19
【问题描述】:
我有兴趣了解这种可能性。我正在开展一个验证软件工程师技能的项目,目前我们根据有资质的开发人员的代码审查来验证技能。
如果比这个问题更完整,我知道答案,我无法想象程序必须能够分析复杂的代码有多复杂,但我从基本的编程面试问题开始。
例如经典的 FizzBuzz 问题:
编写一个打印从 1 到 20 的数字的程序。但是对于 3 的倍数打印“Fizz”而不是数字,对于 5 的倍数打印“Buzz”。对于同时是 3 和 5 的倍数的数字,打印“FizzBuzz”。
以下是python中的解决方案:
for num in range(1,21):
string = ""
if num % 3 == 0:
string = string + "Fizz"
if num % 5 == 0:
string = string + "Buzz"
if num % 5 != 0 and num % 3 != 0:
string = string + str(num)
print(string)
问题是,我们能否以编程方式分析此解决方案的有效性?
我想知道是否有人尝试过这个,如果有当前的实现,我可以看看。另外,如果有人用过 z3,如果它是我可以用来解决这个问题的东西。
【问题讨论】:
标签: testing automated-tests z3 software-quality