0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试工程师应具备哪些基本技能

工程师人生 来源:wv 作者:简书网 2019-09-12 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

笔者针对测试从业者必须掌握的基本功做了个分层:

1、操作系统

在这个层面,至少需要去了解操作系统类型、生产厂商、划时代的版本、典型的应用场景。

一般而言,操作系统类型可以分为:unix、linux、windows,咦苹果系统去哪了? 苹果系统的核是unix的一个分支。当然了要是细分下去会更多,大家大体了解这三种足够(也可以把mac os列为独立的一种、android则自动归为linux系列)

从应用的场景又可以分为:桌面版本、服务器版本、移动版本,独立生态的苹果,对于每种所占据的市场地位,也是众所皆知的,如果你不清楚,那你平时就应该多多看看相关科技资讯信息了。

从操作系统生产商发行版本来看:

windows分两大类: 以往桌面版的windows系列和服务器版本的Server系列以及现在桌面、移动合一的windows 10

unix:这个就比较多了,例如AIX(工作站、大型计算机常用)、原sun发布的Solaris、惠普发布的HP-UX、A/UX(即苹果系统)

linux:这个就更多了,例如centos、fedaro、ubutun、debian、opensuse、redhat、kali等等,国内的就不列,大家自己去搜索下。

不管是哪种类型的操作系统,您都应该去了解下POSIX,POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。

通过对POSIX的了解,你能更深入的了解什么是操作系统。

2、协议层

协议是什么? 协议就是游戏规则,如果你不具备打破规则的能力,那请遵循游戏规则,否则没人和你玩。

对测试从业者而已,需要掌握:

网络协议由谁定义?

在哪里可以查阅协议定义原文?

在哪里可以查阅中文版协议定义原文?

测试人员应该掌握哪些协议?

下面回答下上述四个问题:

几乎所有的因特网标准都收录在RFC(Request For Comments)中,RFC是一系列以编号排定的文件。文件收集了有关因特网相关资讯,以及UNIX和因特网社群的软件文件。目前RFC文件是由Internet Society(ISOC)所赞助发行。

RFC原文你可以从这里获取: https://www.rfc-editor.org/

RFC中文版你可以从这里获取:http://man.chinaunix.net/develop/rfc/default.htm

对于协议的掌握,一是掌握协议机制;二是协议报文格式;三是抓包分析工具。对测试人员而言,必须掌握的机制是:

IP/TCP三次握手机制。

必须掌握的报文格式:

IP协议

TCP协议

HTTP协议

抓包分析工具:

首推wireshark

其他的比如httpWatch、fiddler

对于具体的信息请大家自行去找相关文档查阅和实践。

3、基础服务

这里大致分几个类,大家就清楚了,我们应该掌握:

Web Server类,例如tomcat、apache、weblogic、IIS等等

数据库:例如Oracel、MySQL、mongodb等等

Docker类容器等等

当然还有其他的,不过这些就算没直接接触,应该要去了解:

其应用场景是什么样的

其部署方式及可能带来的性能影响

同类型基础服务间的优劣对比

关键性的配置

在这个基础上,大家根据自己踩过的坑再继续发挥下,会有更多的收获。

4、编程能力

在这里所说的编程能力,不仅仅包括C、C++java等等这类的开发语言,同样包括SQL、html等等。

从软件测试招聘的要求和未来发展来看,深入掌握一门编程语言是必备的基本能力,同时对各种语言能有所了解、甚至理解也将成为优势。

从编程角度和职场要求来看,测试人员应该掌握以下几个方面的能力:

熟练掌握一门编程语言,并能将该语言服务于测试过程效率的改进

了解常见的算法的时间消耗和空间消耗

debug分析能力

软件工程思想

当然还有其他能力,但我想,上述四种能力是最为基础的,也是最为核心的。对于上述几种能力的掌握推荐基本书吧:

编程方面,推荐xx核心编程,例如python就推荐: 《Python核心编程》

算法方面:《算法导论》

debug能力:这个要靠实践中积累了,需要各种知识的综合应用和经验积累。一般来讲三板斧:

一是print;二是log(日志);三是IDE自带debug功能(单步调试等)。

软件工程思想:比较强力推荐林锐博士的《软件工程思想》通俗易懂,语言犀利,深刻透彻。

5、基本命令

这里的基本命令是指windows、linux、unix等操作系统下的常用的命令,对于这些命令我们需要掌握哪些呢?这里我们不列举具体的命令。

下面我们说明下要掌握的命令分类和其典型代表命令:

系统管理类,例如用户管理、进程管理、内存、CPU监控等等

文件管理类,例如文件比较、 创建、查找、拷贝、删除、赋权等等

磁盘管理类,例如目录创建、删除、挂载等等

系统设置类,例如环境变量设置、计划任务管理等等

备份压缩类,例如文件备份、各种格式文件解压缩等等

当然还有其他分类的命令,但上述这些是日常工作中,必须会的。

6、软件测试

这个就太多太多了,简直无以言表。我试着就软件测试进行浓缩,仅供大家参考:

博弈论

动态规划

求同存异

思绪良久,没有尝试出通俗易懂的表达方式,也不想阐述过多的理论或细节,最终选择了上述几个关键词。

下面我介绍下这两个关键词的含义,我想应该可以给大家一些发散的原点。

博弈论:主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法。

动态规划:是求解决策过程(decision process)最优化的数学方法。

求同存异:是周恩来处理复杂关系、解决复杂矛盾一以贯之的思想方法和行为模式,中国外交政策之一。

在反复回顾过程的测试实践和对测试领域未来的发展,认为这三个词能代表测试领域的特色[注:这三个词也可以用于其他任何领域吧。万金油,哪都可以用^_^]

人生苦短,我做测试!

7、测试技术

测试技术应当说是测试实践过程中最为简洁的事了,但却成为了测试人员进一步提升的拦门虎,有些意外,有些无奈,让人很迷茫。

这里简单的说明下测试技术方向的想法,要想掌握测试技术,首先得了解以下分层:

UI级自动化测试,模拟用户真实操作,改进测试过程的效率

接口级自动化测试,验证系统、服务、模块间的调用关系及响应数据

性能测试,采集系统性能指标、挖掘系统瓶颈,预估系统未来扩容的可行性

安全测试,挖掘系统安全漏洞,规划系统、数据等安全

数据测试,过滤脏数据,确保数据的有效性、精确性,挖掘数据的价值

其他可自动化测试的

提供测试技术实施成功率的几个重要保障:

定义自动化测试的边界,即抓住最典型的用户场景和异常场景,忌通吃

做好自动化业务场景对应的元素定位技术分析

定义好自动化测试执行方式,即全自动调度测试、半自动、手工触发方式

做好自动化测试数据规划,数据驱动流程是一种很好的方式

总结

基本功底先分享这么多,后续还有关于基本功底的分享,例如测试数据规划、过程度量等等

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试工程师
    +关注

    关注

    6

    文章

    128

    浏览量

    13108
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    你知道电子工程师,到底分几种吗?

    :专门伺候单片机、MCU,软硬之间的翻译官”,两边都得懂。第四种,测试工程师:专门“找茬”的,功能、可靠性、极限条件,测到你没脾气。第五种,射频工程师:专治WiFi、
    的头像 发表于 04-20 08:52 70次阅读
    你知道电子<b class='flag-5'>工程师</b>,到底分几种吗?

    算法工程师需要具备哪些技能?

    算法工程师需要掌握一系列跨学科的技能,涵盖数学基础、编程能力、算法理论、工程实践以及业务理解等多个方面。 以下是具体技能及学习建议: 线性代数核心内容:矩阵运算、特征值分解、向量空间等
    发表于 02-27 10:53

    芯片CP测试与FT测试的区别,半导体测试工程师必须知道

    本文聚焦芯片CP 测试与FT 测试的核心区别,助力半导体测试工程师厘清二者差异。CP 测试是封装前的晶圆裸晶集体初筛,借助探针卡接触焊垫,聚焦核心功能,以低成本剔除缺陷品;FT
    的头像 发表于 01-26 11:13 877次阅读

    什么是BSP工程师

    的时候,板子上所有的设备都已经可以正常使用了。这个阶段的任务就是开发应用程序来实现某种特定的功能,应用程序中会使用第二阶段提供的软件接口控制板子上的设备来完成这一功能。 四、BSP工程师具备的能力
    发表于 01-13 06:54

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    “没什么可测”时,测试工程师可以做什么?

    作为一名软件测试工程师,应该都有过这样的经历:开发人员还在编码中,看板上没有待测试的任务,没有即将发布的版本,也没有回归测试的要求...特别是在实行瀑布模型团队的研发早期,或者敏捷模式下迭代早期阶段
    的头像 发表于 09-12 10:03 731次阅读
    “没什么可测”时,<b class='flag-5'>测试工程师</b>可以做什么?

    嵌入式工程师的进阶之路

    嵌入式工程师的进阶之路 (一)初级工程师(0-3 年)核心技能: 单片机开发:STM32F103系列 GPIO/USART/SPI 外设驱动,能完成 LED 呼吸灯、按键检测、串口通信等基础项目
    发表于 08-13 11:08

    测试工程师都在用的Linux命令清单(建议收藏)

    作为一名工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技能。本文将从实战角度出发,系统梳理工程师必须掌握
    的头像 发表于 08-08 10:06 831次阅读
    <b class='flag-5'>测试工程师</b>都在用的Linux命令清单(建议收藏)

    电源工程师的核心技能树体系

    电源工程师的核心技能树体系需覆盖从基础理论到专业实践、工具应用及行业适配的全链条能力。以下是系统化的技能框架,按知识层级和应用场景展开,帮助从业者明确能力提升路径: 一、基础理论层:核心知识根基
    的头像 发表于 06-05 09:44 3260次阅读

    一个优秀的射频测试工程师需要具备哪些技能

    一个优秀的射频测试工程师需要具备哪些技能?在无线技术高速发展的今天,射频(RF)测试工程师是确保通信设备性能与用户体验的关键角色。从复杂的调制方案到无处不在的干扰,从功耗优化到标准合规
    的头像 发表于 05-16 10:08 2264次阅读
    一个优秀的射频<b class='flag-5'>测试工程师</b>需要<b class='flag-5'>具备</b>哪些<b class='flag-5'>技能</b>?

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37