常见的二十种软件测试方法详解(史上最全)零基础入门到精通,收藏这篇就够了

一.单元测试(模块测试)

单元测试是对软件组成单元进行测试。其目的是检验软件组成单位的正确性。测试对象是:模块。

对模块进行测试,单独的一个模块测试,属于静态测试的一类

  • 测试阶段:编码后或者编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师(测源码)
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试(因为要测源码)
  • 测试内容:模块接口测试(测试模块里面的参数传递是否正确)、局部数据结构测试(测试变量的作用域范围)、路径测试(if-else 判断必须覆盖所有分支)、错误处理测试、边界测试( for 循环)
二.集成测试

集成测试也称联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口(白盒测试)以及集成后的功能(黑盒测试进行正确性检测的一种测试。集成主要目的是检查软件单位之间的接口是否正确。

  • 测试阶段:一般单元测试之后进行
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
三.系统测试

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师(对功能测试)
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
  • 回归测试(Regression Testing)
四.回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

有了代码修改后就进行回归测试,根据测试阶段确定回归范围。

在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

五.冒烟测试

这一术语源自硬件行业。
对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。也可以理解为该种测试耗时短,仅用一袋烟功夫足够了。

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

概念:对核心主干流程进行测试,如果成功,就认为成功
作用:判断是否接受测试的标准,若核心主干都走不通,那么直接打下去

六.验收测试

买到新手机,一般会有7天包退,一个月包换,我们会尽量在7天内把手机的所有功能都试一遍。

验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

  • 测试阶段:系统测试通过之后
  • 测试对象:整个系统(包括软硬件)。
  • 测试人员:主要是最终用户或者需求方。
  • 测试依据:用户需求、验收标准
  • 测试方法:黑盒测试(对功能进行测试)
  • 测试内容:同系统测试(功能…各类文档等)
七.静态测试(不运行程序本身,测试文档)

静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。‘对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。

八.动态测试

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。大多数软件测试工作都属于动态测试。

九.手工测试

就是由人去一个一个的输入测试用例,然后观察结果,和机器测试相对应,属于比较原始但是不可缺少的一个步骤。

总结优缺点:
(1)优点:自动化无法替代探索性测试、发散思维结果的测试。
(2)缺点:执行效率慢,量大易错。

十.自动化测试

就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

自动化实施步骤:
1.完成功能测试,版本基本稳定
2.根据项目特性,选择适合项目的自动化工具,并搭建环境
3.提取手工测试的测试用例转化为自动化测试的用例
4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
5.生成自动测试报告
6.持续改进,脚本优化。

十一.业务测试

业务测试是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。

例如查看邮件:
登录网站-输入用户名、密码登录-进入收件箱-查到邮件-点击打开-查阅-关闭邮件-退出邮箱-关闭网站
业务测试关注需求和用户
所有业务流程进行测试,包过主干流程,分支流程,甚至更小的流程
测不同的业务,必须对项目的需求特别了解

十二.界面测试

界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。

十三.文档测试

在这里插入图片描述

十四.兼容性测试

大家经常上网,同一网站在不同的浏览器上表现不一样

WEB测试 ;APP测试

兼容性主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。

  • 平台测试
  • 浏览器测试
  • 软件本身能否向前或者向后兼容
  • 测试软件能否与其它相关的软件兼容
  • 数据兼容性测试

最常见的就是浏览器的兼容性测试,不同浏览器在css,js解析上的不同会导致页面的显示不同。

十五.易用性测试

易用性(Useability)是交互的适应性、功能性和有效性的集中体现。

手机拔打电话功能不放在首页,放在一个目录下边,点击三四次才可以找到拔打电话功能,这个功能好用吗?

十六.性能测试

检查系统是否满足需求规格说明书中规定的性能。

通常表现在以下几个方面:

  • 对资源利用(如内存、处理机周期等)进行的精确度量
  • 对执行间隔
  • 日志事件(如中断,报错)
  • 响应时间
  • 吞吐量(TPS)
  • 辅助存储区(例如缓冲区、工作区的大小等)
  • 处理精度等进行的监测
十七.易用性测试

易用性(Useability)是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。

手机拔打电话功能不放在首页,放在一个目录下边,点击三四次才可以找到拔打电话功能,这个功能好用吗?

在某些大厂会有专门的部门来进行易用性测试,又叫用户体验测试。

十八. 安装测试

测试程序的安装、卸载
典型的是app的安装、卸载

十九.安全测试

安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议
TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如
SQL注入、Xss等。
作为web入门测试,可以IBM的appscan。

二十.内存泄漏测试

电脑打开的东西太多,机器反应慢甚至死机,重启之后就好了,过会同样的问题出现

很多软件系统都存在内存泄露的问题,尤其是缺乏自动垃圾回收机制的“非托管”语言 编写的程序,例如C、CH、Delphi等。从用户使用的角度来看,内存泄露本身不会造成什 么危害,一般用户可能根本不会感觉到内存泄露的存在。但是内存泄露是会累积的,只要执 行的次数足够多,最终会耗尽所有可用内存,使软件的执行越来越慢,最后停止响应。可以 把这种软件的问题比喻成软件的“慢性病”。

造成内存泄露的原因有很多,最常见的有以下几种。

1.分配完内存之后忘了回收。
2.程序写法有问题,造成没办法回收。
3.某些API函数的使用不正确,造成内存泄露。
4.没有及时释放。

内存泄漏的检测:
1、对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题检查机制.要确保程序员在编写程序和编译程序的时候打开这些功能。
2、通过代码扫描分析工具来检查

计算机就业前景

网络安全行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
在这里插入图片描述

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

01 内容涵盖
  1. 网络安全意识
  2. Linux操作系统详解
  3. WEB架构基础与HTTP协议
  4. 网络数据包分析
  5. PHP基础知识讲解
  6. Python编程基础
  7. Web安全基础
  8. Web渗透测试
  9. 常见渗透测试工具详解
  10. 渗透测试案例分析
  11. 渗透测试实战技巧
  12. 代码审计基础
  13. 木马免杀与WAF绕过
  14. 攻防对战实战
  15. CTF基础知识与常用工具
  16. CTF之MISC实战讲解
  17. 区块链安全
  18. 无线安全
  19. 等级保护

图片

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

请添加图片描述

02 知识库价值
  • 深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案
  • 广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南
  • 实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
03 谁需要掌握本知识库
  • 负责企业整体安全策略与建设的 CISO/安全总监
  • 从事渗透测试、红队行动的 安全研究员/渗透测试工程师
  • 负责安全监控、威胁分析、应急响应的 蓝队工程师/SOC分析师
  • 设计开发安全产品、自动化工具的 安全开发工程师
  • 对网络攻防技术有浓厚兴趣的 高校信息安全专业师生
04 部分核心内容展示

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

图片

2、Linux操作系统

图片

3、WEB架构基础与HTTP协议

图片

4、Web渗透测试

图片

5、渗透测试案例分享

图片

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

请添加图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值