想像一下,光标停留在某个文本框中,你会输入些什么呢?
何为输入?
输入可以理解为应用程序外部产生刺激使得应用程序有了某些反应。关键点为外部产生、传至内部、起了反应。
对于一个软件来说,输入可以分为合法输入和不合法输入。合法输入能穷尽你一生,当然不合法输入你一辈子也是输入不完的。
对于合法输入的测试,考虑使用等价类划分。
对于不合法输入的测试则可考虑从预防和检测来入手。
预防的一种实现方法是使用输入筛选器。比如对于合法输入数目较少的设计为单选或复选;对于合法输入有一定数量的,可设计为不带输入的下拉列表选择。此外直接不接收不合法输入或是输入了不合法输入后待失去焦点时不合法输入变为一个默认的合法输入也可算是预防措施。
检测可从输入检测及提交检测来实现。
输入检测,比如说必须输入的你没输入、不可输入的你输入了,然后你又准备进行另外的操作时,程序给出正确的出错提示。
提交检测,相对于输入检测来说提交检测在用户体验上差了一点。当用户全部输入完了之后程序才给出输入相关出错信息,一则浪费用户时间,再则让用户有种挫败感。
一般来说,对于一个输入的测试可从以下方面展开。
对于有默认值的,默认值正确吗?保留默认值程序会正常运行吗?清空呢?
对于指定输入个数范围的,范围内的怎么样?范围的上限下限呢?范围之外呢?全角半角呢?
对于指定类型的,指定输入字符的输入机内码怎么样?指定输入数字的字符怎么样,负数怎么样,两个负号怎么样,小数怎么样?
对于密码输入,复制剪切怎么样?
对于下拉列表的,列表框上下键怎么样?键盘上下键怎么样?键盘输入怎么样?鼠标滚轮怎么样?
对于单选的,有初始选定值吗?是单选吗?
对于复选的,不选怎么样?多选怎么样?全选怎么样?
对于多标签的,换个标签焦点怎么样?shift+tab切换标签怎么样?
对于界面,tab切换怎么样?热键怎么样?有没有enter默认事件?
对于输入检测的,不输入程序会不会告诉我必须输入?不合法输入有没有被告知什么输入才是合法的?索引值,比如ID比如编号有没有说已经存在?
对于提交检测的,你是让我补写,还是清空让我重写?
输入大写字母错按成ctrl+字母的有没有?esc、alt+f4行不行?输入NULL、保留字,输出LPT1、COM1怎么样?
以上,小小的光标等待大大的输入。