综上所述:
判断是否产生flaure,是看程序结果是否与预测结果相同;
判断是否有error,是看该程序的运行步骤是否与正确程序的运行步骤完全相同;
判断是否有flaut,是看该程序是否有bug.
左边的flaut在于:for循环中的判断条件i>0,漏掉了i=0的情况。
不产生flaut的测试用例:
① X=[],
产生flaut,但不产生error的测试用例:输入325,从5开始,到2,return 1,和预测结果相同,且和正常程序的步骤也一样,所以没产生error。
② X=[3,2,5]
产生fault和error,但不产生faliure的用例:输入345,,从5开始,到4结束,return -1,和expected的结果相同,但是与正常程序的步骤不同,本应该是3才结束的,所以产生了error。
③ X=[3,4,5]
右边的flaut在于:for循环从0开始,遇见满足条件就输出,得到的结果并不一定是last的,不满足条件。
① X=[]
同理:从0开始验证,且==0,return 0,与正常程序的步骤也相同,故没有产生error
② X=[0]
同理:从0开始验证,==0,return 0,与expect相同,但是与正常程序的步骤不同,正常程序应该是继续验证后面的1,得到最last的0,因此产生了error,但是没有fauliur.
③ X=[0,1]