• 0
  • 1
分享
  • 常见的二十种软件测试方法详解——软件测试圈
  • quinn 2022-12-02 15:53:39 字数 3545 阅读 3013 收藏 1

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

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

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

测试阶段:编码后或者编码前(TDD);

测试对象:最小模块;

测试人员:白盒测试工程师或开发工程师(测源码);

测试依据:代码和注释+详细设计文档;

测试方法:白盒测试(因为要测源码);

测试内容:模块接口测试(测试模块里面的参数传递是否正确)、局部数据结构测试(测试变量的作用域范围)、路径测试(if-else 判断必须覆盖所有分支)、错误处理测试、边界测试( for 循环)。

二、集成测试

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

测试阶段:一般单元测试之后进行;

测试对象:模块间的接口;

测试人员:白盒测试工程师或开发工程师;

测试依据:单元测试的模块+概要设计文档;

测试方法:黑盒测试与白盒测试相结合;

测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

三、系统测试

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

测试阶段:集成测试通过之后

测试对象:整个系统(软、硬件)

测试人员:黑盒测试工程师(对功能测试)

测试依据:需求规格说明文档

测试方法:黑盒测试

测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试(Regression Testing)

四、回归测试

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

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

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

五、冒烟测试

这一术语源自硬件行业。

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

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

概念:对核心主干流程进行测试,如果成功,就认为成功

作用:判断是否接受测试的标准,若核心主干都走不通,那么直接打下去

六、验收测试

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

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

测试阶段:系统测试通过之后

测试对象:整个系统(包括软硬件)。

测试人员:主要是最终用户或者需求方。

测试依据:用户需求、验收标准

测试方法:黑盒测试(对功能进行测试)

测试内容:同系统测试(功能…各类文档等)

七、静态测试(不运行程序本身,测试文档)

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

八、动态测试

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

九、手工测试

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

总结优缺点:

(1)优点:自动化无法替代探索性测试、发散思维结果的测试。

(2)缺点:执行效率慢,量大易错。

十、自动化测试

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

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

自动化实施步骤:

1.完成功能测试,版本基本稳定

2.根据项目特性,选择适合项目的自动化工具,并搭建环境

3.提取手工测试的测试用例转化为自动化测试的用例

4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期

5.生成自动测试报告

6.持续改进,脚本优化。

十一、业务测试

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

例如查看邮件:

登录网站-输入用户名、密码登录-进入收件箱-查到邮件-点击打开-查阅-关闭邮件-退出邮箱-关闭网站

业务测试关注需求和用户

所有业务流程进行测试,包过主干流程,分支流程,甚至更小的流程

测不同的业务,必须对项目的需求特别了解

十二、界面测试

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

十三、文档测试

验证文档的术语、正确性、完整性、一致性和易用性。

十四、兼容性测试

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

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

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

十五、易用性测试

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

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

十六、性能测试

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

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

对资源利用(如内存、处理机周期等)进行的精确度量、对执行间隔、日志事件(如中断,报错)、响应时间、

吞吐量(TPS)、辅助存储区(例如缓冲区、工作区的大小等)、处理精度等进行的监测。

十七、 安装测试

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

十八、安全测试

安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议

TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如

SQL注入、Xss等。作为web入门测试,可以IBM的appscan。

十九、内存泄漏测试

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

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

1.分配完内存之后忘了回收。

2.程序写法有问题,造成没办法回收。

3.某些API函数的使用不正确,造成内存泄露。

4.没有及时释放。

二十、接口测试

接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。针对软件接口的分类一般有如下几种情况:

1)系统与系统之间的调用,如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;

2)同一系统内部上层服务对下层服务的调用,如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。

其以保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:

(1)能够提早发现 bug,符合质量控制前移的理念。

(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。

(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑。


作者:十二说软件测试

原文链接:https://blog.csdn.net/qq_22964783/article/details/126557838

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • WebSocket 的重要性Websocket 是一种新型的协议,它允许客户端和服务器之间建立实时的双向通信通道。相比于 HTTP 协议来说,它具有以下优点:实时性: Websocket支持服务器主动向客户端推送消息,使得客户端能够实时接收到服务器的事件和数据变化。双向性: Websocket支持全双工通信,即客户端和服务器可以同时发送和接收数据。节约资源: 相比于轮询机制,Websocket只需要建立一次连接即可实现实时通信,这样可以减少服务器的压力和网络流量。兼容性: Websocket 协议能够支持所有主流的浏览器和移动设备。Websoc...
            0 0 2113
            分享
          •   摘要:当前国内企业的数字化转型正如火如荼的进行着,而随着各类软件应用在性能、功能、安全性等重要维度的要求越来越高,业界也对软件测试行业提出了新的挑战。  以兼容测试为例,传统的兼容测试因整体的测试管理较为陈旧,导致了测试流程规范性弱、测试工作效率低、人力成本高等种种问题,从而阻碍了测试需求单位的数字化转型步伐,还会因软件应用质量的问题给企业带来软件体验不佳、用户数量下降、行业排名下滑等严重后果。  Testin云测试专注于软件测试行业十数年,拥有丰富的测试行业经验,在业界率先把最新的AI技术广泛运用于兼容测试,为广大客户打造出数字化时代的一站式兼容测试服务,引领智能测试时代的技术风向。  ...
            0 0 1353
            分享
          •   任何新的职位刚开始的时候都是大家的技术参差不齐,只要能干,肯动脑,会计算机就可以在行业里找个饭吃,具体混成什么样,看本事吧。  随着现代科技的发展,软件测试行业要求越来越高,企业对于人员的需求比以前越来越专业,要懂什么技术,编程语言肯定是要会的,性能、安全、自动化甚至有的还要求测开等等。你也别觉得烦,这是事实。  总结的软件测试工程师发展规划路线,希望会给你带来灵感和方向:  ·测试基础,了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维;  ·Linux必备知识,Linux作为现在最流行的软件环境系统,一定要掌握,目前的招聘要求有Linux能力;  ·Shell脚本...
            0 0 1634
            分享
          •        从前是学经济贸易的,由于对测试行业的强烈兴趣,毕业后在北京新科海学校学习软件测试工程专业。工作不到一年的时间里,她已经从测试员升职到测试主管了。对于学习、工作,她积累了许多点点滴滴的经验,愿意与大家分享。       走入测试行业:兴趣、知识       说实话,我做测试工作的时间不是很长,学完软件测试工程师的课程后,到现在也就是一年多的时间吧,不过,我愿意自己学习和工作中积累起的这些点滴与大家分享。       我走入测...
            0 0 1400
            分享
          •   摘要:黑盒测试仅关注输入和输出,将程序看成一个黑盒子。在不遗漏需求的情况下,打开这个黑盒子,从代码实现的角度进行分析,可以更好的理解测试用例,帮助我们完善测试用例设计,更好地提升测试效果。  本文从一元多项式的加法和乘法运算程序进行系统阐述,以期阐明作者思路。  程序功能描述:设计程序分别求两个一元多项式的乘积与和。  (1)Input :输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数,数字间以空格分隔  (2)Output:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。零多项式应输出 0,0  (3)举例:  执...
            12 12 1303
            分享
      • 51testing软件测试圈微信