上一篇介绍了基于需求文档的用例设计,主要是运用了黑盒测试的用例设计方法。之前提到用例在整个项目过程中是动态更新,逐步完善的,经过了需求评审的用例编写后,项目会进行技术方案评审,评审结束后,需要基于技术方案对用例进行一次补充完善。
我仍然以登录为例,由于每个开发设计的方案不同,在此列一个大致的通用方案,基于该方案做用例设计,精髓会了,其他的融会贯通。
登录成功的时序图如下:
登录失败的时序图如下:
分析时序图,步骤比较清晰,客户端的主要工作分为几部分:
1、绘制登录界面(UILabel、UIButton、UITextField)
2、接收用户输入用户名、密码,发送登录请求到服务器
3、服务器返回成功,处理登录成功的回调
4、服务器返回失败(用户名或密码错误),绘制验证码界面,接收用户输入验证码,发送到服务端
5、服务器返回失败(非用户名或密码错误),则执行登录失败的回调
步骤明确了后,就需针对每一个步骤完善用例。
1、绘制登录界面(UILabel、UIButton、UITextField)------------该步骤客户端主要完成UI的绘制工作,需要特别留心UITextFild的几个属性:clearButtonMode(输入框清除按钮的模式)、keyboardType(键盘的类型)、secureTextEntry(是否为安全模式,密码输入框要设置为yes),用例如下:
2、接收用户输入用户名、密码,发送登录请求到服务器------------这一步骤主要是对接受的用户名、密码进行校验,再组装请求,需要注意的是对输入的判空处理。
3、服务器返回成功,处理登录成功的回调------------因为每个模块都不一样,可以根据不同的模块进行不同的校验。
4、服务器返回失败(用户名或密码错误),绘制验证码界面,接收用户输入验证码,发送到服务端------------绘制验证码(UIImageView、UITextField),校验此处验证码对应的UITextField的属性,组装请求无特别的校验点
5、服务器返回失败(非用户名或密码错误),则执行登录失败的回调------------主要是弹出toast的形式。
至此,基于技术方案的用例设计大致完成,有些是从白盒代码的角度去校验,有些是从功能的角度,但核心点就是根据开发列出的实现方案分解为模块,对每个模块补充完善用例。