技术分享 | 做为测试,那些必须掌握的测试技术体系

news2024/11/28 2:34:34

软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。其目的是尽快尽早地发现在软件产品中所存在的各种问题,与用户需求、预先定义的不一致性。检查软件产品中可能存在的 Bug,并且编写缺陷报告,交于开发人员修改。软件测试人员的基本目标是发现软件中的错误。

软件测试技术就相当于是软件测试人员的武器。作为软件测试人员,必须要清楚了解可以通过哪些手段去保障产品的质量。只有知道了这些,才能更好的完成测试的工作。

软件测试分类

软件测试的分类可以按照不同的维度去划分,一般来说可以按照下面的这些维度去划分。

按开发阶段分类

  • 单元测试
  • 集成测试
  • 冒烟测试
  • 系统测试
  • 验收测试

按测试实施组织分类

  • α 测试:非正式验收测试
  • β 测试:内测后的公测

按测试执行方式分类

  • 静态测试:不启动被测对象的测试,比如代码走读,代码评审,文档评审,需求评审等。
  • 动态测试:启动被测试对象的测试,比如白盒测试,黑盒测试等。

按是否查看代码分类

  • 黑盒测试:指的是把被测的软件看作是一个黑盒子,不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。
  • 白盒测试:指的是把盒子盖子打开,去研究里面的源代码和程序结果。

按是否手工执行分类

  • 手工测试:由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。通常用于黑盒测试方法或系统测试阶段。
  • 自动化测试:把以人为驱动的测试行为转化为机器执行的一种过程。

按测试对象分类

  • 性能测试:检查系统是否满足需求规格说明书中规定的性能。
  • 安全测试:各种的攻击手段,例如 SQL 注入、XSS 等。
  • 兼容性测试:软件和硬件之间是否能够发挥很好的效率工作,会不会影响导致系统的崩溃。
  • 文档测试:测试软件产品中的各类文档。
  • 易用性测试:用户体验测试。
  • 业务测试:测试人员将系统的各个模块串接起来运行、模拟真实用户实际的工作流程,满足永续需求定义的功能进行测试的过程。
  • 界面测试:也称为 UI 测试。测试用户界面的功能模块的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的使用习惯,还要测试操作界面操作便捷性、导航简单易懂性、页面元素的可用性,页面元素的可用性、界面中文字是否正确,命名是否统一,页面是否美观、文字、图片组合是否完美。
  • 安装测试:测试程序的安装、卸载。

其他分类

  • 回归测试:修改了旧代码后,重新执行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
  • 随机测试:指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
  • 探索性测试:试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

黑盒测试

黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。

采用这种测试方法,测试工程师把测试对象看作一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求文档,检查程序的功能是否符合它的功能说明。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。

黑盒测试方法能更好、更真实地从用户角度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及验收测试等阶段中,黑盒测试都发挥着重要作用,尤其在系统测试和确认测试中,其作用是其他测试方法无法取代的。

白盒测试

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒法可以全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

白盒测试常用的方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。

分层测试体系

image1080×582 31.5 KB

其中 Unit 代表单元测试,API 代表接口测试,UI 代表页面级的系统测试。分层的自动化测试倡导产品的不同层次都需要自动化测试,这个金字塔也正表示不同层次需要投入的精力和工作量。对于测试金字塔,越靠下越容易自动化,越靠下成本越低,越靠下效率越高。

分层测试顾名思义就是分多个层次一个层次一个层次的测试,比如先测完中间接口层,再测最上层的界面。当然了,也可以同时测试。

分层测试的测试方法还是原来的测试方法,但对测试人员的代码能力还有自动化测试水平有较高要求,同时要求测试人员和开发团队真正的理解敏捷开发和敏捷测试,甚至要求开发团队达到开发即测试、测试即开发的能力。

单元测试

对软件中的最小可测试单元进行检查和验证。具体的说就是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

接口测试

接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。

接口测试可以更早介入,介入越早越能更早的发现问题,还可以缩短项目周期,能够发现更底层的 Bug,减少开发成本。

因为不同端(前端,后端)的工作进度不一样,所以要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,QQ 等)一些接口进行接口测试及验证数据,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

UI 测试

UI 测试测的是应用中的用户界面是否如预期工作。比如,用户的输入需要触发正确的动作,数据需要能展示给用户看,UI 的状态需要发生正确变化等。

对于 UI 测试,可以采用静态测试方法,也可以采用动态测试方法。

对于用户界面的布局,风格,字体,图片等与显示相关的部分测试应该采用静态测试,比如点检表测试,即将测试必须通过的项用点检表一条一条列举出,然后通过观察确保每项是否通过。

对用户界面中各个类别的控件应该采用动态测试,即编写测试用例或者点检表,对每个按钮的响应情况进行测试,是否符合概要设计所规定的条件,还可以对用户界面在不同环境下的显示情况进行测试。

UI 测试需要关注的内容包括通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览。各种访问方法 (Tab 键、鼠标移动和快捷键)是否支持。还有窗口的对象和特征,比如菜单、大小、位置、状态和中心等都符合标准。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Revit 中柱子附着屋顶小技巧和“柱断墙梁”方法

一、Revit 中柱子附着屋顶小技巧 Revit 中如何正确的使柱子附着于屋顶? 有的朋友绘制完结构柱后想要附着到屋顶上,这时候大家会选择把柱子顶部拉上去或者选择“附着顶部/底部”命令。但是这样会出现如图 1所示情况 此时柱子并未与屋顶完全相交,这时候有…

seata分布式事务AT模式原理解析

文章目录TC相关的表解析AT 模式如何做到对业务的无侵入写隔离读隔离AT模式特点TC相关的表解析 global_table:全局事务表,每当有一个全局事务发起后,就会在该表中记录全局事务的ID。branch_table:分支事务表,记录每一个…

一个简单实用的 JavaScript 日历控件源代码,不依赖第三方库,支持日期、月份、年份视图切换;支持单选、多选、范围和星期选

一个简单实用的 JavaScript 日历控件!原生 JavaScript 编写,不依赖任何第三方库。支持日期、月份和年份试图切换;支持单选、多选、范围和星期选择模式;界面简介、配置简单、使用方便! 完整代码下载地址:一个…

java计算机毕业设计ssm招聘信息管理平台9kvyw(附源码、数据库)

java计算机毕业设计ssm招聘信息管理平台9kvyw(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

终于有P8大佬把困扰我多年的《计算机网络原理》全部讲明白了

前言 为什么网络协议这么重要呢?集群规模一大,我们首先想到的就是网络互通的问题;应用吞吐量压不上去,我们首先想到的也是网络互通的问题。所以,要成为技术牛人,搞定大系统,一定要过网络这一关&…

投影仪可以当电视看吗?告诉你好用的电视应用市场,建议收藏

当初在买投影仪和买电视中纠结了很久,最终选择了投影仪,现在又想看电视了……但是又不想再买个电视,那么问题来了,投影仪可以当电视用吗?经过本人一番研究,终于找到投影仪看电视的最简单方法:安…

Go C 编程 第3课 魔法自动机

慧通教育 慧通教育 30.画奔驰车标志(魔法学院第3课) 难度:1 登录 31.画拱型(魔法学院第3课) 难度:1 登录 32.画正三角形(魔法学院第3课) 难度:1 登录 33.画棱形(魔法学院第3课) 难度:1 登录 魔法学院的奇幻之旅:…

「安全狗漏洞通告」Fortinet SSL VPN远程代码执行漏洞解决方案

安全狗应急响应中心监测到,Fortinet发布了FortiOS SSL-VPN的风险通告,漏洞等级:高危,漏洞评分:9.3。漏洞编号:CVE-2022-42475。 安全狗应急响应中心建议广大用户做好资产自查以及预防工作,以免遭…

理解DDR Part 1

DDR x4 x8 x16 x4 x8 x16 指的上图黑色的chip输出的位宽,正常的DDR bus width 需要64bit,所以 chip width x4 x8 x16 黑色chip数量 16 8 4 上图是最常见的x8,也就有8个黑色的chip颗粒。x16的性能和x8的性能相比怎么样呢? 更差&…

html悬浮事件(表格th)

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <h4>一行三列:</h4> <table border"1"> <tbody class"fileLi…

UE5笔记【十三】蓝图系统-血量控制系统

上一篇我们讲解了&#xff0c;蓝图中的函数功能。可以将蓝图中重复的代码&#xff0c;再次利用。演示了Smasher的效果。 这一篇中&#xff0c;我们讲解Smasher造成伤害之后&#xff0c;如何保存和计算角色的血量状态。 我们的设计思路是&#xff1a;smasher每次碰到角色是&am…

GCSE英语语言考试-角色定位

What is characterisation? 什么是角色定位&#xff1f; Characterisation is the way writers create characters and make them believable. When writing about texts, it is easy to treat characters as real people. Try to remember that the author is creating chara…

大数据 finalshell免密登录

私有云 查看私有云创建的虚拟机 本机用FinalShell连接三个虚拟机 使用浮动IP地址创建连接 设置主机名 maser虚拟机 slave1虚拟机 slave2虚拟机 IP地址与主机名映射 master虚拟机 slave1虚拟机 slave2虚拟机 ##关闭防火墙 关闭防火墙&#xff1a;systemctl stop f…

LeaRun.net代码生成器 一键生成前后端代码

自动代码生成是指根据自然语言的功能描述来生成代码。在项目开发过程中&#xff0c;有很多业务模块的代码是具有一定规律性的&#xff0c;例如controller控制器、service接口、service实现类、mapper接口、model实体类等等&#xff0c;这部分代码可以使用代码生成器生成&#x…

一种通过刷写替换boot的方法

写在前面的废话 众所周知,ECU软件包括BOOT和APP两部分,一般来说,boot是固化的软件,改动可能性很小,一般用来更新APP,但是,如果有一天boot真的需要更新呢,而且是大批量的更新,真的需要一个个的开盖烧录吗,有没有一种便捷的方式去实现boot的替换呢?下面提供一种boot替…

手把手教你使用SpringBoot做一个员工管理系统【配置篇】

手把手教你使用SpringBoot做一个员工管理系统【配置篇】1.导入资源2.编写pojo层3.编写dao层4.首页实现5.页面国际化1.导入资源 导入前端文件&#xff1a; 管理系统前端源码下载地址 将下载的前端文件导入到SpringBoot资源目录&#xff1a; 导入Maven依赖&#xff1a;&#x…

iOS微信8.0.31更新,带来7个功能

近日&#xff0c;iOS微信更新了8.0.31正式版。经过几天的深入体验&#xff0c;我发现了7个新特性。如果你还没有升级&#xff0c;我们就往下看吧。 功能一&#xff1a;优化编辑按钮 微信发图片&#xff0c;发送前可以编辑&#xff0c;底部的编辑按钮变了。新版画笔工具变成了钢…

数据驱动测试-从方法探研到最佳实践

作者&#xff1a;刘红妍 导读 在自动化测试实践中&#xff0c;测试数据是制造测试场景的必要条件&#xff0c;本文主要讲述了在沟通自动化框架如何分层&#xff0c;数据如何存储&#xff0c;以及基于单元测试pytest下如何执行。并通过实践案例分享&#xff0c;提供数据驱动测…

qq录制视频保存到哪了?qq录制视频怎么没了?找回方法在这

相信很多小伙伴都跟小编一样&#xff0c;使用qq录屏录制好后&#xff0c;结果就怎么也找不到录屏的文件了。经过小编一番研究&#xff0c;终于找到了qq录屏后视频文件的所保存的文件路径了。qq录制视频保存到哪了&#xff1f;别担心&#xff0c;下面小编就带大家一起来找找看。…

VS代码片段(CodeSnippet)的制作以及常用代码片段记录

总目录 文章目录总目录前言一、代码片段是什么&#xff1f;1.了解2.查找代码片段文件夹二、编写代码片段1.认识代码片段2.编写自定义代码片段1、trycf (try,catch,finally)2、propp&#xff08;用于MVVMLight中&#xff09;3、ts &#xff08;创建一个test方法&#xff09;3.使…