当前课程知识点:软件理论与工程 >  第5章 软件测试 >  5.4 测试web应用系统 >  5.4 测试web应用系统

返回《软件理论与工程》慕课在线视频课程列表

5.4 测试web应用系统在线视频

下一节:5.5 测试移动应用系统

返回《软件理论与工程》慕课在线视频列表

5.4 测试web应用系统课程教案、知识点、字幕

大家好

这一个节我们来分享一下

测试Web应用系统

大家都知道Web应用系统现在

在我们的生活当中

生产当中应用的越来越广泛

那么我们看一下对于Web应用系统的测试

我们要学习哪些内容

首先 我们要来学习一下

WebApp测试的相关概念

然后看一下WebApp测试的过程

然后看一下 内容测试

用户界面测试 构件级测试

及我们的配置测试 安全性测试

和性能测试

我们先看一下对于Web测试

考虑Web测试的质量的时候

我们应该考虑哪些个方面

首先 我们要考虑Web的内容

在语法及语义层面对Web内容进行评估

在语法层面

我们对基于文本的文档进行拼写

标点以及文法方面的评估

在语义层面

我们要对所表示的信息的正确性

以及整个内容对象及相关对象的一致性

及清晰性都要进行评估

另外 我们要对功能进行测试

以发现与用户需求不一致的错误

评估功能的正确性 不稳定性

以及与相应的实现标准的总体符合程度

我们要对WebApp的结构进行评估

以保证它正确的表示了

WebApp的内容及功能

而且 这个结构是可扩展的

可以支持新的内容和新的功能的增加

另外

我们要对WebApp的可用性进行测试

以保证我们的接口支持各种类型的用户访问

各种用户都能够学会

和使用它所有需要的导航的语法和语义

还有一个质量维度要考虑的是

导航性的测试

导航性的测试

我们要保证检查所有的导航的语法和语义

发现任何导航的错误

比如坏的链接

不适合的链接和错误的链接

而且我们要考虑在各种不同的操作条件

配置和负载下

我们对WebApp的性能要进行测试

保证系统可以在合理的时间范围内

响应用户的交互

并处理在极端负载的情况下

没有出现操作上不可接受的性能的降低

另外 在WebApp测试的质量时候

我们要考虑兼容性

因为客户及服务器的这种结构

在各种不同的主机配置下运行WebApp

对兼容性要进行测试

我们要发现针对特定的主机配置

和客户端的配置是否做到了兼容

再有 我们需要对互操作性进行测试

保证WebApp与其他的应用系统

和数据库都能够有正确的接口

另外 我们要对安全性进行测试

我们通过评定可能存在的弱点

试图对每个弱点进行攻击

任何成功的突破尝试都

被认为是一个安全的漏洞

那我们看了几个质量评估的要点

那么我们看一下

WebApp中可能会存在的错误

由于WebApp测试发现的很多类型的错误

都首先表现在客户端

所以Web工程师看到了错误的征兆

并没有看到错误的本身

因为在客户端表现的征兆

可能是由于服务器端的程序的错误造成的

由于WebApp在很多不同的配置

及不同的环境中实现的

要在最初遇到的错误的环境之外

再重现这个错误可能是困难的

或者是不可能的

这就为WebApp的测试

带来了一定的挑战

虽然许多错误是不正确的设计

或不合适的html编码的结果

但是 很多错误原因有可能追溯到

是由于WebApp的配置上的问题

由于WebApp位于

客户服务器体系结构之中

在三层的体系结构

客户服务器和网络本身中

追踪错误是非常困难的

某些错误应该归为静态的操作环境

既由测试的特定配置造成的

而另外一些错误可能是由动态的操作环境

即瞬间的资源负载

或者相关的动态的错误造成的

那么看了WebApp可能

会存在的错误的地方

和我们要考核WebApp的质量的维度

要注意的问题

我们下面看一下WebApp的测试策略

我们对WebApp的内容模型要进行评审

以发现错误

对接口模型要进行评审

保证适合所有的用例

我们要评审WebApp的设计模型

发现导航错误

我们还要测试用户界面

发现表现机制和导航机制中的错误

我们还要对所选择的功能构件

进行单元测试

比如文本框

比如功能提交按钮等等

另外

我们要对贯穿体系结构的导航进行测试

在各种不同的环境配置下

实现的WebApp

并测试WebApp对每一种配置的兼容性

另外对WebApp

安全性非常重要

我们要进行安全性的测试

试图攻击WebApp

和其所处的环境的弱点

最后我们要进行

性能测试

我们通过可监控的最终用户群体

对WebApp进行测试

对可监护的最终用户群体

与WebApp之间的交互结果进行评估

我们要评估内容 导航

可用性 兼容性 安全性 可靠性

及性能等方面

我们对WebApp的测试过程应该是

首先 测试最终用户能看到的内容和界面

随着测试的进行

对体系结构

和导航设计的各个方面要进行测试

最后才转到测试技术能力

WebApp的基础设施

以及安装或实现方面的问题

这些方面的问题对最终用户并不是可见的

所以根据这张

设计的金字塔型结构的层面

我们首先测试用户能看得见的

Web内容和界面

然后测试体系结构和导航设计

然后测试WebApp的基础设施

然后再测试我们的最终的构件和程序

对于Web程序

很多情况下我们是需要数据库的支撑的

那么对于数据库我们也要进行测试

在这张图中

我们将用户提交的请求

翻译成数据库管理系统可处理的格式

这个过程中可能会发生错误

WebApp和远程数据库之间的通信

可能会存在错误

WebApp服务器

收到的原始数据的有效性

也可能存在错误

另外 我们要测试

收到的原始数据

证明它转换的有效性

另外 将这种转换应用于原始数据时

要能够生成有效的内容对象

这个我们也要进行测试

我们要发现内容对象格式方面的错误

以及 我们要测试

不同的客户环境配置的兼容性

那么 在刚才的这张图里面

我们要测试客户提交数据请求

把数据请求通过服务器

进行转换提交给我们的数据库

数据库提取相关的数据内容

生成数据对象

在由数据库提交给服务器

服务器在经过内容格式的转换

提交给客户端

这一系列的过程当中

每一个连接的过程都需要进行测试

以发现这些连接过程中可能存在的错误

另外 对于WebApp来讲

界面是非常重要的

我们要测试WebApp的界面

对于WebApp的界面进行测试的时候

我们要测试它的链接

对每个导航链接都要进行测试

确保获得了正确的内容对象或功能

另外 我们要测试界面上的表单

包括由用户填写的空白域和结构化的文档

包含在域中的数据将作为一个

或多个WebApp的功能的输入

另外 我们要测试客户端的脚本

在脚本语言

比如javascript的中

嵌入一系列可编程的命令

通过表单

或者其他用户交互处理信息的输入

另外 我们要测试动态的html

导航到内容对象由客户端使用脚本

或者层叠样式表来处理

另外 要测试客户端弹出的窗口

没有用户交互这些窗口可以是面向内容的

也可能是需要某种用户交互的表单

另外 还要测试界面当中的CGI脚本

公共网关接口脚本

公共网关接口脚本实现了标准的方法

使得Web服务器与用户进行动态的交互

例如

一旦用户提交了表单

包含表单的WebApp可能

使用CGI脚本处理包含在表单中的数据

另外 在界面中我们要测试流内容

流内容

内容对象对服务器端自动下载到客户端

而不需要等待客户端请求的

有时将这种方法称为push

也就是 推

因为服务器端向客户端要推送内容

另外 我们还要注意测试cookies

由服务器发送的数据块

并由浏览器作为特定的用户交互结果进行存储

数据的内容是特定于WebApp

比如用户的认证数据

或者用户选择的购买的物品清单

另外 在界面机制下

我们还要考虑特定的

应用系统的界面机制

测试是否与界面机制定义的功能

和特性清单相符合

包括一个或多个宏的界面机制

比如购物车 信用卡交易处理

或者是运送成本计算器

另外 在测试界面的时候

或者是WebApp的时候

我们要考虑不同的抽象级别

比如 我们只是评估特定的界面机制

表单的可用性

还是我们评估完整的Web页

包括页面机制

数据对象和相关功能的可用性

最高的抽象级别

我们要考虑整个WebApp的可用性

对于Web应用程序

兼容性是非常重要的

经常我们会遇到某些功能

用一种浏览器可以正确的使用

用另外一种浏览器就不能够正确的使用

这个就是WebApp的兼容性做得不好

兼容性测试是定义一组

通常遇到的客户端的计算配置

和它们的变型

我们在测试的时候可以创建一种树结构

并在上面标识出

每一种计算平台典型的显示设备

还有此平台支持的操作系统

可用的浏览器

可靠的internet连接速度

以及其他的类似信息

然后进行不同的情况的组合

来完成兼容性测试

导出一系兼容性的确认测试

从现有的界面测试 导航测试

性能测试和安全测试中导出

这些测试的目的是发现

可以追溯到配置不同的错误

或者配置中运行的问题

然后我们在WebApp

也要考虑它的构件及设计

集中于一系列的测试

试图发现WebApp功能方面的错误

对于WebApp

我们可以使用传统的黑盒测试

和白盒测试

来设计测试用例来进行构件级测试

另外还有一点就是 数据库测试

通常也是构件级测试的一个重要的组成部分

对于WebApp

其中很重要的一个导航测试

我们应该对导航的机制进行测试

包括导航链接

这些机制包括WebApp内部链接

和到其他的WebApp的外部链接

以及特定的外部页内的锚链接

在导航测试中

我们还要考虑重定向的问题

当用户请求一个不存在的URL

或者选择了目标已经被移除的或者

名字已经被更改的链接的时候

这些重定向就会发生作用

导航测试还要注意有书签的测试

虽然书签是一项浏览器的功能

应该对WebApp进行测试

确保当创建书签的时候

可以提取正确的 有意义的页标题

导航测试还需要测试框架和框架集

测试正确的内容 合适的布局和尺寸

下载的性能 以及浏览器的兼容性

站点地图也需要进行测试

要对站点地图的每个入口进行测试

确保链接将用户带到合适的内容

或者是合适的功能

内部搜索引擎

搜索引擎测试确认搜索的正确性和完整性

搜索引擎的错误处理特性

和高级搜索的特性都应该被测试到

另外我们要注意的就是配置测试

在配置测试我们要考虑服务器端的配置测试

和客户端的配置测试

服务器端我们要考虑WebApp与

服务器操作系统完全兼容吗

当WebApp运行时

系统文件目录和相关的系统数据

是否可以正确的被创建

系统安全措施

例如防火墙或加密

允许WebApp运行并对用户提供服务

而不发生冲突

或者是导致性能下降吗

是否已经利用

所选择的分布式的服务器配置

对WebApp进行了测试

例如 可能使用单台的应用服务器

和数据库服务器两台机器之间的

通过网络连接的通信是否被测试

那么WebApp是否与

数据库软件进行了适当的集成

是否对数据库的不同版本有敏感

服务器端的WebApp脚本运行正常吗

系统管理员错误对WebApp的运行的

影响是否进行了检查

如果使用了代理服务器

在战略测试的时候

是否已经明确这些代理服务器在

配置方面的差异

刚才是关于服务器端的配置测试

那么在客户端也需要进行配置测试

客户端的配置测试包括硬件

比如cpu 内存 存储和打印设备

包括操作系统

是Linux的

Macintosh的

还是Microsoft Windows的

有一些是基于移动的操作系统

我们都应该进行配置测试

再有就是我们常用的浏览器软件

我们用的IE浏览器 还是火狐浏览器

等等 这些浏览器的配置

也需要进行测试

在用户界面的构件Active X

Java applets等

其他的用户界面构件

也应该进行严格的测试

还有就是插件

比如QuickTime RealPlayer的插件

以及其他的插件 也需要进行测试

另外 连通性

比如我们的cable 比如DSL

常规的调制解调器等等

配置变量的数据

一定要缩减到可管理的数量规模下

我们对配置的不同的组合

要进行全面彻底的测试

才能保证我们的WebApp

在各种情况下都可以正常使用

对于WebApp

很重要的安全性测试

我们应该设计安全性测试

去探查在某些方面存在的弱点

比如客户端环境

当数据从客户端传到服务器的时候

并从服务器在传回客户端的时候

所发生的网络通信

以及服务器端的环境是否有安全漏洞

在客户端

弱点通常可以追溯到早已存在的浏览器

电子邮件程序或通信软件中的缺陷

在服务器端

薄弱环节包括拒绝服务攻击

恶意脚本

这些恶意脚本

可以被传到客户端

或者用来使服务器操作丧失服务能力

另外很重要的一点就是性能测试

服务器响应时间是否降到了

值得注意或者难以容忍的程度

在什么情况下性能变得不可接受了

哪些系统构件

对性能的下降应该负主要的责任

在多种负载的条件下

对用户的平均响应时间分别是多少

这些都是性能测试的主要内容

性能下降是否会影响到系统的安全性

当系统的负载增加时

WebApp的可靠性和准确性

是否会受到很大的影响

当负载大于服务器容量的最大值时

又会发生什么情况

这些都是我们在性能测试要考虑的内容

那么既然在性能测试中考虑负载

我们看一下负载测试需要考虑几个方面

负载测试的目的

确定WebApp和其他服务器环境

如何响应不同的负载条件

我们如何计算总的负载的吞吐量呢

我们有并发用户数量N

每个单位时间内在线的事物数量T

和每次事务服务器处理的数据负载D

那么我们通过

公式P等于N 乘以T乘以D

就可以计算出来总的吞吐量的负载情况

最后 我们还要考虑压力测试

系统逐渐降级了吗

或者当容量超出时

服务器会出现停机的情况下吗

服务器软件会给出

服务不可用这样的提示信息吗

或者用户知道他们不能访问服务器了吗

服务器的队列请求增加资源

一旦容量要求减少

是否能够释放出队列所占用的资源

当容量超出的时候事务会不会丢失

当容量超过的时候

数据的完整性会受到影响吗

当我们刚才说的访问数量 数据量

以及服务的应用的

处理的transaction的数量

迫使使得服务器环境失效

如何来证明服务器已经失效了

是否会自动通知到访问服务器的人

和技术支持的人员那里

那么 如果系统失效了

需要多长时间才能够恢复正常的状态

当容量达到80%或90%的时候

我们某些WebApp的功能

是否就会停止提供

比如计算密集型的功能

或者是数据流动的能力

是不是会受到很大的影响

那么 在这一个章节

我们学习了如何去测试Web应用程序

我们测试WebApp的程序的概念

测试过程

内容测试 WebApp的用户界面

测试WebApp的构件级测试

WebApp的导航测试

配置测试和安全性测试以及性能测试

我们这一章总共学习了这些方面的内容

希望对大家进行

WebApp测试的时候有一定的帮助

今天我们的内容就到这里

谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

5.4 测试web应用系统笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。