网站测试自动化系统—在测试代码中硬编码测试数据
2010-09-30 22:42:51 来源:WEB开发网1) 一个测试用例可以独自执行成功,就是说如果是单独执行这一个测试用例的话,这个测试用例是可以执行成功的—否则就是产品编码的失误(Bug)。举个例子,你正要编码测试一个管理博客文章的功能,这个功能通常来说都是登录用户才可以使用的。然而,也许你刚刚编码完毕一个登录方面的测试用例,而且用例执行完毕的时候,没有执行注销操作。这个时候你不能想当然地以为下一个测试用例一定就是你现在正在编码的文章管理的测试用例。
因为测试人员既保留有将多个测试用例任意排列执行的权力,也可以选择单独执行这一个测试用例—比如程序员刚刚重构了文章管理功能的代码,为了节省测试时间,测试人员可能会选择只执行文章管理方面的测试用例。所以不要将自己的命运寄托在别人手里。即除了整个团队都公认的前提以外,不要相信任何前提。
2) 测试用例可以在任意排列的用例序列中执行通过,因此测试代码应该尽量保护测试环境。举个例子,你设计了一个管理用户权限的测试用例,一般来说这种功能只有管理员才有权限操作的。然而,也许另一个粗心大意的测试工程师编码了一个测试删除用户的用例,恰好将管理员删除了,而你的用例正好在他的用例之后执行……己所不欲,勿施于人,既然你不希望碰到这种情况,那么在编码自己的测试用例之前也应该避免类似的事情发生。
回过头来再举评论管理测试用例的设计,于是你的几个测试代码可能看起来像下面这样:
[TestMethod]
public void BlogCommentIsDisabled()
{
TestLibrary.UserHelper.LogOnAsAdmin();
var blog = TestLibrary.BlogHelper.CreateBlog("博客文章标题", "文章内容");
// 去管理文章的网页
TestLibrary.BlogHelper.ManageArticles();
// 在文章管理的网页的文章列表里依次查找标题为
// "博客文章标题"的文章连接,
var blogListItem = TestLibrary.BlogHelper.FindBlog(blog.Title);
// 并且在网页上点击"浏览" 这个链接,打开阅读文章的网页
blogListItem.View();
// 评论这篇文章
TestLibrary.BlogHelper.Comment(blog);
// 然后执行一些验证判断评论功能的确被禁用掉了
// ...
}
更多精彩
赞助商链接