不知道测试什么?这些是你需要知道的软件测试类型和常识(全网最前面的资料!!!)【四】

26) 集成测试(Integration Testing)

集成测试是指将所有模块集成之后,验证合并后的功能. 模块通常是代码模块、单个应用、网络上的客户端和服务器应用等等。

 

 

 

集成测试一般在单元测试之后,所以单元测试是集成测试的基础,没有进行单元测试的集成测试是不靠谱的。所以最简单的形式是:'把两个已经测试过的单元组合成一个组件,测试它们之间的接口'。也就是说集成测试在单元测试的基础之上,将单元测试中独立的单元合并起来,验证它们的协调性, 合并后的组件又是一个新的‘单元’,这样逐步合并测试,最终形成完整的应用程序

这种类型的测试常用于B/S软件和分布式系统。

 

27) 负载测试(Load Testing)

它是一种非功能性测试,负载测试的目的是检查系统可以承受多少负载而不会降低性能, 或者说确定最大工作负载是多少。

负载测试有助于查找特定负载下系统的最大容量以及导致软件性能下降的任何原因。可以使用JMeter,LoadRunner,WebLoad,Silk执行程序等工具执行负载测试。

 

 

 

负载测试经常和性能测试、压力测试、稳定性测试等联系在一起。如上图(来源于淘宝性能白皮书). 其中TPS(Transation Per Second)指的是每秒钟系统可以处理的交易或事务的数量; Server Resource指的是系统资源占有.

  • 性能测试. 主要位于a-b之间. 在系统设计初期就会规划一个预期目标, 比如给定资源Ax,a点就是性能期望值。也就是说在给定固定资源Ax的情况下,如果TPS可以达到a点甚至更高,就说明系统性能达到或者好于预期. 通过性能测试可以验证系统的处理能力有没有达到预期
  • 负载测试. 位于b-c之间。对系统不断增加并发请求,直到系统的某项或者多项指标达到安全的临界值,如上图中的c,这个c就是所谓的最大负载量。后面再增加请求压力,系统的处理能力不但不能提高,返回会下降. 通过压力测试可以得出系统最大的安全负载值
  • 压力测试. 位于c-d之间。在超过安全负载的情况下,继续对系统增加压力,直到达到崩溃点, 即上图的d. 通过压力测试可以得出系统的最大承受能力
  • 稳定性测试. 位于a-d之间。在a、b、c、d不同的点(代表特定的硬件、软件和网络环境),让系统运行一段较长的时间,检测系统在不同条件下的系统运行的稳定性

另外也推荐阅读<<大型网站技术架构>>这本书

 

28) 猴子测试(Monkey Testing)

 

 

 

猴子测试是由测试人员进行的,即把自己当成猴子,在没有任何知识背景或者理解应用前提下,随意输入和操作。

猴子测试的目标是通过提供随机输入值/数据来检查应用程序或系统是否崩溃。 猴子是随机执行的,没有测试用例, 也没有必要了解系统的全部功能

 

29) 变异测试(Mutation Testing)

变异测试(或者说可变性测试)是一种白盒测试,这是一种和单元测试反着来的测试类型。

 

 

 

通常单元测试的思路是通过测试用例来验证代码是否有效可靠,而变异测试是反过来. 它首先更改其中一个程序的源代码,再跑单元测试,如果单元测试通过则可能说明测试用例没有效果,或者测试用例没有覆盖到这处代码变异.

所以说变异测试可以反过来验证你的测试用例是否有效, 还有可以帮助我们找出一些无法被当前测试所防止的潜在错误.

 

30) 悲观测试(Negative Testing)

悲观测试和乐观路线测试相反, 它要求测试者要具有“打破”常规的态度,考虑各种异常情况, 使用各种邪恶的👿、不怀好意、不合法的操作来测试系统。悲观测试会使用不正确的数据、无效数据或输入来进行验证。它验证系统是否可以识别异常情况,并按预期运行。

 

31) 非功能测试(Non-Functional Testing)

每个大型的组织都有一个独立的团队,通常称为非功能测试(NFT)团队或性能团队。

非功能性测试涉及测试非功能性需求,如负载测试、压力测试、安全性、容量,恢复测试等等. NFT测试的目标是确保软件或应用程序的响应时间是否满足业务需求。

例如加载任何页面或系统都不应该花费太多时间,并且在负载峰值期间应该维持良好运行状态。

 

32) 性能测试(Performance Testing)

这个术语通常与“压力”和“负载”测试互换使用。性能测试用于检查系统是否满足性能要求。它会使用不同的性能和负载工具来执行此测试。

性能测试这个范围比较大,广义上的性能测试包括了上文提到的负载测试、压力测试、稳定性测试、容量测试等等。狭义的性能测试则是指在特定资源条件下,测试系统能否达到期望值, 也就是基线测试(Baseline Test).

总结一下性能测试的类型:

  • 基线测试(Baseline Test): 在给定的资源下,测试最佳的性能,用作后续测量的参考‘基线’。注意基线测试和基准测试是有区别的, 这么理解,基准是你想达到的,比如100短跑世界纪录,基线是你的成绩。
  • 负载测试(Load Test): 在预期峰值的生产负载下测量系统的性能。上文负载测试已经大概介绍了
  • 稳定性测试(Endurance Test): 在指定负载下,长时间测量系统的稳定性
  • 压力测试(Stress Test): 测试极端条件下的系统性能

 

33) 恢复测试(Recovery Testing)

恢复测试用于验证应用或系统中崩溃或灾难中恢复的程度. 确定系统是否能够在灾难发生后继续运行。

比如应用通过网络电缆接收数据,突然断开了网络电缆的连接, 过一段时间,再插上网线, 系统应该开始恢复由于网络电缆拔出而丢失连接的数据

 

34) 回归测试(Regression Testing)

在修改任意模块或者功能后,将应用作为一个整体进行测试,称为回归测试。回归测试的目的就是验证在软件原有的功能变动后是否保持完整性.

 

 

 

有观点认为回归测试就是回归测试是指重复执行以前的全部或部分相同的测试工作, 其实不是不无道理。而且因为局部修改而牵一发动全身的意外在平时开发中并不少见,这种意外性就是回归测试的存在的目的.

因为在回归测试中很难覆盖所有系统,通常最好使用自动化测试工具进行这些类测试。比如每次修改完代码,跑单元测试来确保不影响确保其他软件单元。

在前端中组件快照测试(Snapshot Testing)和一些CSS UI测试,都是属于回归测试类型,它们的原理都是和上一次测试生成的结果进行比对,以确保没有意外的修改:

 

 

 

 

35) 基于风险的测试(Risk-Based Testing (RBT))

在基于风险的测试中,功能或需求将根据其优先级进行测试。基于风险的测试会优先测试高度关键的功能,因为这些功能对业务影响最大或者故障概率非常高. 而优先级由业务需求决定,因此一旦为所有功能设置了优先级,则应该首先执行高优先级功能或测试用例,然后再执行低优先级功能。 低优先级功能可以在时间充裕时测试,或者不测试。

基于风险的测试应该在‘不够时间来测试整个应用,但是又要按时交付软件’的情况下执行,通常还需要客户和高级管理层的讨论和批准之后才进行

最后

俺叫小枫,一个成天想着一夜暴富的测试员

(1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

点赞关注不迷路!!!【三连ღ】,有问题也可私聊哟~(*╹▽╹*)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值