第五章测试技术与应用(2)S
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
书购买正确
22
Web应用系统由三层架构组成:
Browser
Web server
Database server
可分为服务器端测试和客户端测试两个部分。 服务端重点测试:性能测试、负载测试/压 力测试和安全测试。 客户端重点测试:兼容性测试。
23
Web应用系统由三层架构组成:
Browser
Web server
当项目开发时间比较紧的时候,可以考虑冒烟测试
12
随机测试 / 猴子测试
➢当软件公布后,可能会有成千上万的人使用,因为不能穷举测 试,有可能遗漏某些bug。 ➢随机测试(random testing),是指测试中所有的输入数据都 是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘 性的错误。有时测试过程中的非常数据,也可能更能有效发现 bug。
可以从“基本功能测试”、“易用性测试”、“界面测 试”、“稳定性测试”、“安全性测试”、“本地化测 试”、“对设计的改进建议”等角度思考。
15
案例:纸杯测试
需求测试:查看纸杯的使用说明书 基本功能测试:用纸杯装水查看是否漏水,水能喝吗? 易用性测试:纸杯是否容易拿住、是否有防滑措施、是否方便饮 水,装入开水后水杯是否烫手等 界面测试:查看纸杯外观,如形状、大小设计、文字、图案等是 否符合需求规格说明。 兼容性测试:纸杯是否能容纳白水、酒精、果汁等常喝液体。 安全性测试:杯子使用的材料是否符合食品卫生标准,纸杯有没 有毒和细菌。 可移植性测试:纸杯在不同的地方、不同温度等环境下是否都可 以正常使用 用户文档测试:使用说明是否对纸杯的用法、限制、使用条件有 详细正确说明
Database server
服务端的负载测试/压力测试:例如测试网站同时 在线达5000人时响应速度如何?若达10000人时, 响应情况如何?通常主要关注:并发用户数量 、 吞吐量。
服务端的安全测试:考虑用户登录服务器的安全认 证,数据库服务器的安全
一般需要借助测试工具进行性能测试,如Loadrunner
5.1.6 安全测试
系统安全包括了物理设备安全和软件安 全。 安全测试的目的是为了发现软件中存在 的安全漏洞。 安全测试重点:分析系统的安全隐患, 为非法入侵设立目标,例如盗窃某个文 件、修改用户权限、更改数据库记录等。
1
安全性测试用例的参考模板
假想目标A
前提条件
非法入侵手段
是否实现目标 代价-利益分析
11
5.1.11 冒烟测试
冒烟测试(smoke testing),是指在对一个新版 本进行系统大规模的测试之前,先验证一下软件 的基本功能是否实现,是否具备可测性。例如拿 到一个新版本时,首先进行冒烟测试,如果通过, 则进行其他测试。 冒烟测试(Smoke Testing)的目的是检查版本的基 本功能。 冒烟测试所进行的是一系列对于该软件比较核心 的测试,一般从测试用例中选择一部分核心的作 为冒烟测试时所使用的测试用例。
26
……
安全需要测试人员有足够的能力去分析 系统的安全隐患 测试人员将自己当成黑客
2
5.1.8 安装与卸载测试 P133
安装测试应该考虑以下方面:
测试各种不同的安装组合,并验证各种不同组合的 正确性 安装退出之后,确认应用程序可以正确启动、运行。 在安装之前备份注册表,安装之后,察看注册表中 是否有多余的垃圾信息。 在台式机上测试后,至少要在一台笔记本上进行安 装测试 安装完成之后,可以在简单地使用之后再执行卸载 操作 对于客户/服务器模式的应用系统,可以先安装客 户端,然后安装服务器端,测试是否会出现问题。 考察安装该系统是否对其他的应用程序造成影响
24
Web应用系统由三层架构组成:
Browser
Web server
Database server
客户端的兼容性测试:对于Web网站,用户的使 用环境五花八门,例如硬件环境、操作系统、浏 览器等不同
25
回顾本章
功能测试 错误处理测试 内存泄露测试 用户界面测试 易用性测试 性能测试、压力测试 安全性测试 安装/卸载测试 兼容性测试 冒烟测试 随机测试 文档测试 回归测试 Web应用系统测试
此类自动化工具称为测试猴子 (test monkey)
13
5.1.12 文档测试
文档测试主要对产品手册、用户手册、帮助 文件等技术文档进行测试。 文档测试中常见错误:
文字错误、语法错误、拼写错误 所描述的操作步骤有遗漏 所描述的功能或者操作步骤错误
14
案例:纸杯测试
微软公司的一道面试题,面试官随意选取一个物品,让应 聘者在规定的时间内说出测试策略或是写出测试用例 要求应聘者有一定的生活常识,了解常用的测试方法,并 且思维要敏捷,有发散性。
对于测试新应用软件也一样,需要决定在 哪个平台版本上测试,以及和什么应用程序一 起测试。
要确定测试的优先级
9
例如,测试金山词霸2003单机版兼容性
操作系统 Windows 98 Windows 98se Windows Me Windows NT4.0 Windows 2000p Windows 2000s Windows XPp Windows XPh Windows 2003s
16
案例:纸杯测试
疲劳测试:将纸杯盛上水,放置24小时检查漏水时间和情况 可靠性测试:纸杯从不同高度落下的损坏程度 稳定性测试(24*7):装入液体后记录其多久以后会漏水。 跌落测试:给纸杯加上有填充物的包装后,在多高的情况下摔下不损 坏 震动测试:给纸杯加上有填充物的包装后震动,检查纸杯是否能应对 恶劣的运输情况 性能测试:温度/杯质的抗压力以及杯漆的持久度等。 压力测试:用一根针扎杯子,并不断重量,看压强多大时会穿透 本地化测试:为国际化或本地化需要,杯子上的文字、图案等是否在 政治、文化、宗教等方面具有广泛的适用性。检查纸杯的界面布局和 翻译的语言质量,包含使用说明等。 对设计的改进意见:如果是一次性杯子,能否标识已使用(使杯子变 色或其他)或提供杯子的使用者标签
如何选择和制造植入的缺陷,是有难度的
18
5.2.2 回归测试
回归测试的原因: • 软件增加了新的功能后会影响软件的原
有的结构。 • 对软件修复时可能考虑不周,引入问题。
回归测试是指对某些已经被测试过的内容 进行重新测试。即使用以前版本的测试用 例对软件中旧有的内容重新进行测试。
19
理想情况:每一次的改动都要进行完整的回归测试,但 是实际中由于进度、成本等压力,不这样做。 何时需要进行回归测试?进行何种回归测试,需要有经 验的测试人员、程序员、设计人员等判断。 例如,某软件公司的做法示例:
3
5.1.8 安装与卸载测试
卸载测试应该考虑以下方面:
从程序组或控制面板中卸载,检查桌面、程序组、 注册表中信息是否被删。 注意:在测试软件的卸载是否完全时,应该观察系 统的注册表。 突然中断卸载,下次卸载是否能继续上次的安装各 种不同的安装组合,并验证各种不同组合的正确性 能否卸载正在使用的程序
测试优先级 * * * * *** ** *** ** **
实际测试过程中,需要根据系统分析师、系统架构师等相关人 员的建议加以取舍,进行重点测试。如***需要重点测试,**进行 辅助测试,*则可以不测试
10
软件兼容的一些实例: 从Web页面剪切文字,然后在文字处理程序中打开的文档 中粘贴。 从电子表格程序保存账目数据,然后在另一个完全不同的 电子表格程序中读入这些数据。 使图形处理软件在同一操作系统下的不同版本正常工作。 升级到新的数据库程序,读入现存所有数据库,并能够像 老版本一样对其中的数据进行处理。 测试“数据备份”软件,需要在各种常用的OS、浏览器上, 各种常用的移动设备、刻录机上等。
硬件系统的兼容性:软件系统在不同硬件环境下运行的兼 容性。例如,所测试的程序与何种型号的计算机兼容,与 哪些打印机、显示芯片、视频卡兼容?
Βιβλιοθήκη Baidu带宽限制/网络环境兼容性:宽带上网、拨号上网、不同网
速等。
7
举例
要测试一个流行的操作系统新版本,当前 操作系统上可能有数几十上百万现有程序,则 新操作系统的目标是否与这些现有程序百分之 百兼容。因为不可能在一个操作系统上测试所 有的软件程序,因此需要决定哪些是最重要的、 必须进行的。
4
5.1.9 升级测试
升级测试包括两个方面:软件本身 的升级;软件运行环境升级。 软件的升级测试需要对软件重新进 行功能、性能等方面的测试工作。
5
5.1.10 兼容性测试
兼容性测试是为了检验程序与很多可能 的硬件和系统软件配置之间的兼容情况。 在进行兼容性测试时,主要考虑:
操作系统兼容性: 浏览器兼容性: 其它的软件兼容 硬件兼容 带宽限制/网络环境兼容性
17
5.2 测试技巧
5.2.1 植入缺陷
植入缺陷,就是在测试前向程序中植入一些 缺陷
植入缺陷的目的是为了估计软件中还有多少剩余 的缺陷。
假设植入缺陷的数目是Ns,通过测试,发现了n1 个植入的缺陷,发现了n2个软件固有的缺陷,那 么,软件中固有缺陷的估算值(N0)为:
N0 = n2 * Ns / n1 软件中残余缺陷的估算值则为 :N0 – n2
6
操作系统兼容性:Windows,Unix,Linux,Mac OS等。
浏览器兼容性: IE,Netscape communicator,Firefox,360 浏览器等 。
软件系统的兼容性:检测各软件之间能否正确地交互和 共享信息。交互可以运行在一台计算机的两个程序间,也 可以通过网络运行在两台计算机的两个程序间。也可以简 化为在移动存储设备上保存数据,然后在其他计算机系统 上运行。
21
Web应用系统的测试重点: ➢有足够好的性能:并发用户多时响应速度要
满足 ➢有足够好的兼容性:可以使用除IE之外的浏
览器 ➢有吸引用户使用的界面:美观易用的界面无
疑会使你的网站在众多同类网站中脱颖而出。 ➢有足够好的安全性:能保护用户的信息安全,
如账户的用户名、密码等 ➢有足够好的正确性:实现正确的功能,如图
每两周需要进行一次完整的回归测试 当修复的缺陷数量累计到50个时,进行一次完整的回 归测试 在产品递交用户前5个工作日,进行完整的回归测试
回归测试通常可以使用自动化测试工具(如 Mercury的QuickTest Professional )。
20
5.3 Web系统测试要点
功能测试 性能测试 界面测试 安全性测试 兼容性测试 ……
22
Web应用系统由三层架构组成:
Browser
Web server
Database server
可分为服务器端测试和客户端测试两个部分。 服务端重点测试:性能测试、负载测试/压 力测试和安全测试。 客户端重点测试:兼容性测试。
23
Web应用系统由三层架构组成:
Browser
Web server
当项目开发时间比较紧的时候,可以考虑冒烟测试
12
随机测试 / 猴子测试
➢当软件公布后,可能会有成千上万的人使用,因为不能穷举测 试,有可能遗漏某些bug。 ➢随机测试(random testing),是指测试中所有的输入数据都 是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘 性的错误。有时测试过程中的非常数据,也可能更能有效发现 bug。
可以从“基本功能测试”、“易用性测试”、“界面测 试”、“稳定性测试”、“安全性测试”、“本地化测 试”、“对设计的改进建议”等角度思考。
15
案例:纸杯测试
需求测试:查看纸杯的使用说明书 基本功能测试:用纸杯装水查看是否漏水,水能喝吗? 易用性测试:纸杯是否容易拿住、是否有防滑措施、是否方便饮 水,装入开水后水杯是否烫手等 界面测试:查看纸杯外观,如形状、大小设计、文字、图案等是 否符合需求规格说明。 兼容性测试:纸杯是否能容纳白水、酒精、果汁等常喝液体。 安全性测试:杯子使用的材料是否符合食品卫生标准,纸杯有没 有毒和细菌。 可移植性测试:纸杯在不同的地方、不同温度等环境下是否都可 以正常使用 用户文档测试:使用说明是否对纸杯的用法、限制、使用条件有 详细正确说明
Database server
服务端的负载测试/压力测试:例如测试网站同时 在线达5000人时响应速度如何?若达10000人时, 响应情况如何?通常主要关注:并发用户数量 、 吞吐量。
服务端的安全测试:考虑用户登录服务器的安全认 证,数据库服务器的安全
一般需要借助测试工具进行性能测试,如Loadrunner
5.1.6 安全测试
系统安全包括了物理设备安全和软件安 全。 安全测试的目的是为了发现软件中存在 的安全漏洞。 安全测试重点:分析系统的安全隐患, 为非法入侵设立目标,例如盗窃某个文 件、修改用户权限、更改数据库记录等。
1
安全性测试用例的参考模板
假想目标A
前提条件
非法入侵手段
是否实现目标 代价-利益分析
11
5.1.11 冒烟测试
冒烟测试(smoke testing),是指在对一个新版 本进行系统大规模的测试之前,先验证一下软件 的基本功能是否实现,是否具备可测性。例如拿 到一个新版本时,首先进行冒烟测试,如果通过, 则进行其他测试。 冒烟测试(Smoke Testing)的目的是检查版本的基 本功能。 冒烟测试所进行的是一系列对于该软件比较核心 的测试,一般从测试用例中选择一部分核心的作 为冒烟测试时所使用的测试用例。
26
……
安全需要测试人员有足够的能力去分析 系统的安全隐患 测试人员将自己当成黑客
2
5.1.8 安装与卸载测试 P133
安装测试应该考虑以下方面:
测试各种不同的安装组合,并验证各种不同组合的 正确性 安装退出之后,确认应用程序可以正确启动、运行。 在安装之前备份注册表,安装之后,察看注册表中 是否有多余的垃圾信息。 在台式机上测试后,至少要在一台笔记本上进行安 装测试 安装完成之后,可以在简单地使用之后再执行卸载 操作 对于客户/服务器模式的应用系统,可以先安装客 户端,然后安装服务器端,测试是否会出现问题。 考察安装该系统是否对其他的应用程序造成影响
24
Web应用系统由三层架构组成:
Browser
Web server
Database server
客户端的兼容性测试:对于Web网站,用户的使 用环境五花八门,例如硬件环境、操作系统、浏 览器等不同
25
回顾本章
功能测试 错误处理测试 内存泄露测试 用户界面测试 易用性测试 性能测试、压力测试 安全性测试 安装/卸载测试 兼容性测试 冒烟测试 随机测试 文档测试 回归测试 Web应用系统测试
此类自动化工具称为测试猴子 (test monkey)
13
5.1.12 文档测试
文档测试主要对产品手册、用户手册、帮助 文件等技术文档进行测试。 文档测试中常见错误:
文字错误、语法错误、拼写错误 所描述的操作步骤有遗漏 所描述的功能或者操作步骤错误
14
案例:纸杯测试
微软公司的一道面试题,面试官随意选取一个物品,让应 聘者在规定的时间内说出测试策略或是写出测试用例 要求应聘者有一定的生活常识,了解常用的测试方法,并 且思维要敏捷,有发散性。
对于测试新应用软件也一样,需要决定在 哪个平台版本上测试,以及和什么应用程序一 起测试。
要确定测试的优先级
9
例如,测试金山词霸2003单机版兼容性
操作系统 Windows 98 Windows 98se Windows Me Windows NT4.0 Windows 2000p Windows 2000s Windows XPp Windows XPh Windows 2003s
16
案例:纸杯测试
疲劳测试:将纸杯盛上水,放置24小时检查漏水时间和情况 可靠性测试:纸杯从不同高度落下的损坏程度 稳定性测试(24*7):装入液体后记录其多久以后会漏水。 跌落测试:给纸杯加上有填充物的包装后,在多高的情况下摔下不损 坏 震动测试:给纸杯加上有填充物的包装后震动,检查纸杯是否能应对 恶劣的运输情况 性能测试:温度/杯质的抗压力以及杯漆的持久度等。 压力测试:用一根针扎杯子,并不断重量,看压强多大时会穿透 本地化测试:为国际化或本地化需要,杯子上的文字、图案等是否在 政治、文化、宗教等方面具有广泛的适用性。检查纸杯的界面布局和 翻译的语言质量,包含使用说明等。 对设计的改进意见:如果是一次性杯子,能否标识已使用(使杯子变 色或其他)或提供杯子的使用者标签
如何选择和制造植入的缺陷,是有难度的
18
5.2.2 回归测试
回归测试的原因: • 软件增加了新的功能后会影响软件的原
有的结构。 • 对软件修复时可能考虑不周,引入问题。
回归测试是指对某些已经被测试过的内容 进行重新测试。即使用以前版本的测试用 例对软件中旧有的内容重新进行测试。
19
理想情况:每一次的改动都要进行完整的回归测试,但 是实际中由于进度、成本等压力,不这样做。 何时需要进行回归测试?进行何种回归测试,需要有经 验的测试人员、程序员、设计人员等判断。 例如,某软件公司的做法示例:
3
5.1.8 安装与卸载测试
卸载测试应该考虑以下方面:
从程序组或控制面板中卸载,检查桌面、程序组、 注册表中信息是否被删。 注意:在测试软件的卸载是否完全时,应该观察系 统的注册表。 突然中断卸载,下次卸载是否能继续上次的安装各 种不同的安装组合,并验证各种不同组合的正确性 能否卸载正在使用的程序
测试优先级 * * * * *** ** *** ** **
实际测试过程中,需要根据系统分析师、系统架构师等相关人 员的建议加以取舍,进行重点测试。如***需要重点测试,**进行 辅助测试,*则可以不测试
10
软件兼容的一些实例: 从Web页面剪切文字,然后在文字处理程序中打开的文档 中粘贴。 从电子表格程序保存账目数据,然后在另一个完全不同的 电子表格程序中读入这些数据。 使图形处理软件在同一操作系统下的不同版本正常工作。 升级到新的数据库程序,读入现存所有数据库,并能够像 老版本一样对其中的数据进行处理。 测试“数据备份”软件,需要在各种常用的OS、浏览器上, 各种常用的移动设备、刻录机上等。
硬件系统的兼容性:软件系统在不同硬件环境下运行的兼 容性。例如,所测试的程序与何种型号的计算机兼容,与 哪些打印机、显示芯片、视频卡兼容?
Βιβλιοθήκη Baidu带宽限制/网络环境兼容性:宽带上网、拨号上网、不同网
速等。
7
举例
要测试一个流行的操作系统新版本,当前 操作系统上可能有数几十上百万现有程序,则 新操作系统的目标是否与这些现有程序百分之 百兼容。因为不可能在一个操作系统上测试所 有的软件程序,因此需要决定哪些是最重要的、 必须进行的。
4
5.1.9 升级测试
升级测试包括两个方面:软件本身 的升级;软件运行环境升级。 软件的升级测试需要对软件重新进 行功能、性能等方面的测试工作。
5
5.1.10 兼容性测试
兼容性测试是为了检验程序与很多可能 的硬件和系统软件配置之间的兼容情况。 在进行兼容性测试时,主要考虑:
操作系统兼容性: 浏览器兼容性: 其它的软件兼容 硬件兼容 带宽限制/网络环境兼容性
17
5.2 测试技巧
5.2.1 植入缺陷
植入缺陷,就是在测试前向程序中植入一些 缺陷
植入缺陷的目的是为了估计软件中还有多少剩余 的缺陷。
假设植入缺陷的数目是Ns,通过测试,发现了n1 个植入的缺陷,发现了n2个软件固有的缺陷,那 么,软件中固有缺陷的估算值(N0)为:
N0 = n2 * Ns / n1 软件中残余缺陷的估算值则为 :N0 – n2
6
操作系统兼容性:Windows,Unix,Linux,Mac OS等。
浏览器兼容性: IE,Netscape communicator,Firefox,360 浏览器等 。
软件系统的兼容性:检测各软件之间能否正确地交互和 共享信息。交互可以运行在一台计算机的两个程序间,也 可以通过网络运行在两台计算机的两个程序间。也可以简 化为在移动存储设备上保存数据,然后在其他计算机系统 上运行。
21
Web应用系统的测试重点: ➢有足够好的性能:并发用户多时响应速度要
满足 ➢有足够好的兼容性:可以使用除IE之外的浏
览器 ➢有吸引用户使用的界面:美观易用的界面无
疑会使你的网站在众多同类网站中脱颖而出。 ➢有足够好的安全性:能保护用户的信息安全,
如账户的用户名、密码等 ➢有足够好的正确性:实现正确的功能,如图
每两周需要进行一次完整的回归测试 当修复的缺陷数量累计到50个时,进行一次完整的回 归测试 在产品递交用户前5个工作日,进行完整的回归测试
回归测试通常可以使用自动化测试工具(如 Mercury的QuickTest Professional )。
20
5.3 Web系统测试要点
功能测试 性能测试 界面测试 安全性测试 兼容性测试 ……