软件测试 - 测试分类(静态测试、动态测试、白盒测试、黑盒测试、灰盒测试、单元测试、集成测试、系统测试、验收测试等)

一、为什么要对软件测试进⾏分类?

        软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度 加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试 的分类⽅法
        简单来说,很多测试的名称,需要了解每个测试是干什么的。

二、按照测试⽬标分类 

2.1 界面测试(UI测试)

界⾯测试(简称UI测试),指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则
对我们软件界面所展示的全部内容进⾏测试和检查
⼀般包括如下内容:
验证界⾯内容显⽰的完整性,⼀致性,准确性,友好性。⽐如界⾯内容对屏幕⼤⼩的⾃适应,换
⾏,内容是否全部清晰展⽰
验证整个界⾯布局和排版是否合理,不同板块字体的设计,图⽚的展⽰是否符合需求;
对界⾯不同控件的测试,⽐如,对话框,⽂本框,滚动条,选项按钮等是否可以正常使⽤,有效
和 ⽆效的状态是否设计合理;
界⾯的布局和⾊调符合当下时事的发展。(每个软件都有自己的风格和主色调,例如淘宝就是橙色、支付宝就是蓝色、美团就是黄色的)

界面自适应

例如:

正常情况的网页是这样

其他屏幕由于尺寸等原因,图片文字等被遮挡

对比设计图,界面有所差异也是bug

 例如原设计图

实际前端页面

有缺少的信息,或者图片大小比例不一致

2.2 功能测试

        根据产品特性、操作描述和⽤⼾⽅案,测试⼀个产品的特性和可操作⾏为以确定它们满⾜设计需求。

        为了确保程序以期望的⽅式运⾏⽽按功能要求对软件进⾏的测试,通过对⼀个系统的所有的特性和 功能都进⾏测试确保符合需求和规范
如何进⾏功能测试?
        设计功能测试⽤例,参考产品规格说明书进⾏⽤例的编写,具体的测试⽤例需要使⽤黑盒设计测试⽤例的⽅法,如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。
(黑盒测试:不关注程序内部代码逻辑,只关注功能最终测试结果。使用前面的设计测试用例的方法,就称之为黑盒测试用例方法。)

2.3 性能测试

        我们在使⽤软件的时候有时会碰到软件⽹⻚打开时越来越慢,查询数据时很⻓时间才显⽰列表,软件运⾏越来越慢等问题,这些问题都是系统的性能问题引起的。
例如从时间看,响应时间越短(毫秒内),性能越好

 2.3 可靠性测试

可靠性(Availability)即可⽤性,是指系统正常运⾏的能⼒或者程度,⼀般⽤正常向⽤⼾提供软件 服务 的时间占总时间的百分⽐表⽰。
可靠性 = 正常运⾏时间/(正常运⾏时间+⾮正常运⾏时间)*100%
例如:
让⽼王请吃饭,要求了⼗次,但是他只请了⼀次,那么我们说⽼王的可靠性是10%,那么我们称⽼ 王这⼈不可靠
可⽤性指标⼀般要求达到4个或5个“9”,即99.99%或者99.999%
        如果可⽤性达到 99.99% ,对于⼀个全年不间断(7*24的⽅式)运⾏的系统,意味着全年 正常工作时间约为525547min不能正常⼯作的时间只有53min,不到⼀个⼩时
        如果可⽤性达到 99.999% ,意味着全年不能正常⼯作的时间只有5min
        不同的应⽤系统,可⽤性的要求是不⼀样的,⾮实时性的信息系统或⼀般⽹站要求都很低,99%和 99.5%就可以了,但是军事系统,要求则很⾼;

 

2.4 安全性测试

        安全性是指信息安全,是指计算机系统或⽹络保护⽤⼾数据隐私,完整,保护数据正常传输和抵御 ⿊ 客,病毒攻击的能⼒。
        一般安全测试由专门的网络安全人员进行测试。网络安全人员将模拟黑客的攻击方式,对网站进行攻击分析,找安全漏洞,提交安全测试报告。
安全性测试属于⾮功能性测试很重要的⼀个⽅⾯,系统常⻅的安全漏洞和威胁如下
输⼊域,如输⼊恶性或者带有病毒的脚本或⻓字符串;
代码中的安全性问题,如SQL/XML注⼊
不安全的数据存储或者传递
数据⽂件,邮件⽂件,系统配置⽂件等⾥⾯有危害系统的信息或者数据;
有问题的访问控制,权限分配等
假冒ID:⾝份欺骗
篡改,对数据的恶意修改,破坏数据的完整性

 2.4.1 SQL注入

        sql注入本质上是在对数据库进行攻击。程序员对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。

例如万能的sql注入语句:

' or 1=1 --' or '1'='1" or 1=1 --

例如用户登录

        正常情况应该是在用户名的输入框中 输入用户id,然后数据库查询是否有这个用户,再进行下一步判断。

        但是这个用户故意输入 1'or'1=1

用户点击提交,发送请求后,后端会将1'or'1=1拼接到查询语句select * from user where userId ='用户id'这里面。

结果,将整个数据库的user表的数据返回了。这造成了严重的数据泄漏,非常危险

 2.4.1 XSS攻击

XSS攻击(Cross Site Scripting)中文名称为:跨站脚本攻击 

        XSS的重点不在于跨站点,而在于脚本的执行

        XSS的原理是:
        恶意攻击者在web页面中会

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值