链接测试
对于页面链接功能,测试工程师需考虑其链接文字描述正确性、链接地址跳转正确性、链接触发脚本正确性、是否存在404错误等。
如果是小型Web系统,链接较少,人工测试即可,如果被测对象包含很多链接,则可利用Xenu链接测试工具进行。
【案例1 ECShop链接测试】
Xenu是测试工程师应用较多的链接测试工具,小巧、便捷。可以对本地网页文件测试链接,也可以输入任何公网网站进行测试。测试完成后自动生成测试报告,如果链接存在错误,Xenu用红色显示,如图1所示。
执行完成后,Xenu给出测试结果,如图2所示,共计验证了6479个链接,发现了9个错误。
脚本功能
为了实现一些特殊的效果或功能,系统往往会使用JavaScript、VBScript脚本编程技术。例如,动态的验证、特殊的展示效果,在测试过程中需进行此类效果或功能的测试,以检验相关脚本的正确性,同时需考虑它们是否有兼容性问题。
【案例2 ECShop脚本功能测试】
ECShop用户注册功能的初始页面如图3所示。
默认情况下,用户注册页面仅标识出相关输入区域必填(以红色*表示),当“用户名”不输入,光标切换到“email”时,将触发输入合法性判断的JavaScript脚本。
<script type="text/javascript">
var process_request = "正在处理您的请求...";
var username_empty = "- 用户名不能为空。";
var username_shorter = "- 用户名长度不能少于 3 个字符。";
var username_invalid = "- 用户名只能是由字母数字以及下划线组成。";
var password_empty = "- 登陆密码不能为空。";
var password_shorter = "- 登陆密码不能少于 6 个字符。";
var confirm_password_invalid = "- 两次输入密码不一致";
var email_empty = "- Email 为空";
var email_invalid = "- Email 不是合法的地址";
var agreement = "- 您没有接受协议";
var msn_invalid = "- msn地址不是一个有效的邮件地址";
var qq_invalid = "- QQ号码不是一个有效的号码";
var home_phone_invalid = "- 家庭电话不是一个有效号码";
var office_phone_invalid = "- 办公电话不是一个有效号码";
var mobile_phone_invalid = "- 手机号码不是一个有效号码";
var msg_un_blank = "* 用户名不能为空";
var msg_un_length = "* 用户名最长不得超过7个汉字";
var msg_un_format = "* 用户名含有非法字符";
var msg_un_registered = "* 用户名已经存在,请重新输入";
var msg_can_rg = "* 可以注册";
var msg_email_blank = "* 邮件地址不能为空";
var msg_email_registered = "* 邮箱已存在,请重新输入";
var msg_email_format = "* 邮件地址不合法";
var msg_blank = "不能为空";
var no_select_question = "- 您没有完成密码提示问题的操作";
var passwd_balnk = "- 密码中不能包含空格";
var username_exist = "用户名 %s 已经存在";
</script>
对应的界面效果如图4 所示。
测试工程师在执行测试应当深入了解被测对象,了解每个操作的背后知识,这样才能发现更深层次的缺陷。
文件上传下载
业务系统中可能会使用一些文件上传下载的控件,如图5所示。对于此类控件,测试时需考虑文件上传格式、上传内容、上传后能否正确打开、上传过程中如果出现异常是否有信息提示。对于文件下载则需考虑下载的文件能否正确打开使用、下载过程中能否中断、中断后可否续传、下载保存的文件名是否正确等。通常情况,此类控件会使用比较成熟的功能组件,因此测试难度相对较小。
如果上传完成后存在预览功能,测试工程师应当验证该预览是否实现,并且预览的图片是否清晰,软件系统如果对上传的图片进行压缩,测试工程师需保证压缩后的照片清晰可用,笔者在实际工作中曾碰到App将图片压缩后清晰度不够,导致无法通过系统验证,需重试很多次才符合,这样的设计对用户来说是极其糟糕的。