最近有很多人私信我说: 灰灰你什么时候写测试分类阿, 本来我要开始肝性能测试的, 我一看, 奥, 之前摸鱼忘写了, 所以这里补档(叶问指着一边笑.jpg).
总览
标红的需要注意一下.
为什么要对软件测试进行分类?
软件测试是软件生命周期的一个重要环节, 具有较高的复杂性, 对于软件测试, 可以从不同角度加以分类, 使开发者在软件开发过程中的不同层次, 不同阶段对测试工作更好地执行和管理测试的分类方法.
按照测试目标分类
界面测试
软件只是一种工具, 软件与人的信息交流是通过界面来进行的. 界面是软件和用户交流的最直接的一层, 界面的设计决定了用户对我们设计软件的第一印象; 界面如同人的面孔, 具有吸引用户的直接优势, 设计合理的界面能给用户带来轻松愉悦的感受, 不合理的界面会给用户带来氢悚郁刖的感受.
如果不按照设计图进行界面测试, 可能出现这种情况(画的真丑).
界面测试(简称UI测试), 是按照界面的需求(一般是UI设计稿)和界面的设计规则, 对我们软件界面所展示的全部内容进行测试和检查:
验证界面内容显示的完整性, 一致性, 准确性, 友好性.比如界面内容对应屏幕大小自适应, 换行, 内容是否全部清晰展示, 文字是否出现重叠, 错别字的问题.
验证整个页面布局和排版是否合理, 不同板块字体的设计, 图片的展示是否符合要求;
对界面不同控件的测试, 比如:文本框, 滚动条, 选项按钮等是否可以正常使用, 有效.
无效的状态是否设计合理;
界面的布局和色调符合当下时事发展.(比如之前国内汶川地震, 然后每个电视台显示的都是灰色这种).
显然下面的设计比较呃呃, 离谱(搞笑是挺搞笑的):
功能测试
功能就是指它本来是干什么的(eg:水杯->装水),功能测试是对产品的各功能进行验证, 根据功能设计测试用例, 逐项测试, 检查产品是否达到用户要求的功能.
根据产品的特性, 操作描述和用户方案, 测试一个产品的特性和可操作行为以确定它们满足设计需求. 本地化软件的功能测试, 用于验证应用程序或网站能正确工作. 使用适当的平台, 浏览器和测试脚本. 以保证目标用户的体验足够好, 就像应用程序是专门为该市场开发的一样. 功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试, 通过对一个系统的所有的特性和功能都进行测试确保符合需求, 规范.
如何进行功能测试?
设计功能测试用例, 参考产品规格说明书进行用例的编写, 具体的测试用例需要使用黑盒测试用例的方法, 比如等价类, 边界值, 判定表, 正交法, 场景法, 错误猜测法.
性能测试
我们在使用软件的时候有时会碰到软件网页打开时越来越慢, 查询数据很长时间才显示列表, 软件运行越来越慢等问题, 这些问题都是系统的性能问题引起的.
要进行软件产品的性能问题, 要对产品的性能需求进行分析, 然后基于系统的性能需求和系统架构, 完成性能测试的设计和执行, 最后要进行持续的性能调优.
可靠性测试
可靠性, 即可用性, 是指系统正常运行的能力或者程度, 一般用正常想用户提供软件服务的总时间站总时间的百分比表示.
可靠性=正常运行时间/(正常运行时间+非正常运行时间)*100%
系统非正常运行的时间可能是由硬件, 软件, 网络故障或者其它因素(如断电)造成的, 这些因素能让系统停止工作, 或者连接中断不能被访问, 或者性能急剧降低导致不能使用软件现有的服务等.
可用性指标一般要求达到4个9或5个9, 即99.99%, 99.999%.
如果可用性达到99.99%, 对于一个全年不间断(7*24的方式)运行的系统, 意味着全年(252600min)不能正常工作的时间只有52min, 不到一个小时.
如果可用性达到99.999%, 意味着全年不能正常工作的时间只有5min.
不同的应用系统, 可用性要求是不一样的, 非实时性的信息系统或一般网站要求都很低, 99%和99.5%即可, 但是比如军事系统, 要求很高.
安全性测试
安全性测试是指信息安全, 是指计算机系统或网络保护用户数据隐私, 完整, 保证数据正常传输和抵御黑客, 病毒攻击的能力.
安全性测试属于非功能性测试的很重要的一个方面, 系统常见的漏洞和威胁如下:
输入域, 如输入恶性或者带有病毒的脚本或长字符串;
代码的安全性问题, 如SQL/XML注入;
不安全的数据存储或者传递;
数据文件, 邮件文件, 系统配置文件等里面有危害系统的信息或者数据;
有问题的访问控制, 权限分配;
假冒ID:身份欺骗;
篡改, 对数据的而已修改, 破坏数据的完整性
安全性测试的方法有代码评审, 渗透测试, 安全运维等, 常用的静态安全测试工具有Coverity, IBM Appscan Source... 常用的动态安全测试有OWASP的ZAP等. 其中静态安全测试是常用的安全性测试方法.
易用性测试
许多产品都应用人体工程学的研究成果, 使产品在使用起来更加灵活和舒适. 软件产品也始终关注用户体验, 让用户获得舒适, 易用的体验, 针对软件这方面的测试称之为易用性测试.
易用性包含七个要素:符合标准和规范, 直观性, 一致性, 灵活性, 舒适性, 正确性和实用性.
1.标准性和规范性
对于现有的软件运行平台, 通常其UI标准已经不知不觉地被确立了, 称为大家的共识. 多数用户已经习惯并且接受了这些标准和规范, 或者说已经认同了这些信息所代表的含义. 比如安装软件的界面外观, 在什么场合使用恰当的对话框等.
之前的1.30防火栓事件就使这两方面不合格, 导致了悲剧发生, 令人愤慨!
2.直观性
用户界面的直观性, 要求软件功能特性易懂, 清晰. 用户界面布局合理, 对操作的响应在用户的预期之中. 比如数据统计结果采用报表的形式(条形图, 扇形图等) 展示清晰直观; 现在主流的很多搜索引擎和日历的设计也有直观性的特点.
3.灵活性
软件可以有不同的选项以满足不同使用习惯的用户来完成相同的功能. 但是灵活性的设计要把握好角度, 不然可能由于太多的用户状态和方式选择, 增加了软件设计的复杂性和程序实现难度.比如手机键盘的九宫格/26键/手写.
4.舒适性
舒适性主要强调界面友好美观, 操作过程流畅, 色彩运用恰当, 按钮的立体感等.