1.1错误处理组合测试

1.1.1 错误组合测试1

  • 测试用例 ```pascal program test(input,output); var asadhsadsadsadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:integer; # begin

end.

  1. - 预期结果
  2. 报标识符长度超过限制100的错误,报非法字符的错误
  3. - 测试结果

keyword: program identifier: test delimiter: ( identifier: input delimiter: , identifier: output delimiter: ) delimiter: ; keyword: var [Identifier length too large, exceed 100] 2.5-2.133 //标识符长度超过限制 identifier: asadhsadsadsadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa delimiter: : type: integer delimiter: ; [Invalid character!] 3.1-3.1 //非法字符 # ^ keyword: begin keyword: end delimiter: .

  1. - 分析
  2. 报错结果和对策符合预期。
  3. <a name="pF1l6"></a>
  4. ### 1.1.2 错误组合测试2
  5. - 测试用例
  6. ```pascal
  7. program test(input,output);
  8. const a=''
  9. b='abc
  • 预期结果

    1. 报读取的字符常量为空的错误,报读取字符常量时遇到文件尾的错误
  • 测试结果

    1. keyword: program
    2. identifier: test
    3. delimiter: (
    4. identifier: input
    5. delimiter: ,
    6. identifier: output
    7. delimiter: )
    8. delimiter: ;
    9. keyword: const
    10. identifier: a
    11. EQUAL: =
    12. [Char constant missing!] 2.9-2.10 //读取的字符常量为空
    13. const a=''
    14. ^^
    15. char:
    16. identifier: b
    17. EQUAL: =
    18. [Unexpected end of file when reading a char constant] 3.12-3.12 //遇到文件尾
    19. b='abc
    20. ^
  • 分析

报错结果和对策符合预期。

1.1.3 错误组合测试3

  • 测试用例
    1. program test(input,output);
    2. const a='abc'
    3. b='bac
    4. begin
    5. {123
    6. end.
  • 预期结果

    1. 报读取的字符常量不止一个字符的错误,报右单引号缺失的错误,报多行注释遇到文件尾的错误
  • 测试结果

    1. keyword: program
    2. identifier: test
    3. delimiter: (
    4. identifier: input
    5. delimiter: ,
    6. identifier: output
    7. delimiter: )
    8. delimiter: ;
    9. keyword: const
    10. identifier: a
    11. EQUAL: =
    12. [Too many characters in a char constant!] 2.10-2.12 //字符常量不止一个字符
    13. const a='abc'
    14. ^^^
    15. char: a
    16. identifier: b
    17. EQUAL: =
    18. [Right quote missing!] 4.11-4.11 //右单引号缺失
    19. b='bac
    20. ^
    21. char: b
    22. keyword: begin
    23. [Unexpected end of file when reading a multiple line comment, lacking of a right brace] 6.4-6.4 //读取多行注释时遇到文件尾
    24. end.
    25. ^
  • 分析

报错结果和对策符合预期。