我有一个旨在查找应用程序搜索功能中的错误的函数,它从非控制 UTF-8 可能性生成一个可变长度的搜索字符串。在此函数上运行 pytest 迭代,提交用于搜索的随机 UTF-8 字符串大约每 500 次搜索生成一次调试错误。
由于我可以抓取导致错误的每个字符串,因此我想确定这些字符串中真正引起错误的字符的最小子系列是什么。换句话说,(在 pytest 循环内):
def fumble_towards_ecstasy(string_that_breaks):
# iterate over both length and content of the string
nugget = # minimum series of characters that break the search
return nugget
我是否应该将字符串切成两半并削减每一边并重新提交直到它失败,从它的 (len() - 1) 中选择随机字符,然后如果没有发生错误则备份?蛮力组合?解决这个问题的最佳方法是什么?
谢谢。