前言
测试团队组建完成后,基本可以确定测试人员所属团队模式及对应的职责。测试软件之前,需要了解用户要求这个软件能做什么,即要了解用户的要求或软件的要求。测试团队组建完成后,基本可以确定测试人员所属团队模式及对应的职责。测试软件之前,需要了解用户要求这个软件能做什么,即要了解用户的要求或软件的要求。
1.1 软件质量需求的分类
软件质量需求用于确定测试目标。
测试目标包括:功能、性能、界面、易用性、兼容性、安全性、可用性(可靠性)、可维护性、可扩展性等。
功能以外统称非功能。
软件质量需求或测试目标分为两大类:功能和非功能。即功能和非功能的质量需求,或功能和非功能的测试目标。
1.2 功能
分析软件功能测试目标时,需要考虑下面几个方面:
(1)软件能做什么?
(2)需要做什么?
(3)怎么做是正确的?
(4)哪些功能需要测试、哪些功能不需要测试?
(5)哪些功能重要、哪些功能不重要?
比如,QQ软件。
(1) 能做什么?能做:注册、登录、聊天。
(2) 需要什么?需要:语音、传输文件。不需要:计算器(不需计算功能)。
(3) 要怎么做?比如,登录怎么做才正确?正确:输入正确账号和密码,点击登录,关闭登录框,进入到主界面。错误:输入正确账号和密码后,点击登录,还停在登录框。
(4) 测试哪些?可能是项目负责人确定。
(5) 先测哪些?对功能的优先级进行分析。
1.3 性能
反应软件运行时的效率和占用资源情况的能力。
(1) 时间特性:时间短、速度快、效率高。
(2) 资源特性:占用资源(CPU、内存、硬盘、网络)少。
性能的资源少和时间短,类似“既要马儿少吃草,又要马儿跑得快”的现象。
分析软件测试目标时,需关注性能,比如,交易类软件的性能会影响用户的交易速度,交易时机。
1.4 界面(UI)
分析软件用户界面(User Interface)测试目标时,主要考虑呈现给用户的窗口应该美观、漂亮、舒适,包括:
(1) 布局合理;
(2) 控件位置恰当;
(3) 文字没有乱码、字体大小合适;
(4) 颜色使用恰当;
(5) 图片、表格恰当、舒适、美观。
1.5 易用性
软件易用性测试目标是分析软件是否好用、是否方便。即在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
比如,确定按钮,既可以单击使用,又可以回车使用。
比如,登录界面,输入光标自动停在用户名输入框,此时可以直接输入用户名,然后通过tab键到密码输入框,说明这个登录的易用性是好用的。
1.6 兼容性(可移植性)
指软件产品从一种环境迁移到另一个环境的能力,反映一个软件与不同硬件环境、操作平台、其他软件共同使用的能力。
包括与不同软件、平台、软件自身不同版本、其他软件、数据的兼容。
(1)硬件包括CPU主频和品牌,内存,硬盘、网卡等。
比如,软件在CPU为2.5GHZ和3.5GHZ的机器上运行的速度不同。
比如,软件在CPU为因特尔、AMD的机器上的运行情况。
(2)操作平台,比如linux、windows。
软件可以在不同硬件、不同平台上运行,说明可移植性是比较高的。
(3)软件自身不同版本,比如word2007、word2013、word2016能在同一台机器上,同时安装和使用,说明自身版本有兼容性。
(4)其他软件,比如,以前360和QQ管家只能在同一台机器上安装其中一个。
(5)数据的兼容,比如,软件导出一个csv,用word和wps是否都能打开;比如软件V1版本和V2版本,能否正确读写相同的一份测试文档;比如,软件在SQLServer2008和2016是否能正常运行;比如,软件是否同时支持多种数据库,是否支持SQLServer、MySQL、ORACLE。
比如,前端是否兼容不同浏览器。
1.7 安全性
指软件产品保护信息和数据的能力。
安全性测试范围,包括不限于如下:
网络上传输数据是否加密?
数据存储到数据库是否加密?
数据会不会很容易别篡改、窃取?
1.8 可用性(可靠性)
指系统正常运行的能力或程度。可用性=[正常运行时间/(正常运行时间+非正常运行时间)]*100%。
(1) 可用性指标一般要求达到4个9即99.99%(全年52分钟不正常工作)或5个9即99.999%(全年5分钟不正常工作),对一些军事系统,可用性高达7个9即99.99999%(全年失效时间不超过2秒)。
(2) 一般测试时间不足,可以采用空间换时间的办法,比如,在高负载的情况下,进行为期一周或一个月的测试,以判断其可靠性。
(3) 关注MTTF(平均无故障时间)、MTTR(平均恢复时间)、MTBF(平均失效间隔时间)。
1.9 可维护性
指软件产品可被修改的能力。
(1)修改可能包括修正、改进或软件对环境需求和功能规格说明变化的适应。
(2)可维护性的软件应该是易改变的、稳定的、易测试的。
软件在使用过程中,可能出现一些缺陷,可以通过补漏洞、打补丁的方式对软件进行升级,此时,需对软件进行修改。另外,使用软件过程中,客户可能对软件提出一些新功能,去掉一些不适用的功能,此时,也需求对软件进行修改。
对软件的修改,若是容易修改的,修改后对用户使用的影响是较低的,整个软件是稳定的,容易测试的,那么这个软件的可维护性是比较高的。
1.10可扩展性(可伸缩性)
通过很少的改动就能实现整个系统处理能力的增长。
比如,在部署两台服务器时测试系统性能(容量,即最大负载),再部署四台、八台服务器时分别进行系统容量的测试,看其容量是否为上次(两台、四台)测试值的两倍或接近两倍。如果是,系统就具有良好的可伸缩性。
比如,业务增长后,多部署服务器后,需要测试系统能不能承受相应倍数的容量。