软件测试2年半的我,谈谈自己的理解...

软件测试两年半的我,谈谈自己的理解

从2020年7月毕业,就成为一名测试仔。日子混了一鲲年,感觉需要好好梳理一下自己的职业道路了,回顾与总结下吧。

一、测试的定位

做事嘛,搞清楚自己的定位很重要。

要搞清楚自己的定位,就需要先了解整个流程,然后通过流程中的“相对位置”来确认自己的位置。

对于一个产品大团队而言,从头到尾总是大概需要经过这么一些角色。(在大小团队中某些岗位可能合并或者分立,但大致是这么一些要做的事情)

1、需求提出者(产品经理、策划或者客户)
2、产品实现者(架构人员、开发人员)
3、质量验证者(测试人员:测试设计、测试执行、自动化团队)
4、销售
5、客户
6、交付/运维团队

而我们的定位,就来自于我们与其他角色的关系。

1、测试与需求:

首先,产品经理通过市场风向的研究,想要实现某个功能来满足客户需要,形成竞争优势; 或者 接收客户对于产品某些问题的反馈,提出一个解决方案。

以上这些,落到产品团队中,最终就成为一个个 待做的需求。然后向研发团队讲解自己期望实现的功能。

测试工作内容,归根结底就是“保障质量”

而质量,其实不仅仅来源于开发的实现代码,也来源于“需求合理性”

以极端情况举例,有可能需求提出了画面要“五彩斑斓的黑”,或者期望在现实世界建造一栋某个特殊造型的房子,而那个房子,本身完全不符合力学结构。

这种情况下,质量问题的来源,并不在开发,而是更前一个环节的需求层面。

因为各种原因(如理解偏差、新人上手),需求存在错误这种事情,是时有发生的。而当一个需求本身是存在错误的,如果等到开发已经投入实现了大部分之后才发现,无论是将就着做下去,还是推翻重来浪费的人力都将巨大。

因此,最近有了一个概念叫做“测试左移”,所说的就是测试应该在更早的阶段(如需求阶段)去发现问题,从而规避问题。

如果我们能在需求阶段,就把问题提出来,就能让后面的环节更加顺利。

输入:

a、产品经理讲解客户目前的痛点是什么

b、产品经理讲解提出什么样的需求方案,觉得可以解决客户的痛点

输出:

a、根据经验,说出这样的需求方案可能有什么坑 (比如和已有的某些功能存在重复、或者存在冲突)

b、根据产品所描述方案,输出“用户使用场景性”的测试用例

对测试的能力要求:

a、熟悉产品已有的几乎所有功能,特别是责任田内的。以便于能在第一时间反应发现,和新需求可能产生关联的会是哪些功能。

b、带入客户视角的能力。(可以参考5W1H的方法去带入和思考)

2、测试与开发:

作为测试,沟通的最多的人,无疑还是开发。

通常一个测试,需要同时对接多个开发,前端、后端,甚至后端可能还需要区分配置面、运行面,对某些产品可能还需要区分“客户端和服务端”。

而测试的策略通常又需要区分“黑盒测试”与“白盒测试”。

当进行黑盒测试时,我们只需要考虑功能是否能用,里面的细节不关心,这种情况下,我们对于开发输入的依赖相对没有那么大。只需要根据需求的特性,罗列出所有的可能输入项类型,以及输入后的期望输出即可。

而很多场景下,黑盒测试往往是不够的,一些问题往往出现在奇奇怪怪的地方。

这个时候,我们就需要白盒测试了,白盒测试的第一步,首先测试就需要也先基本理解运行的逻辑。对于开发的“原理设计文档”我们需要能够去看懂,这样才能从设计文档中,分析出我们所需要的测试点。

输入:

a、原理设计文档(以及讲解和评审会议)

b、

输出:

a、提出开发设计文档中可能存在问题的点(比如边界、兼容性等 任何开发没有考虑到的点)

b、测试设计文档+测试用例+测试策略

c、可测试性工具需求提交

对测试的能力要求:

a、需要能理解开发文档,并从中拆解测试点

b、需要能从测试点组装成测试用例

c、需要识别测试过程中可能需要用的工具与环境

误区说明:传统的流程上来说,测试只是开发的下一道流程。但已经不太适用于当下,特别是敏捷当道的状态下,要求测试能提前识别问题,也是不能再等到开发什么都搞完再接手了,而是要 几乎并行 地去开展工作。

3、测试与测试:

测试内部也有许多的分工,大体分为 “测试设计人员”、“测试执行人员”、“自动化测试人员”几种角色。

测试设计人员产出的用例,最终则会成为执行人员和自动化人员的输入项。

对于测试设计的能力要求:所输出的用例是可执行的,不存在歧义的,且可以验证到功能是否存在问题的。

对于测试执行的能力要求:在用例正确的前提下,是可以严格执行用例步骤的;在用例可能存在错误的情况下,是能够进行一定程度识别的。

对于自动化测试的能力要求:是要能使用自动化方法实现用例内容,并在后续迭代中可以持续自动化执行的。

4、测试与销售:

测试过程中,比如性能测试、稳定性测试,通常会产出一些产品指标数据

通过实打实的指标数据,销售则可以更好的与友商PK,进行更好的推广,从而卖得更好,大家分得更多。

5、测试与客户:

前有提到,测试在产品团队内部,就应该把自己代入‘客户’的角度来进行工作。

大部分时候通过 ‘将心比心’的方法能比较好的做到这件事,但还是偶尔陷入‘以己度人’的误区。

这种情况下,就只有通过‘测试右移“的方法来实现了。

通过产品发布后,持续关注客户的使用情况以及反馈情况,来了解是否有解决客户的问题。(比如 通过网上问题报单数量)

6、测试与运维

在测试过程中,通常会用到一些测试方法与问题排查技巧。测试如果有做一个比较好的整理汇总的话,这些信息应该是可以作为运维人员的一份参考手册的

二、测试的关注点

壹、功能测试

1、本身功能测试

就像改一个房子,你希望它能遮风挡雨,能有卧室可以睡觉,有厨房可以做饭,有厕所可以~

这些就是功能点,你需要测试床是不是舒服,厨房有没有燃气,厕所有没有水等等功能性。

2、关联功能测试

在同一个产品下,有时候很多东西都是息息相关的,功能与功能之间的依赖,进程与进程之间的依赖。

修改其中某处地方,可能不只要考虑功能本身,还需要考虑和他相关的功能。

举个栗子,就像是大家买房装修,如果有某一户人家把承重墙给拆了,其他楼层也会受到影响。

贰、性能测试

性能优化,说白了,就是想要用最少的资源去做最多的事情。

而性能测试的数据,则是需要作为性能优化是否到位的一个表现。

通常就是通过控制变量来测试。

1、控制固定资源量不变,看单位时间内程序处理工作的数量。(比如,固定CPU吃满情况下,测试平均每秒可以进行多少次 乘法运算。 )

2、控制需处理的数量不变,看资源消耗与耗时。(比如,就固定做十万次乘法运算,耗时多久,过程中CPU、内存、磁盘IO、网路带宽等消耗多少)

叁、可靠性测试

可靠性测试说白了就是考验极端情况下,程序还能不能干活。

比如人类,在-100度的高温下,和-100低温下,就无法工作了。在30度情况下,人类能勉强工作;40度情况下,基本上无法进行劳作了。

程序也一样,CPU压力大的情况下,是否能正常进行。网络状态差的情况下,是否能正常进行。客户端程序电脑休眠之后打开是否还能正常使用。

比如 朱日和演习,蓝军的各种buff就是可靠性测试下的压力。

可靠性下还有一个重要的分支,就是可恢复性,就像大家使用手机,有些情况下手机就是可能会出现卡死的现象。这个时候,只要选择强制重启基本上就可以解决99.99%的问题。而如果可恢复性做得不好的话,那就可能导致手机出现一次故障,然后就直接变砖了,里面的各种信息也丢失了。

例举几种常见的可靠性:

进程可靠性:1、进程启动失败 2、进程退出 3、进程挂死 4、进程Z/D/T

文件可靠性:1、文件损坏/丢失 2、文件读写权限异常 3、存储空间不足 4、存储介质故障

数据可靠性:1、数据库异常 2、数据丢失 3、数据损坏 4、数据内容错误

网络可靠性:1、弱网 2、断网重连 3、数据包过大,数据截断

时间可靠性:1、系统时间跳变(向前跳变、向后跳变、跳变范围跨小时/天/月/年)

资源可靠性:1、CPU过载 2、内存过载 3、磁盘IO过载 4、磁盘空间满 5、文件句柄 6、网络端口被占用 7、网络连接过载 8、数据库连接过载等

设备可靠性:1、设备掉电重启 2、设备关机重启

肆、稳定性测试

有些产品,是需要持续运行不出错的。

有些隐藏的极深的问题,是一时半会无法暴露出来的。

例如:每分钟会执行一个定时任务,这个定时任务会产生一个1MB的文件,原则上这个文件在每分钟使用之后都会删除掉。而中间出现了bug,文件因为权限问题或其他问题删除失败了。这个时候如果只是测试了几分钟,可能根本就无法发现这个问题。但如果程序持续运行1天、甚至1周,问题的影响就十分巨大了。

伍、兼容性测试

如果是一个有页面可以在浏览器访问的应用, 则需要考虑各种浏览器类型的兼容,各种浏览器(chrome、Edge、Firefox、IE、360浏览器、QQ浏览器)都需要能兼容。

如果是安装到终端上的应用程序,则需要考虑系统类型,如win7、win10、winserver、mac11、mac12、Linux。

如果程序调用的东西涉及到指令集的层次,则还需要考虑如 intel、AMD等各种不同芯片的情况。

如果程序的传输,是涉及到需要加密的,则还需要考虑到加密算法的问题。国际密码标准 与 中国商用密码标准 都需要考虑兼容。

如果程序的逻辑,是与时间相关的, 则需要考虑时间跳变、时区兼容、12小时/24小时制的兼容

以上只是部分例子,有机会再好好整理一下。

陆、可运维性测试

大家的期许,肯定是完美的。

但现实世界是,产品总会有不够完美的地方,在一些特定的场景下,就是可能会产生问题。

这个时候,可运维性就十分重要的了。

当产品出了问题,当客户询问原因的时候。如果可运维性做得足够好,那可能问题就会在很短的时间,几分钟之内得到答案。

而如果可运维性做得极差,那么当产品在客户处出现问题,甚至可能出现无从下手的原因。

这里带入客户的角度模拟两个场景,

1、产品坏了,打电话去问客服,然后向对方描述现象,对方告诉你是什么什么原因导致的,需要怎么怎么样处理可能就好了。然后工程师上门,咔,好了

2、产品坏了,打电话去问客服,对方说,嗯~啊~这个~得具体现象具体分析。 然后工程师上门,查了半天没得结果,说还得回去看代码再研究一下。

如果你是客户,对于这两种现象会有怎么样的评价。

柒、安全性测试

当前的大环境下,安全性测试一般会有专业的安全团队来负责。但一般测试如果能稍微了解一些相关的概念,也是有所帮助的。

三、测试的道法术器势

最近发现,用“道”、“法”、“术”、“器”、“势”来拆分任何一个事情,都是很好用的。

道,是根本性的规律。通常是自然而然存在的。

法,是一般性的规律。一般是由人自己定的。

术,是具体的实践方法。

器,是工具。

势,是指当前的客观条件与形式。

"道不易,法简易,术常易"

韩非子说,抱法处势而用术。

测试的道

对于测试来说,道很简单,就是尽可能的发现bug。

竭尽所能地去保障产品的“质量”。

测试的法

能提前识别问题的测试左移方法

能持续运营问题的测试右移方法

分层测试的方法(UI、接口、后端等)

求全的冗余测试方法

求快的精准测试方法

求稳的最后一包全量测试方法

求快的分步增量测试方法

撒网捞bug之法

漏网之鱼追捕之法

突发问题补救之法

问题复盘之法

测试的术

1、自动化技术

2、接口测试技术

3、单元测试技术

4、搭建沟通桥梁的话术

测试的器

网络类:

wireshark抓包工具

nslookup

dig

nsupdate

ping

tracert

tcpdump

……

数据构造类:

POSTMAN

ApiFox

Fiddler

……

自动化类:

RF框架

selenium

……

资源观察类:

telegram

top命令

……

测试站点搭建:

Nginx

Apache

XAMPP

Bind9(DNS服务器)

……

以及各种自制脚本

测试的势

韩非子说,抱法处势而用术。

不知道大家有没有感觉,保障质量,这句话看着哪里都很对。

唯一的缺点就是,很虚。

而只有结合“势”,我们才能得到一个答案,团队希望投入多大的成本来保障质量,是否愿意为了质量而做出时间上的妥协。

对于求稳的产品,大家希望的是用尽全力保障质量,但凡发现有风险,就必须要解决后才能发布。

对于高速迭代的产品,大家的重点是“先推出去”,无论如何像让客户体验起来,用起来。

在这两种截然不同的“势”下,我们所需要遵从的“法”,使用的“术”,自然也是需要随之改变的。

总结

掌握了器,大抵我们就成为了一个合格的工具人。

掌握了术,干起活来我们基本上得心应手。

掌握了法,我们测试工作上所要做的事情,基本上达到了知其然且知其所以然。

掌握了道,才能在长时间的路上不走偏。

四、测试的时间管理

通常一个开发,同时可能就投入在一个需求之中。

通常一个测试,对接的是将近一个组的开发,可能有多个需求。

怎么安排时间?谁先谁后?时间分配

五、测试的未来

而早在多年前,AI用于测试的话题就存在了。

在AI飞速发展的今天,我们都见识到chatGPT的冰山一角。

大家纷纷讨论,哪些职业可能会被chatGPT家族所取代。

对新技术,我通常会思考两个问题。

1、挑战是什么?ta能替代我们的哪些能力?

2、机遇是什么?ta有哪些能力可以为我们所用?

AI+测试,是一个值得思考的方向,也可能是我接下来期望致力于的方向。

等有更多成体系的想法与点子,再为诸位抛转。

今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我们的测试交流群大家一起讨论交流学习。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot配置文件拆分 - 第466篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 ​…

chatgpt赋能python:Python倒序输入:如何在Python中对字符串进行反转?

Python倒序输入:如何在Python中对字符串进行反转? 在Python编程语言中,反转字符串是一项非常基础也十分重要的操作。这个操作经常用在数据处理、计算机科学、人工智能等领域。本文将会向您介绍如何在Python中对字符串进行反转。作为一名有10…

粤港澳大湾区7大机场新闻数据的评分系统

粤港澳大湾区7大机场新闻数据的评分系统 # 一、获取网页源代码 # 1.引入所需库 import requests import re import time import csv # 2.请求头 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.1…

华人运通与BlackBerry达成合作, 打造未来数字生命GT——高合HiPhi Z

BlackBerry近日宣布,中国领先的未来智能交通产业的创新型出行科技公司——华人运通,选择了BlackBerry QNX为华人运通的第二款旗舰车型高合HiPhi Z保驾护航,打造其自动驾驶域控制器与数字座舱域控制器。 基于BlackBerry QNX Neutrino 实时操作…

聚观早报|Uber分拆旗下网约车服务; 字节跳动首度超越腾讯和阿里

今日要闻:Uber分拆旗下网约车服务Careem;字节跳动首度超越腾讯和阿里;搜狗追上GPT-4需要3年左右;苹果首款头戴装置将延至6月量产;全面注册制新规今起正式落地 Uber分拆旗下网约车服务Careem Uber 旗下网约车服务 Care…

车载T-BOX市场分析

图片来源于网络 目录 摘要1. 前装市场2. 后装市场 摘要 T-Box,即Telematics-Box,又称TCU(车联网控制单元),指安装在汽车上用于控制跟踪汽车的嵌入式系统,包括GPS单元、移动通讯外部接口电子处理单元、微控…

TiDB HTAP 遇上新能源车企:直营模式下实时数据分析的应用实践

无论在股市还是车市上,新能源汽车早已站在了舞台中央。在一台台爆款新车的背后,是造车新势力们产品力和技术力的强强联手,更是数字营销和直营的绝妙组合。早在 2021 年,造车新势力们就已基本完成了销量的“原始积累”。根据各品牌…

袋鼠云亮相澳门首届BEYOND国际科技创新博览会,加速迈向国际化

12月2日-4日,首届BEYOND国际科技创新博览会于澳门威尼斯人金光会展中心举办。 BEYOND国际科技创新博览会以科技创新和科技对社会各产业的影响力为焦点,聚焦前沿科技,展现科技在现今和未来社会各行业的影响力。BEYOND将成为澳门连接全球科技创新产业的重要平台,旨在成为全球顶级…

拿下车载激光雷达份额「第一」,图达通寻求「变阵」

在2022年的量产元年之后,激光雷达正尝试进入真正大规模量产周期。在此之前,有一些关键问题需要解决,其中包括:其一,帮助主机厂将激光雷达真正用起来,发挥价值;其二,丰富产品品类&…

ICV:车载毫米波雷达中国市场有望在2025年实现30亿美元的市场规模

近日,专注于前沿科技领域的国际咨询机构ICV发布了全球车载毫米波雷达的市场研究报告,汽车毫米波(mmWave)雷达基于频率为77 GHz的电磁波,具有高精度和准确性,可用于目标检测。这种技术有着广泛的应用&#x…

ChatGPT - 使用chatgpt + xmind 快速生成思维导图

文章目录 Step 1Step 2Step 3 Step 1 Prompt 体系化的列举出Flink的知识点, 输出markdown语言格式Step 2 Prompt 将上述回答转换为markdown的Code# Flink 知识点概览Apache Flink 是一个流处理框架,用于在分布式环境中处理无限的数据流。以下是 Flin…

“发现生活中的美好,ChatGPT 带你用脑图记录,发现更多美好!“

脑图的好处和特点。 脑图是一种视觉化的思维工具,具有以下的好处和特点: 整合信息:脑图能够把大量信息集中在一个图形中,并通过层级结构和分支来展示信息之间的关系,便于整合和理解复杂的信息。提高效率:…

“反向传播算法”过程及公式推导(超直观好懂的Backpropagation)

文章目录 前言(扯犊子)定义算法讲解(耐心看)CASE 1(图示讲解,看不太懂没关系,看第二组图)CASE 2(具体计算举例,嫌麻烦的可直接看这个,强烈推荐&am…

【工具】1729- PMAI:优秀的产品经理 AI 帮手

关注 “AI 工具派” 探索最新 AI 工具,发现 AI 带来的无限可能性! 今天 Chris 给大家推荐的工具是 PMAI,一款产品经理的 AI 助手,可以一键生成 PRD、解决方案、流程图、sql 等功能,快来一起看看吧。 工具地址&#xff…

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(三)...

“ ChatGPT 的 Transformer 神经网络架构,以及海量的数据训练让它能够像人类一样进行写作。” 经过前面两期漫长的介绍文章: 为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(一…

2023年中国私域运营洞察白皮书

导读: 随着私域阵地边界的拓展,内容成为捕获消费者注意力的关键,下一阶段的私域运营将向以内容为中心进行升级。《2023年中国私域运营洞察白皮书》从私域运营的发展背景出发,提出了以内容为中心的私域运营进阶模式,并公…

如何利用chatGPT/GPT4高效学习Solidworks二次开发

最近比较火的无疑是ChatGPT/GPT4,它的出现是不是像大家所想的,能够改变世界。 比如说让我丢了饭碗 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3ab46dde8f89452da5c524f770de19b7.png)要不我们来试试它? 先用这个试试,据说这个比较…

数读|未来人工智能生成内容还能做哪些工作?

除了ChatGPT,AIGC还有哪些想象空间?未来还能帮我们做什么? 贝壳财经记者梳理资料发现,目前AIGC已经悄然影响多个领域。在国外一些AI应用已经可以实现撰写博客文章、社交媒体帖子、营销电子邮件等,支持超过25种语言&…

图解 72 个机器学习基础知识点

ChatGPT狂飙160天,世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 图解机器学习算法系列 以图解的生动方式,阐述机器学习核心知识 & 重要模型,并通过代码讲通应用细节…

韩语中有“促音”吗?从音变语法中得到答案,从日语转韩语的学习者常见误区

摘要 我有一些从日语转韩语的学习小伙伴,把韩语的收音归为“促音”。对于具有日语基础的学习者来说,促音的说法是很直观的,好理解,但是韩语的收音完全不是促音,而且不应该按照促音一样理解。 日语“促音”介绍 对于…