测试用例的文档
测试用例通常来说不需要文档。
套件名称和文档以及用例的名称已经提供了足够的背景信息。
测试用例的结构应该是不需要文档或者其他注释都足够清楚了的。
Tag 通常比文档更灵活,还能提供更多的功能。
当测试用例的文档是有用的时候,也不要担心而不去添加哟。
用户自定义关键词文档
如果这个关键词非常简单明了的话,不需要文档。
好的名称和明确的结构就足以说明一切了。
用户自定义关键词文档的一个重要的用途是用来记录参数和返回值的信息。
在 RIDE(比如在关键词补全的地方)以及在资源文件中显示的文档是由 libdoc.py 生成的。
测试套件的结构
在套件中的用例应该是互相相关的。
如果测试用例拥有同样的生成或者分解部分,那么他们应该是属于一个套件的。
除非是数据驱动的,在一个套件中不要放10个以上的测试用例。
测试用例应该是独立的。
用生成和分解来初始化他们。
有时候如果测试用例之间无法避免地相关联
比如说,它可能是因为把所有的用例独立出来要化太多的时间在初始化上。
相关联的测试用例就那么几个(最多4到5个)
下一个用例是用来验证上一个用例的结果的。(用${PREV TEST STATUS} 这个变量)
测试用例的结构
测试用例应该是易懂的。
一个测试用例只测试一件事情。
当然,事情本身可大可小。
选择一个合适的抽象层面。
一致地使用抽象水平(单一水平的抽象原则)
只包含与测试相关的信息。
用例可以分为两种
工作流程的测试用例
数据驱动的测试用例
工作流程的测试用例
通常来说有以下这些部分:
前置条件(可选,通常在生成部分)
动作 (对被测系统执行一些动作)
验证 (必须有一个验证的部分!)
清理 (可选,通常在分解部分,以保证用例已经执行完毕)
关键词是用来描述这个用例做了什么。
用清晰的关键词名称和合适的抽象层次。
应该包含足够的信息使得手动执行可以启动。
应该从来不需要文档或者沟通来告诉你这个用例在做什么。
不同的用例可以有不同的抽象层次。
详细的功能测试是更精确的。
端到端的测试可以是一个很高的抽象层次。
一个测试用例应该只使用一种抽象层次。
不同的风格
对于底层的详细测试和集成测试用例来讲应该是更关注技术细节。
「可执行定义」来扮演需求。
使用领域中的语言(术语?)。
所有人(包括顾客和产品负责人)都应该可以看明白。
不复杂的逻辑
不用 for 循环或者 if/else 判断结构。
小心给变量赋值。
测试用例不应该看起来像脚本一样难读。
最多10步,越少越好。
数据驱动的测试用例
每个测试用例有一个高层次的关键词。
不同的参数创建不同的测试。
关键词通常包含了与同一个用例文件中工作流程测试用例中描述的流程类似的流程。
推荐使用测试模板功能。
不需要多次地去重复关键词。
在一个用例里去测试更容易去测试多种变化。
如果可能,推荐在列头部命名。
如果真的需要很多测试用例,考虑把他们做成依赖于外部的模型。
用户定义关键词
应该容易让人理解
和工作流程测试用例一样的标准。
不同的抽象层次。
可以包含一些编程逻辑(for 循环,if 判断这些)
特别对于底层的的关键词。
复杂的逻辑应该放在库里而不是用户定义的关键词里。
变量
封装常的或者复杂的值。
从命令行传递信息。
在关键词之间传递信息。