【软件测试】界面、功能、性能、可靠性、安全性(SQL注入、越权)、易用性测试,静态和动态测试
- 在工作中,会有各种各样的测试称呼,得有一个基础的认识
- 测试不是单一维度的,而是涉及到多维度
为什么要对软件测试进行分类
软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试的分类⽅法
按照测试目标分类
界面测试
只要是肉眼可以看到的元素,都是需要去测试的
界⾯测试(简称 UI
测试),指按照界⾯的需求(⼀般是 UI
设计稿)和界⾯的设计规则,对我们软件界
⾯所展⽰的全部内容进⾏测试和检查,⼀般包括如下内容:
- 验证界⾯内容显⽰的完整性,⼀致性,准确性,友好性。⽐如界⾯内容对屏幕⼤⼩的⾃适应,换⾏,内容是否全部清晰展⽰;
- 验证整个界⾯布局和排版是否合理,不同板块字体的设计,图⽚的展⽰是否符合需求;
- 对界⾯不同控件的测试,⽐如,对话框,⽂本框,滚动条,选项按钮等是否可以正常使⽤,有效果
- ⽆效的状态是否设计合理;
- 界⾯的布局和⾊调符合当下时事的发展。
找茬~ 请你根据给定的设计图找出实现的⻚⾯有哪些界⾯问题
- “百度一下”变成了“百度”
- “文库”变成了“大库”
这些都是界面 bug
功能测试
功能测试就是对产品的各功能进⾏验证,根据功能测试⽤例,逐项测试,检查产品是否达到⽤⼾要求的功能。
根据产品特性、操作描述和⽤⼾⽅案,测试⼀个产品的特性和可操作⾏为以确定它们满⾜设计需求。本地化软件的功能测试,⽤于验证应⽤程序或⽹站对⽬标⽤⼾能正确⼯作。使⽤适当的平台、浏览器和测试脚本,以保证⽬标⽤⼾的体验将⾜够好,就像应⽤程序是专⻔为该市场开发的⼀样。功能测试是为了确保程序以期望的⽅式运⾏⽽按功能要求对软件进⾏的测试,通过对⼀个系统的所有的特性和功能都进⾏测试确保符合需求和规范。
设计功能测试⽤例,参考产品规格说明书进⾏⽤例的编写,具体的测试⽤例需要使⽤⿊盒设计测试⽤例的⽅法,如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。
前面说到的设计测试用例的方法,并不会关注到程序内部代码逻辑,因此前面的设计测试用例的方法也被称为黑盒测试设计测试用例的方法
性能测试
我们在使用软件的时候有时会碰到软件网页打开时越来越慢,查询数据很长时间才显示列表,软件运行越来越慢等问题,这些问题都是系统的性能问题引起的
要进⾏软件产品的性能问题,要对产品的性能需求进⾏分析,然后基于系统的性能需求和系统架构,完成性能测试的设计和执⾏,最后要进⾏持续的性能调优。
可靠性测试
- 让⽼王请吃饭,要求了⼗次,但是他只请了⼀次,那么我们说⽼王的可靠性是
10%
,那么我们称⽼王这⼈不可靠- 如果让⽼王请吃饭,要求了⼗次,每次他都请客了,可靠性是
100%
,那么⽼王是个可靠的⼈
可靠性=正常运行时间/(正常运行时间+非正常运行时间)*100%
企业中,一般软件产品/程序的可用性要求要达到 4 个 9 (99.99%)或者 5 个 9(99.999%)
安全性测试
安全性测试属于⾮功能性测试很重要的⼀个⽅⾯,系统常⻅的安全漏洞和威胁如下
- 输⼊域,如输⼊恶性或者带有病毒的脚本或⻓字符串;
- 代码中的安全性问题,如
SQL/XML
注⼊ - 不安全的数据存储或者传递
- 数据⽂件,邮件⽂件,系统配置⽂件等⾥⾯有危害系统的信息或者数据;
- 有问题的访问控制,权限分配等
- 假冒ID:⾝份欺骗
- 篡改,对数据的恶意修改,破坏数据的完整性
SQL 注入
- 用户原本要输入的是正确的
userId
,但是在用户恶意攻击下,输入的 use
rId 为1 or 1=1
- 若服务器在处理的时候直接拼接在
SQL
后面,则会造成SQL
注入的情况
越权
分为垂直越权水平越权,超过了当前用户的权限
- 垂直越权:普通用户登录后可以看到管理员才能看到的页面,可以操作管理员才能操作的功能
- 水平越权:可以看到同级其他员工的信息
代码评审:写完代码之后,让其他人/领导检查代码
易用性测试
-
标准性和规范性
对于现有的软件运⾏平台,通常其 UI 标准已经不知不觉地被确⽴了,成为⼤家的共识。多数⽤⼾已经习惯并且接受了这些标准和规范,或者说已经认同了这些信息所代表的的含义。⽐如安装软件的界⾯的外观,在什么场合使⽤恰当的对话框等 -
直观性
能够让用户一看到这个功能就知道怎么用。比如抖音,打开后就会教你上滑下滑来使用,很快就能教会你 -
灵活性
软件可以有不同的选项以满⾜不同使⽤习惯的⽤⼾来完成相同的功能。但是灵活性的设计要把握好度, -
舒适性
按照执行方式分类
分为静态测试和动态测试:
- 静态测试:不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
- 实际运⾏被测程序,输⼊相应的测试数据,检查实际输出结果和预期结果是否相符的过程
所以判断⼀个测试属于动态测试还是静态的,唯⼀的标准就是看是否运⾏程序。⼤多数软件测试⼯作都属于动态测试
SonarQube
是很多企业都在用的静态扫描工具。检查代码本身有没有问题,规不规范(语法问题、变量命名、函数命名、输入输出发那个发、内存泄漏…)
原文地址:https://blog.csdn.net/Yeeear/article/details/143733895
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!