你应该测试应用程序的哪些部分?这取决于项目的具体情况,包括:用户期望,项目周期,项目经理对项目优先级的设定,等。一旦定义好了项目边界,测试工程师肯定会对测试工作做出多方面的决策。
我们在下文提到 web 应用测试的几种类型。这些术语绝不是标准,但是这些概念在 web 应用测试中确实是非常典型的。
静态内容测试
内容测试,这是最简单的测试类型,只需要测试一个静态的,不变的,UI元素出现在页面上。例如:
- 每个网页有预期的页面标题吗?这可以用于验证点击链接后的预期页面。
- web 应用主页面的顶部是否包含一个图片?
- 网站的每个页面是否包含一个页脚区,该区域包含公司的联系页面,法律政策和商标信息页面的链接?
- 每个页面开头的标题文字是否使用 h1 标记?并且,每个页面是否有正确的标题文本?
测试内容对于你来说有可能需要,也可能没必要。如果你的页面内容很少改动或者不太重要,那么手工测试页面内容就足够了。假如 web 应用包含的文件被移动到不同的位置,内容测试可能就会很有价值。
链接测试
网站经常的错误来源是链接失效或链接的页面丢失。这种测试工作包括点击每个链接并验证预期页面。如果是静态链接并且很少改变,手工测试可能就足够了。但是如果网页设计师经常改变链接,或者偶尔发生文件迁移,链接测试应该实现自动化。
功能测试
测试应用程序的特定功能,需要某种类型的用户输入,并返回某种类型的结果。通常功能测试会涉及多个页面,有基于表单的输入页面,包含多个输入字段的集合,以及提交和取消操作,有一个或多个响应页面。用户可以通过文本字段、复选框、下拉列表、或任何其他浏览器支持的控件进行输入。
功能测试通常是自动化测试中最复杂的,但通常是最重要的。典型的测试可以是登录操作,账户注册,用户账户操作,修改帐户设置,复杂的跨域数据检索,等等。功能测试通常对应于特定的用户场景,而用户场景是对应用程序功能和特性的描述。
测试动态元素
通常一个 web 页面元素都有一个唯一的标识符用于在页面中定位该元素。通常是通过 html 标记的 id 属性或 name 属性来实现的。这些名字可以是静态的,即,不变的字符串常量。它们也可以是每个页面动态生成的值。例如,一些 web 服务器可能在一个页面实例上为显示的文档命名为 doc3861 ,用户检索的另一个页面实例为该文档命名为 doc6148a。一个验证文档存在的测试脚本可能没有一个统一的标识符用于定位文档。通常,结果页面上不同标识符指定的动态元素往往基于用户的动作。这当然取决于 web 应用的功能。
这里有一个例子:
<input type="checkbox" value="true" id="addForm:_ID74:_ID75:0:_ID79:0:
checkBox"/>
Ajax 测试
Ajax 是一种技术,来支持动态变化的用户界面元素,界面元素可以动态更改而无需浏览器重新加载页面,例如:动画、RSS 种子和实时数据更新。有无数方法可以使用 Ajax 更新 web 页面上的元素。但是,最简单的方法是在 ajax 开发的应用程序中,从应用程序服务器检索数据,然后显示在页面上,而不用重新加载整个页面。只有一部分的页面或者仅仅是元素本身被重新加载。