1.1错误处理组合测试
1.1.1 错误组合测试1
- 测试用例 ```pascal program test(input,output); var asadhsadsadsadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:integer; # begin
end.
- 预期结果
报标识符长度超过限制100的错误,报非法字符的错误
- 测试结果
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: .
- 分析
报错结果和对策符合预期。
<a name="pF1l6"></a>
### 1.1.2 错误组合测试2
- 测试用例
```pascal
program test(input,output);
const a=''
b='abc
预期结果
报读取的字符常量为空的错误,报读取字符常量时遇到文件尾的错误
测试结果
keyword: program
identifier: test
delimiter: (
identifier: input
delimiter: ,
identifier: output
delimiter: )
delimiter: ;
keyword: const
identifier: a
EQUAL: =
[Char constant missing!] 2.9-2.10 //读取的字符常量为空
const a=''
^^
char:
identifier: b
EQUAL: =
[Unexpected end of file when reading a char constant] 3.12-3.12 //遇到文件尾
b='abc
^
- 分析
1.1.3 错误组合测试3
- 测试用例
program test(input,output);
const a='abc'
b='bac
begin
{123
end.
预期结果
报读取的字符常量不止一个字符的错误,报右单引号缺失的错误,报多行注释遇到文件尾的错误
测试结果
keyword: program
identifier: test
delimiter: (
identifier: input
delimiter: ,
identifier: output
delimiter: )
delimiter: ;
keyword: const
identifier: a
EQUAL: =
[Too many characters in a char constant!] 2.10-2.12 //字符常量不止一个字符
const a='abc'
^^^
char: a
identifier: b
EQUAL: =
[Right quote missing!] 4.11-4.11 //右单引号缺失
b='bac
^
char: b
keyword: begin
[Unexpected end of file when reading a multiple line comment, lacking of a right brace] 6.4-6.4 //读取多行注释时遇到文件尾
end.
^
- 分析
报错结果和对策符合预期。