1. 功能测试
1.1 概念
根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作性为以确定它满足设计需求。
1.2 测试范围
功能错误或遗漏、界面问题、性能错误(软件本身的处理性能,比如大数据量加载)、数据及访问错误、初始化及终止错误。
1.3 测试工具
商用自动化测试工具:
QTP:quick test professional,前身为winrunner,多用于回归测试或者同一软件的新版本;
silkTest、Rational robot
开源自动化测试工具:
selenium:针对web应用的敏捷测试,直接在浏览器运行,只直接测试软件在不同浏览器中的兼容性问题;
Watir、Sikuli
2. 性能测试
2.1 概念
验证软件系统的性能可以满足需求的指标要求。往往可以延伸至负载测试、压力测试、稳定性测试。
2.2 测试范围
负载测试:测试过程中逐步增大负载,并记录测试系统相应的性能表现,最终确定该系统在正常指标范围内的最大负载;
压力测试:测试系统在极限情况下的压力情况,即系统在什么样的压力下才会失效,承受的最大极限;
稳定性测试:以稍大于正常业务量的负载,对系统进行长时间的测试,以确定系统在较长运行时间下的稳定性情况。
静态性能评估:开发web应用时,基于一系列的web应用页面性能优化的最佳实践对web应用的页面进行静态分析,并给出评估结果的性能分析方法。
2.3 测试指标
并发用户数、每秒事务数、系统响应时间、设备性能(服务器及资源性能)
2.4 测试工具
LoadRunner、
Silkperformer、
Jmeter、WebLoad、
Apache Bench、
LoadUI(主要针对http接口测试,例如webservers等)、
YSlow、PageSpeed(主要用户静态性能评估)、
3. 部署测试
3.1 概念
也称安装测试,主要验证系统部署过程,并确保软件经过安装测试后可正常使用。
3.2 部署测试主要测试内容
在不同环境下的部署验证;
参照部署文档执行,确定部署过程的合理性和正确性;
基础数据:是部署测试的重要内容,可通过用户线上数据和数据生成脚本来获取。保证系统运行后,主要用户使用场景相关的数据是具备的,并且保证相关测试的验。
4. 文档测试
4.1 概念
针对软件产品的交付品,配套的文档类部件的测试。如用户手册、使用说明、用户帮助文档等。
4.2 文档测试要点
完整性、正确性、一致性、易理解性、易浏览性。
5. 安全测试
对软件产品进行测试以确保其符合产品安全需求和质量标准。
5.1 渗透测试
通过模拟对软件系统的恶意攻击行为来评估系统安全性性的一种测试。
是一种去的用户授权的攻击行为,测试完成后需要销毁测试痕迹。
5.2 渗透测试 VS 安全测试
渗透测试:偏重于攻击,通过攻击行为来寻找系统漏洞;只需要选择薄弱的环节或者点进行攻破即可;
安全测试:偏重于验证系统的防御功能;需要在整个系统的防御面上进行测试,由于安全测试的考虑因素更多,因此相比于渗透测试更加难以开展;
5.3 安全测试权威网站OWASP
open web application software project.目前web端测试中最著名的安全测试项目,官网:www.owasp.org
做安全测试时可重点关注:
Top 10:每隔几年发布行业中最具威胁的安全漏洞并对其进行详细说明分析;
Testing guide;
5.4 安全测试工具
Appscan:一款针对于web应用的漏洞扫描工具;
Webinspect:惠普公司的漏洞扫描工具,和Appscan功能类似;
Nessus:针对服务器主机类的漏洞检查工具(这个有免费版,其他的都收费~);
Nmap:通过扫描主机来检查端口的开放情况,以进行攻击;
MetaSploit:著名的攻击框架,包含大量插件,可对目标系统进行检测和渗透测试;
WebScarab:由OWASP提供的一款开源工具;
Fortify:白盒测试工具,针对开发源代码的静态分析,以查找安全问题;
W3AF:针对web端的开源安全分析工具;
6. 兼容性测试
6.1 兼容性种类
软件本身的兼容性:向后兼容;新开发的软件版本需要对历史版本的功能及配置兼容,不能因为版本升级导致历史数据不可用;
不同平台下的兼容:开发的软件可运行在多个平台下;
软件对运行设备的兼容性:运行在不同类型的设备上时,需要对软件的表现进行测试;
软件互操作性:同一个厂商的不同软件,在同一台设备上运行时功能之间的交互是否正确;
6.2 浏览器兼容性
是对上述6.1章节的扩展,浏览器兼容性仅针对于web端的应用。
内核名称 |
Trident |
Gecko |
WebKit |
presto |
浏览器 |
IE6-10 |
FireFox |
Safari、Chrome |
opera |
6.3 浏览器兼容性测试工具
BrowserShots:基于真实浏览器进行截图比对的工具;
Browser Sandbox:通过不同插件来实现浏览器模拟测试;
google浏览器兼容测试插件:http://www.w3help.org/ 主要在页面代码层面进行判断;
7. 易用性测试
7.1 概念
测试用户使用软件时是否感觉方便,能否保证用户使用体验的测试类型。
更多针对UI层面的测试:点击时的功能反馈、页面风格一致性、是否存在误导用户的指引、网站布局样式等。
8. 本地化测试
8.1 概念
针对软件的本地化版本实施的针对性测试。
8.2 本地化测试内容
语言、书写习惯;
时区、日期格式、货币单位;
当地风俗及法律法规;
政治敏感内容;
9. 无障碍测试
9.1 软件可靠性测试
Accessibility Test. 也称可访问性测试。是指软件需要提供便于特殊人群使用的功能,包括视障、听障、老年人、身体残疾用户等。
10. 可靠性测试
10.1 软件可靠性测试
指软件在规定时间、规定环境条件下完成规定功能的能力。
10.2 硬件可靠性测试
可靠性测试更多是指硬件的可靠性测试。硬件产品再设计应用过程中,受气候环境及机械环境的影响,能否正常工作。
典型测试内容包含:器械老化、温度、湿度、气体腐蚀性、高压地区、防尘防水、包装压力等。
11. 其他测试类型
11.1 回归测试
软件功能修改后,对软件进行重新测试以确认修改没有引入新的错误或者导致其他部分产生错误。
回归测试的重点在关键模块和重点功能的组件。
软件研发周期中会进行多次回归测试,且尽量实现自动化。
11.2 冒烟测试
来自于硬件板卡验证术语。软件上则用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
和回归测试在某种程度上类似,冒烟测试侧重于系统全流程的业务,回归测试则可通过模块划分来测试具体功能。
11.3 Monkey测试
也称搞怪测试。用一些随机、稀奇古怪的方式来操作系统,以测试系统的健壮性和稳定性。
主要应用于安卓系统的稳定性测试。
11.4 A/B测试
11.4.1 A/B测试概念
A/B测试多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确定更优化设计的一种测试方案。
举个栗子:在UI界面设计时,难以确认图片应放置在页面的哪个区域,或者无法确认某个按钮的颜色为蓝色或者红色更合适,此时将几个版本同时提供给用户。
能用最真实的结果为网站的改动提供依据。
11.4.2 A/B测试要点
- 多个方案并行;
- 每次测试仅改动一个变量;
- 按照某种规则进行优胜劣汰;
11.4.3 A/B测试工具
免费工具:Google Analytics Content Experiments
商用工具:Visual Website Optimizer