对Word函数,运用修正条件/判定覆盖法进行测试用例设计。 。 void Word(int n, char *word) { void *cat; cat = malloc((sizeof(char) * n) + 1); char *initialword = cat; startWord(initialword, n); int number=8,a=0, num=0; char alphabet; while (number!=0&&strcmp(initialword,word)!=0) { printf("The word now looks like this: %s\n", initialword); if (number!= 1) { printf("You have %d guesses left.\n", number); } else { printf("You have only one guess left.\n"); } alphabet = LetterFromUser(); for (a= 0;word[a]!= '\0'; a++) { if (word[a] == alphabet) { initialword[a] = alphabet; num = a; number++; } else if (a == n - 1) { number--; } } if (word[num]== alphabet) { printf("That guess is correct.\n"); } else { printf("That are no %c's in the word.\n", alphabet); } } if (strcmp(initialword, word)== 0) { printf("You guessed the word: %s\n", word); printf("You win.\n"); } else { printf("You lose.\n"); } } 根据上述描述,实现修正条件判定覆盖的测试用例设计。
时间: 2024-04-05 14:29:25 浏览: 34
首先,需要找出判定条件,即代码中的if语句和while语句。根据代码,可以得到以下判定条件:
1. if (number != 1)
2. if (word[a] == alphabet)
3. if (a == n - 1)
4. if (word[num] == alphabet)
5. while (number != 0 && strcmp(initialword, word) != 0)
接下来,我们需要确定修正条件,即使判定条件为真或假的输入值。通过代码分析,我们可以得到以下修正条件:
1. 当number不等于1时,输入任何值都应该可以执行语句块内的代码。
2. 当word[a]等于alphabet时,输入任何值都应该可以执行语句块内的代码。
3. 当a等于n-1时,输入任何值都应该可以执行语句块内的代码。
4. 当word[num]等于alphabet时,输入任何值都应该可以执行语句块内的代码。
5. 当number不等于0并且initialword不等于word时,输入任何值都应该可以执行语句块内的代码。
最后,根据判定条件和修正条件,可以得到以下测试用例:
1. number != 1, word[a] != alphabet, a != n-1, word[num] != alphabet, number != 0 && strcmp(initialword, word) != 0
2. number != 1, word[a] == alphabet, a != n-1, word[num] != alphabet, number != 0 && strcmp(initialword, word) != 0
3. number != 1, word[a] != alphabet, a == n-1, word[num] != alphabet, number != 0 && strcmp(initialword, word) != 0
4. number != 1, word[a] != alphabet, a != n-1, word[num] == alphabet, number != 0 && strcmp(initialword, word) != 0
5. number == 1, word[a] != alphabet, a != n-1, word[num] != alphabet, number != 0 && strcmp(initialword, word) != 0
6. number != 1, word[a] != alphabet, a != n-1, word[num] != alphabet, number == 0 || strcmp(initialword, word) == 0
这些测试用例可以覆盖所有的判定和修正条件,从而保证代码的完整性和正确性。