《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》

发布于:2025-09-13 ⋅ 阅读:(19) ⋅ 点赞:(0)

🔥个人主页:@草莓熊Lotso

🎬作者简介:C++研发方向学习者

📖个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》《数据结构与算法》《测试开发实战指南》《算法题闯关指南》

⭐️人生格言:生活是默默的坚持,毅力是永久的享受。

前言:测试在我们的生活中处处可见,学习中也是。并且就企业来说的最终目的就是盈利,企业的受众是广大的用户,用户的使用感受将直接影响企业的盈利,而测试就是为了验证产品特性是否满足用户的需求。所以测试的重要性是不言而喻的。


目录

一.软件测试的定义和测试岗位介绍

软件测试的定义:

测试的岗位有哪些:

高频面试题:

二.软件测试和开发的区别

工作内容:

难易程度:

工作环境和薪水:

开发人员和测试人员的冲突问题:

其它不同:

高频面试题:

三.优秀的软件测试人员需要具备的素质

综合能力:

沟通能力:

快速学习能力:

开发能力:

文字能力:

掌握自动化测试技术:

测试用例的设计能力:

探索性思维:

兴趣:

责任感和压力:

高频面试题:


一.软件测试的定义和测试岗位介绍

软件测试的定义:

  • 软件测试就是验证软件产品特性是否满足用户的需求。

那我们为什么需要软件测试呢?--企业又为何需要招聘大量测试人员

  • 企业最终的目的是“盈利”,互联网企业借助软件/系统来跟用户交互从而获得盈利,也就是说企业的受众群体主要是广大的使用用户,而用户的使用感受将直接影响企业的盈利,若产品质量太差将导致大量用户的流失,所以企业非常重视测试。

我们再来看一个对java程序的测试:

测试代码逻辑是否符合预期:

a = 1, b = 2, 返回的 c 是否等于3
a = 1, b = -2,返回的 c 是否等于-1
a = -1, b = 2,返回的 c 是否等于1
a = -1, b = -2,返回的 c 是否等于-3
.....

测试的岗位有哪些:

测试的岗位主要分为以下两个方面:

1.软件测试开发工程师:

工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。软件测试开发⼯程师关注质量提升和测试覆盖率

2.测试工程师:
与软件测试开发⼯程师关系密切,但把用户放在第⼀位来思考。测试⼯程师组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。
然而我们在投递简历时,会看到各种各样的测试名称,形如:

高频面试题:

软件测试开发工程师和测试工程师的区别:
相同点:
1.都统称为测试⼈员
2.对产品质量负责,保障产品的质量
不同点:
测试开发比测试多“开发”⼆字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发指的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化、性能测试等就属于效率⼯具 。

二.软件测试和开发的区别

工作内容:

开发人员:

  • 1.通过一些编程语言,如C,C++,C#,Java,Python,PHP实现软件的特性
  • 2.修改BUG

测试人员:

  • 1.编写测试用例,执行测试用例,发现软件的缺陷,验收缺陷……
  • 2.利用测试2工具保障软件的质量

难易程度:

开发:

  • 应届生要求掌握语言基础、开发框架、数据库、 数据结构、Linux等课程
  • 在职人员还需掌握更多中间件如:Redis、 rabbitMQ、ES等
  • 要求掌握以上技术并能运用在代码开发中

测试:

  • 应届生要求掌握语言基础、开发框架、数据库、 数据结构、Linux等课程
  • 掌握测试技能:测试概念、设计测试用例、执行测试等
  • 在职人员还需掌握更多中间件如:Redis、 rabbitMQ、ES等

总结:开发广度小,专业度高。测试广度大,专业度相对较低,大型互联网企业对测试人员的专业要求可能跟开发差不多

工作环境和薪水:

环境:

  很多公司,测试人员和开发人员都是坐在一个办公楼层的不同区域,所以他们的工作环境,工作设备基本上是一样的。

薪水:

  中小企业总体比研发低,自动化等专业测试和研发基本无差距。大厂研发测试薪资基本无差别,大家可以看看下图:

开发人员和测试人员的冲突问题:

--这里还有关于导师的问题,大家可以看一看

其它不同:

高频面试题:

1.走测试岗为什么还要学开发知识?

  • 测试人员也需要编写代码,如自动化测试,性能测试,开发测试工具等。测试人员需要能够看懂代码,了解开发框架。
  • 学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题

三.优秀的软件测试人员需要具备的素质

综合能力:

沟通能力:

  • 测试工程师的沟通能力会直接影响工作开展的效率。良好的沟通能力是测试工程师获得更好发展的“敲门砖”(面试、工作都需要沟通) 面试的时候,有些人就存在明明知道是什么,却怎么都表达不出来或者表达不清楚,导致面试评价比较差。

快速学习能力:

  • 对不同的业务需求和功能的快速学习和理解能力,未来我们都会经历跳槽,不同的公司,业务不一样,所以测试人员需要具备快速学习业务的能力
  • 对于测试新技术和新⽅法的学习能力,计算机行业发展迅速,每⼀个技术人员需要时刻保持⼀个学习新技术的能力,不断提升自己,从而适应业界的需求
  • 对不同语言的快速学习能力,大多同学在工作之前基本掌握一到两门语言, 然后实际在⼯作中,可能需要接触其他的语言,比如PHP、GO、Python等。

开发能力:

  • 测试人员除了保障项目质量外,也需要针对当前业务开发效率工具,来提升测试效率和质量。如自动化,性能测试等就是效率工具。

文字能力:

  • 测试人员需要编写各项文档,如测试计划,测试用,测试报告等

掌握自动化测试技术:

  • 自动化测试技术在测试领域中占有举足轻重的地位,掌握自动化测试技术,可以将测试人员从大量重复性的手工劳动中解放出来,这样可以把更多的精力花在更多类型的测试上。

在测试中,我们常常会见到接口自动化、UI自动化(web自动化、移动端自动化),接口自动化能够自动的去请求接口并校验接口返回属性是否符合预期结果;UI自动化能够自动在界面或者移动端上模拟人的行为进行操作,并检查元素和操作等是否符合预期结果。

测试用例的设计能力:

测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
如何提高测试用例设计的能力?
  • 1.掌握设计测试用例的方法
  • 2.阅读好的测试用例设计案例
  • 3.多写多练,积累,总结

探索性思维:

  • 测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉, 进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。 探索性思维的质量取决于测试人员的经验。

兴趣:

  • 兴趣是就业择岗的重要因素之⼀,选择了但是仍然对个人的工作性质不感兴趣,可想而知,这样的选择也不会走的太远。

责任感和压力:

  • 责任感是任何工作的都需要的,对于测试⼯作者而言: 测试往往是产品质量的最后的把关者;由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀。 压⼒,测试⼯作者,特别是属于互联网行业需要能够抗住各种压⼒。

高频面试题:

为什么走测试岗位而不走开发岗位?
回答思路:从岗位工作性质分析+个人性格/爱好+个⼈职业规划三个方面来阐述。
  • 1)个人兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐心、细心,接触了测试内容后对测试⼯作产⽣浓厚兴趣
  • 2)岗位性质:不管是测试还是测试开发都统称为测试人员,测试⼈员主要以保障项目测试质量为主,通过开发⼀些测试效率⼯具,比如我们要学的自动化就是效能⼯具等等来提高测试效率。而软件开发主要以业务编码为主。
  • 3)个人职业规划:大学期间就树立了走测试方向的目标,今后将继续提高测试和开发能力,争取在测试领域做出⼀番有影响力的事务

往期回顾:

《吃透 C++ 类和对象(中):拷贝构造函数与赋值运算符重载深度解析》

《吃透 C++ 类和对象(中):const 成员函数与取地址运算符重载解析》

结语:本文从定义出发,软件测试是验证产品特性是否满足用户需求的关键环节,直接影响企业盈利。优秀测试人员需具备快速学习、探索性思维及责任感,并强调兴趣与职业规划的重要性。如果文章对你有帮助的话,欢迎评论,点赞,收藏加关注,感谢大家的支持。