一般我们判定一个软件质量到底如何,都是从哪些方面来衡量呢?这就是我们所说的测试方法。其实软件测试的方法种类繁多,现在我们就把常用的软件测试方法罗列出来,让大家对软件测试行业有个总体的看法。
一、功能测试
根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。有的系统有前后台,如:淘宝,我们要分别对前后台测试;有的系统有PC端和APP端,如:QQ,我们要分别对两端测试。
每个系统的模块中都有一些公用的功能,如:增加、删除、修改、查询、导入、导出、打印等。因此实际测试中,我们要都把这些功能首先测试一遍。
模块和模块、功能与功能之间不是孤立没有联系的,相反,正是因为他们之间的相互关系才组合成了我们复杂的系统,因此测试时,要把他们之间的关系全部走通。一般业务流程之间的关联分为:
Ø 功能和功能之间
Ø 模块和模块之间
Ø 系统和系统之间
Ø 数据库和数据库之间
Ø 接口
二、性能测试
性能测试是指通过工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 。一般在功能测试之后,系统版本稳定之后进行。性能测试主要考虑的问题是:
1. 用户层面
– 需求规格说明书明确定义了用户的性能需求
– 用户最关心响应时间
2. 产品层面
– 系统服务器能否承受上线后将带来的用户访问量和巨大的并发冲击还是未知数
– 产品/项目经理最关心资源消耗比
三、安全性测试
应用程序级别的安全性,包括对数据或业务功能的访问,应用程序级别的安全性可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
系统级别的安全性,包括对系统的登录或远程访问。系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
防SQL漏洞扫描
– Appscan、SQLmap、Burpsuite
防XSS、防钓鱼
– RatProxy、Taint、Netsparker
get、post -> 防止关键信息显式提交
– get:显式提交
– post:隐式提交
cookie、session
– Cookie欺骗
四、兼容性测试
1、浏览器
2、分辨率
3、数据库
4、操作系统
5、手机APP主流内核不同浏览器:
IE、Firefox、Chrome、Safari 、Opera
6、不同内核浏览器在解析css和js上会有明显区别
Flash渲染、JavaScript、Css
工具:IETester
7、前端革命
bootstrap、ExtJS、EasyUI
8、手机
480×800,480×854,960×540,960×640
9、PC
1024X768,1280×1024,1440×900,1680×1050
10、笔记本
1366×768,1920×1080,1600×900
11、iPad
1024*600,1280*800,2560*1600
12、数据库
有的公司系统复杂,有很多数据库版本,因此要针对涉及的数据库版本进行测试 。如:A公司网管系统客户不同,提供了oracle、sysbase、mysql等版本,作为测试,我们要把不同数据库的版本都测一次,因为数据库之间会存在函数等差异,所以代码上会很不一样。
13、操作系统
如:A公司用php语言开发了一套CRM系统,客户的服务器既可能是Windows,也可能是Uinx/Liinux,因此要测试不同操作系统之间兼容性。如:$Student =M(‘student’);
Windows上就不会出问题,linux上就出错,因为linux大小写敏感。
14、手机APP
如:A公司开发了一款APP,那要在各Android版本上都测试。
五、可靠性测试
1、用户权限限制。软件是否按功能模块划分用户权限,权限划分是否合理,考察超级用户对各个用户的权限管理是否合理,包括修改用户的登录资料等。
2、用户和密码封闭性。软件对用户名和密码有无校验,有无保护措施,尤其对密码有无屏蔽功能。
3、系统对用户错误登录的次数限制。软件对用户错误登录有无次数限制,一般做法是连续三次登录失败就退出系统。
4、留痕功能。软件是否提供操作日志,比如某用户登录的时间,查询、修改或删除的动作以及离开的时间等。
5、 屏蔽用户操作错误。考察对用户常见的误操作的提示和屏蔽情况,例如可否有效避免日期的录入错误或写入无效的日期。
6、错误提示的准确性。当用户操作错误时,能否有准确清晰的提示,使用户知道造成错误的原因。例如当用户未输入完有效信息时存盘,系统应当给出关于未输入项的提示。
7、错误是否导致系统异常退出。考察软件运行的稳定性,当软件发生一般错误或严重错误时,软件是否会自动退出。
8、数据备份与恢复手段。主要针对有数据存储需要的软件,有的软件依靠数据库操作系统本身的备份与恢复机制,这需要用户具备一定的操作知识;好的软件会提供备份与恢复的操作,不需要用户直接对数据库系统进行操作。
9、 输入数据有效性检查。当用户输入的数据有错时,软件应能判断数据的有效性,避免无效数据的生成。
10、异常情况的影响。在程序运行过程中进行掉电等试验,考查数据和系统的受影响程度;若受损,是否提供补救工具,补救的情况如何。
11、网络故障对系统的影响。当网络中断连接时,是否会造成数据的丢失。
六、易用性测试
易用性即用户体验,指用户使用软件时感觉的方便度。不同公司有不同策略:
大公司:提供易用性检查表,测试工程师根据表进行逐一排查易用性。
小公司:边测功能边测易用,测试工程师从客户角度和根据经验及行业标准来排查易用性。
七、安装/卸载测试
确保该软件在正常情况和异常情况的不同条件下安装/卸载。
【例】
1、进行首次安装、升级、完整的或自定义的安装都能进行安装。
2、异常情况包括磁盘空间不足、缺少目录创建权限等。
3、核实软件在安装后可立即正常运行。