测试分类(1)
测试分类(1)
为什么要对软件测试进⾏分类
软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试的分类⽅法
按照测试⽬标分类
界⾯测试
软件只是⼀种⼯具,软件与⼈的信息交流是通过界⾯来进⾏的,界⾯是软件与⽤⼾交流的最直接的⼀层,界⾯的设计决定了⽤⼾对我们设计的软件的第⼀印象;界⾯如同⼈的⾯孔,具有吸引⽤⼾的直接优势,设计合理的界⾯能给⽤⼾带来轻松愉悦的感受。
界⾯测试(简称UI测试),指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则,对我们软件界⾯
所展⽰的全部内容进⾏测试和检查,⼀般包括如下内容:
• 验证界⾯内容显⽰的完整性,⼀致性,准确性,友好性。⽐如界⾯内容对屏幕⼤⼩的⾃适应,换⾏,内容是否全部清晰展⽰;
• 验证整个界⾯布局和排版是否合理,不同板块字体的设计,图⽚的展⽰是否符合需求;
• 对界⾯不同控件的测试,⽐如,对话框,⽂本框,滚动条,选项按钮等是否可以正常使⽤,有效和
• ⽆效的状态是否设计合理;
• 界⾯的布局和⾊调符合当下时事的发展。
功能测试
功能测试就是对产品的各功能进⾏验证,根据功能测试⽤例,逐项测试,检查产品是否达到⽤⼾要求的功能。
根据产品特性、操作描述和⽤⼾⽅案,测试⼀个产品的特性和可操作⾏为以确定它们满⾜设计需求。本地化软件的功能测试,⽤于验证应⽤程序或⽹站对⽬标⽤⼾能正确⼯作。使⽤适当的平台、浏览器和测试脚本,以保证⽬标⽤⼾的体验将⾜够好,就像应⽤程序是专⻔为该市场开发的⼀样。功能测试是为了确保程序以期望的⽅式运⾏⽽按功能要求对软件进⾏的测试,通过对⼀个系统的所有的特性和功能都进⾏测试确保符合需求和规范。
如何进⾏功能测试?
设计功能测试⽤例,参考产品规格说明书进⾏⽤例的编写,具体的测试⽤例需要使⽤⿊盒设计测试⽤例的⽅法,如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。
性能测试
我们在使⽤软件的时候有时会碰到软件⽹⻚打开时越来越慢,查询数据时很⻓时间才显⽰列表,软件运⾏越来越慢等问题,这些问题都是系统的性能问题引起的。
可靠性测试
可靠性(Availability)即可⽤性,是指系统正常运⾏的能⼒或者程度,⼀般⽤正常向⽤⼾提供软件服务 的时间占总时间的百分⽐表⽰。
可靠性 = 正常运⾏时间/(正常运⾏时间+⾮正常运⾏时间)*100%
隔壁村有个⼈叫⽼王让⽼王请吃饭,要求了⼗次,但是他只请了⼀次,那么我们说⽼王的可靠性是10%,那么我们称⽼王这⼈不可靠
如果让⽼王请吃饭,要求了⼗次,每次他都请客了,可靠性是100%,那么⽼王是个可靠的⼈(纯纯⼤冤种~~)
系统⾮正常运⾏的时间可能是由于硬件,软件,⽹络故障或任何其他因素(如断电)造成的,这些因素 能让系统停⽌⼯作,或者连接中断不能被访问,或者性能急剧降低导致不能使⽤软件现有的服务等。
可⽤性指标⼀般要求达到4个或5个“9”,即99.99%或者99.999%如果可⽤性达到99.99%,对于⼀个全年不间断(7*24的⽅式)运⾏的系统,意味着全年(252600min)不能正常⼯作的时间只有52min,不到⼀个⼩时。如果可⽤性达到99.999%,意味着全年不能正常⼯作的时间只有5min。不同的应⽤系统,可⽤性的要求是不⼀样的,⾮实时性的信息系统或⼀般⽹站要求都很低,99%和99.5%就可以了,但是军事系统,要求则很⾼;
安全性测试
安全性是指信息安全,是指计算机系统或⽹络保护⽤⼾数据隐私,完整,保护数据正常传输和抵御⿊客,病毒攻击的能⼒。
安全性测试属于⾮功能性测试很重要的⼀个⽅⾯,系统常⻅的安全漏洞和威胁如下
• 输⼊域,如输⼊恶性或者带有病毒的脚本或⻓字符串;
• 代码中的安全性问题,如SQL/XML注⼊
• 不安全的数据存储或者传递
• 数据⽂件,邮件⽂件,系统配置⽂件等⾥⾯有危害系统的信息或者数据;
• 有问题的访问控制,权限分配等
• 假冒ID:⾝份欺骗
• 篡改,对数据的恶意修改,破坏数据的完整性
安全性测试的⽅法有代码评审,渗透测试,安全运维等,常⽤的静态安全测试⼯具有,Coverity,IBMAppscan Source,HPFortify,常⽤的动态安全测试有OWASP的ZAP,HP WebInspect等。其中静态安全测试是常⽤的安全性测试的⽅法。
易⽤性测试
许多产品都应⽤⼈体⼯程学的研究成果,是产品在使⽤起来更加灵活和,舒适。软件产品也始终关注⽤⼾体验,让⽤⼾获得舒适,易⽤的体验,针对软件这⽅⾯的测试称之为易⽤性测试。易⽤性在ISO25020标准中指容易发现,容易学习和容易使⽤。易⽤性包含七个要素:符合标准和规范,直观性,⼀致性,灵活性,舒适性,正确性和实⽤性。我们主要讨论以下⼏个⽅⾯1,标准性和规范性对于现有的软件运⾏平台,通常其UI标准已经不知不觉地被确⽴了,成为⼤家的共识。多数⽤⼾已经习惯并且接受了这些标准和规范,或者说已经认同了这些信息所代表的的含义。⽐如安装软件的界⾯的外观,在什么场合使⽤恰当的对话框等
所以⽤⼾界⾯上的各中信息应该符合规范和习惯,否则⽤⼾使⽤起来会不舒适,并得不到⽤⼾的认
可。测试⼈员需要把与标准规范,习惯不⼀致的问题报告为缺陷
2,直观性
⽤⼾界⾯的直观性,要求软件功能特性易懂,清晰。⽤⼾界⾯布局合理,对操作的响应在⽤⼾的预期之中。⽐如数据统计结果⽤报表的形式(条形图,扇形图等)展⽰清晰直观;现在主流的很多搜索引擎和⽇历的设计也有直观性的特点;
3,灵活性
软件可以有不同的选项以满⾜不同使⽤习惯的⽤⼾来完成相同的功能。但是灵活性的设计要把握好度,不然可能由于太多的⽤⼾状态和⽅式的选择,增加了软件设计的复杂性,和程序实现的难度。 例如⼿机键盘有九宫格和全键盘,还⽀持⼿写,满⾜了不同⽤⼾的需求
4,舒适性
舒适性主要强调界⾯友好,美观,操作过程顺畅,⾊彩⽤运恰当,按钮的⽴体感等。