测试⽤例编写(功能测试框架)
测试⽤例的编写需要按照⼀定的思路进⾏,⽽不是想到哪写到哪,⼀般测试机制成熟的公司都会有公司⾃⼰⾃定义的测试⽤例模板,以及⼀整套的测试流程关注点,当然我们⾃⼰在测试⽣涯中也应当积累⼀套⾃⼰的测试框架,所有功能性的测试都可以依据框架的思路来进⾏,达到事半功倍的效果。
功能测试框架可以包括:界⾯友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等等。
1.1.1 界⾯友好性测试
1. 风格、样式、颜⾊是否协调
2. 界⾯布局是否整齐、协调(保证全部显⽰出来的,尽量不要使⽤滚动条
3. 界⾯操作、标题描述是否恰当(描述有歧义、注意是否有错别字)
4. 操作是否符合⼈们的常规习惯(有没有把相似的功能的控件放在⼀起,⽅便操作)
5. 提⽰界⾯是否符合规范(不应该显⽰英⽂的cancel、ok,应该显⽰中⽂的确定等)
6. 界⾯中各个控件是否对齐
7. ⽇期控件是否可编辑
8. ⽇期控件的长度是否合理,以修改时可以把时间全部显⽰出来为准
9. 查询结果列表列宽是否合理、标签描述是否合理
10. 查询结果列表太宽没有横向滚动提⽰
11. 对于信息⽐较长的⽂本,⽂本框有没有提供⾃动竖直滚动条
12. 数据录⼊控件是否⽅便
13. 有没有⽀持Tab键,键的顺序要有条理,不乱跳
14. 有没有提供相关的热键
15. 控件的提⽰语描述是否正确
16. 模块调⽤是否统⼀,相同的模块是否调⽤同⼀个界⾯
17. ⽤滚动条移动页⾯时,页⾯的控件是否显⽰正常
18. ⽇期的正确格式应该是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX
19. 页⾯是否有多余按钮或标签
20. 窗⼝标题或图标是否与菜单栏的统⼀
21. 窗⼝的最⼤化、最⼩化是否能正确切换
22. 对于正常的功能,⽤户可以不必阅读⽤户⼿册就能使⽤
23. 执⾏风险操作时,有确认、删除等提⽰吗
24. 操作顺序是否合理
25. 正确性检查:检查页⾯上的form, button, table, header, footer,提⽰信息,还有其他⽂字拼写,句⼦的语法等是否正确。
26. 系统应该在⽤户执⾏错误的操作之前提出警告,提⽰信息.
27. 页⾯分辨率检查,在各种分辨率浏览系统检查系统界⾯友好性。
28. 合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页⾯是否合理。
29. 检查本地化是否通过:英⽂版不应该有中⽂信息,英⽂翻译准确,专业。
30. 背景灰度冻结
1.1.2 功能测试
1. 使⽤所有默认值进⾏测试
2. 根据所有产品⽂档、帮助⽂档中描述的内容要进⾏遍历测试
3. 输⼊判断
4. 所有界⾯出现是和否的逻辑,要测试
5. 异常处理
6. 敏感词
7. 根据需求⽂档的流程图遍历所有流程图路径
8. 根据程序内容,遍历if elif else switch的逻辑点要遍历
9. 界⾯各种控件测试
如对于输⼊框测试:
⼀、字符型输⼊框:
1. 字符型输⼊框:英⽂全⾓、英⽂半⾓、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁⽌直接输⼊特殊字符时,使⽤“粘贴、拷贝”功能尝试输⼊。
2. 长度检查:最⼩长度、最⼤长度、最⼩长度-1、最⼤长度+1、输⼊超⼯字符⽐如把整个⽂章拷贝过去。
3. 空格检查:输⼊的字符间有空格、字符前有空格、字符后有空格、字符前后有空格
4. 多⾏⽂本框输⼊:允许回车换⾏、保存后再显⽰能够保存输⼊的格式、仅输⼊回车换⾏,检查能否正确保存(若能,检查保存结果,若不能,查看是否有正常提⽰)、
5. 安全性检查:输⼊特殊字符串
(null,NULL,,javascript,<script>,</script>,<title>,<html>,<td>)、输⼊脚本函数(<script>alert("abc")</script>)、doucment.write("abc")、
<b>hello</b>)
⼆、数值型输⼊框:
1. 边界值:最⼤值、最⼩值、最⼤值+1、最⼩值-1
2. 位数:最⼩位数、最⼤位数、最⼩位数-1最⼤位数+1、输⼊超长值、输⼊整数
3.异常值、特殊字符:输⼊空⽩(NULL)、空格或"~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能导致系统错误的字符、禁⽌直接输⼊特殊字符时,尝试使⽤粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板拷贝到输⼊框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、
输⼊负整数、负⼩数、分数、输⼊字母或汉字、⼩数(⼩数前0点舍去的情况,多个⼩数点的情况)、⾸位为0的数字如01、02、科学计数法是否⽀持1.0E2、全⾓数字与半⾓数字、数字与字母混合、16进制,8进制数值、货币型输⼊(允许⼩数点后⾯⼏位)、
4. 安全性检查:不能直接输⼊就copy
三、⽇期型输⼊框:
1. 合法性检查:(输⼊0⽇、1⽇、32⽇)、⽉输⼊[1、3、5、7、8、10、12]、⽇输⼊[31]、⽉输⼊[4、6、9、11]、⽇输⼊[30][31]、输⼊⾮闰年,⽉输⼊[2],⽇期输⼊[28、29]、输⼊闰年,⽉输⼊[2]、⽇期输⼊[29、30]、⽉输⼊[0、1、12、13]
考虑开始⽇期与结束⽇历的⽐较,特别是在查询的时候.
2. 异常值、特殊字符:输⼊空⽩或NULL、输⼊~!@#¥%……&*(){}[]等可能导致系统错误的字符
3. 安全性检查:不能直接输⼊,就copy,是否数据检验出错?
1.1.3 业务流程测试(主要功能测试)
业务流程,⼀般会涉及到多个模块的数据,所以在对业务流程测试时,⾸先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进⾏测试,这往往是容易出现问题的地⽅,测试时⼀定要设计不同的数据进⾏测试。
字符串长度在线测试如某⼀功能模块具有最基本的增删改查功能,则需要进⾏以下测试:
1. 单项功能测试(增加、修改、查询、删除)
2. 增加——>增加——>增加(连续增加测试)
3. 增加——>删除
4. 增加——>删除——>增加(新增加的内容与删除内容⼀致)
5. 增加——>修改——>删除
6. 修改——>修改——>修改(连续修改测试)
7. 修改——>增加(新增加的内容与修改前内容⼀致)
8. 修改——>删除
9. 修改——>删除——>增加(新增加的内容与删除内容⼀致)
10. 删除——>删除——>删除(连续删除测试)
1.1.4 链接测试
主要是保证链接的可⽤性和正确性,它也是⽹站测试中⽐较重要的⼀个⽅⾯。
可以使⽤特定的⼯具如XENU来进⾏链接测试。
1.1.5 容错测试
1. 输⼊系统不允许的数据作为输⼊
2. 把某个相关模块或者⼦系统停掉,验证对当前系统的影响
3. 配置⽂件删除或者配置错误
4. 数据库注⼊错误数据
1.1.6 稳定性测试
1. 系统不间断运⾏(7*24),验证是否内存泄露、系统其他资源是否存在泄露
2. 如果很紧急上线,可以跑⼀晚上或者周末跑两天。
⼀般压⼒很⼤的情况下,数据库连接数问题、内存泄露问题会曝露的⽐较快但是死锁可能不能体现,所以要看系统重要性,如12306稳定性则最好7*24⼩时
1.1.7 常规性能测试
1. 连接速度测试
⽤户连接到Web应⽤系统的速度根据上⽹⽅式的变化⽽变化,他们或许是电话拨号,或是宽带上⽹。当下载⼀个程序时,⽤户可以等较长的时间,但如果仅仅访问⼀个页⾯就不会这样。如果Web系统响应时间太长(例如超过5秒钟),⽤户就会因没有耐⼼等待⽽离开。
另外,有些页⾯有超时的限制,如果响应速度太慢,⽤户可能还没来得及浏览内容,就需要重新登陆了。⽽且,连接速度太慢,还可能引起数据丢失,使⽤户得不到真实的页⾯。
2. 负载测试
负载测试是为了测量Web系统在某⼀负载级别上的性能,以保证Web系统在需求范围内能正常⼯作。负载级别可以是某个时刻同时访问Web 系统的⽤户数量,也可以是在线数据处理的数量。例如:Web应⽤系统能允许多少个⽤户同时在线?如果超过了这个数量,会出现什么现象?Web应⽤系统能否处理⼤量⽤户对同⼀个页⾯的请求?
3. 压⼒测试
负载测试应该安排在Web系统发布以后,在实际的⽹络环境中进⾏测试。因为⼀个企业内部员⼯,特别是项⽬组⼈员总是有限的,⽽⼀个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放
在Internet上,接受负载测试,其结果才是正确可信的。
进⾏压⼒测试是指实际破坏⼀个Web应⽤系统,测试系统的反映。压⼒测试是测试系统的限制和故障恢复能⼒,也就是测试Web应⽤系统会不会崩溃,在什么情况下会崩溃。⿊客常常提供错误的数据负载,直到Web应⽤系统崩溃,接着当系统重新启动时获得存取权。
压⼒测试的区域包括表单、登陆和其他信息传输页⾯等
1.1.8 易⽤性测试
1. 系统界⾯的控件是否可以通过tab键遍历,并且顺序合理
2. 主要功能的⼊⼝和操作是否易于理解
3. 界⾯是否布局合理,功能是否易于查和使⽤
4. 操作步骤
5. 操作习惯
6. 有⾜够的提⽰信息,且信息⽂字描述准确
1.1.9 兼容性测试
兼容性测试不只是指界⾯在不同操作系统或浏览器下的兼容,有些功能⽅⾯的测试,也要考虑到兼容性,
包括操作系统兼容和应⽤软件兼容,可能还包括硬件兼容
⽐如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
除了上⾯所说的这些测试以外,还有算法测试、配置测试、安全性测试等等,在⼯作中不断总结和分析,形成⾃⼰的功能测试框架,当你把这份⼯作做起来以后,对于你⾃⼰对于测试团队⽽⾔都是⼀份很有价值的事情,你的测试思路也会变得更全⾯。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。