【测试】一文读懂软件测试:新手真正需要的测试认知
📌 相关专栏
- 【Linux专栏】
- 【C语言专栏】
- 【测试专栏】
📌 相关文章推荐
- 【Linux】网络基础2---Socket编程预备
- 【Linux 】网络基础1
哈喽~欢迎来到千余的小天地 ❤
我会分享很多干货/日常,点个关注不迷路哦~
👍 点赞 ⭐ 收藏 💬 评论
文章目录
- 前言
- 一、什么是测试?
- 案例1:买衣服
- 案例2:使用购物软件
- 案例3:测试C++程序
- 二、为什么企业需要软件测试?
- 三、测试的岗位有哪些?
- 1. 软件测试开发工程师
- 2. 测试工程师
- 3. 高频面试题
- 相同点
- 不同点
- 四、软件测试和开发的区别
- 4.1 工作内容
- 4.2 难易程度
- 4.3 工作环境
- 4.4 调试 vs 测试
- 4.5 高频面试题:为什么走测试岗位还要学习开发知识?
- 五、优秀的软件测试人员需要具备哪些素质?
- 5.1 综合能力
- 沟通能力
- 快速学习能力
- 开发能力
- 文字能力
- 5.2 掌握自动化测试技术
- 常见自动化测试
- 5.3 测试用例的设计能力
- 如何提高?
- 5.4 探索性思维
- 5.5 兴趣
- 5.6 责任感和压力
- 六、高频面试题:为什么走测试岗位而不走开发?
- (1)个人兴趣爱好
- (2)岗位性质
- (3)个人职业规划
前言
软件测试入门指南:什么是测试?测试和开发到底有什么区别?
🐾 打破鄙视链,还原一个真实的软件测试岗位
在互联网技术岗位中,一直流传着这样一个鄙视链:算法 > 后端开发 > 前端开发 > 测开 > 测试……
这不过是互联网民工茶余饭后的无聊消遣。事实上,不同的岗位有不同的工作重点,每个角色都无法被替代。
那么,软件测试到底是什么?测试和开发有什么区别?优秀的测试>人员需要具备哪些素质?今天就带大家一探究竟。
一、什么是测试?
其实,测试在生活中处处可见。
生活中的测试场景
案例1:买衣服
- 外观测试:走进门店,挑选符合自己审美的衣服
- 试穿测试:选择合适的尺码,测试上身效果
- 面料测试:确认材质是纯棉、涤纶还是其他布料
- 价格测试:询问价格,判断是否在心理预期内(比如300元以下)
案例2:使用购物软件
- 启动测试:点击图标,测试软件能否正常打开
- 搜索测试:输入关键词,测试搜索功能
- 商品测试:点击商品,测试详情页能否正常加载
- 购物测试:点击购买,测试下单流程是否顺畅
案例3:测试C++程序
#include<iostream>intadd(inta,intb){returna+b;}intmain(){// 测试用例std::cout<<"测试 a=1, b=2,期望结果: 3,实际结果: "<<add(1,2)<<std::endl;std::cout<<"测试 a=1, b=-2,期望结果: -1,实际结果: "<<add(1,-2)<<std::endl;std::cout<<"测试 a=-1, b=2,期望结果: 1,实际结果: "<<add(-1,2)<<std::endl;std::cout<<"测试 a=-1, b=-2,期望结果: -3,实际结果: "<<add(-1,-2)<<std::endl;return0;}测试代码逻辑是否符合预期:
- 输入 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. 测试工程师
把用户放在第一位来思考,组织整体测试实践,进行分析总结,驱动测试执行,构建端到端的自动化测试。
3. 高频面试题
软件测试开发工程师和测试工程师的区别
相同点
- 都统称为测试人员
- 都对产品质量负责,保障产品质量
不同点
测试开发比测试多了“开发”二字。这个开发不是指业务开发(那是开发人员的职责),而是指需要开发测试效率工具,通过自动化、性能测试等工具来提升测试效率和测试质量。
四、软件测试和开发的区别
4.1 工作内容
开发人员 测试人员通过编程语言(C、C++、Java、Python、PHP等)实现软件特性 编写测试用例,执行测试用例,发现和验收缺陷修改BUG 利用测试工具保障软件质量
4.2 难易程度
开发:广度小,专业度高
测试:广度大,专业度相对较低(但大型互联网企业对测试的专业要求可能和开发差不多)
两者都需要掌握:语言基础、开发框架、数据库、数据结构、Linux等课程,以及Redis、RabbitMQ、ES等中间件。测试还需要额外掌握测试技能,如测试概念、测试用例设计、测试执行等。
4.3 工作环境
很多公司,测试人员和开发人员坐在同一个办公楼层的不同区域,工作环境、设备基本一样。
4.4 调试 vs 测试
维度 调试 测试
目的 定位并解决程序中的问题 发现程序中的缺陷
参与角色 主要由开发人员完成 测试人员和开发人员共同完成
执行阶段 开发阶段 贯穿整个软件开发生命周期
4.5 高频面试题:为什么走测试岗位还要学习开发知识?
- 测试人员也需要编写代码,如自动化测试、性能测试、开发测试效率工具等,需要能够看懂代码、了解开发框架
- 学好开发知识能够提高软件测试质量,通过查看代码中数据的走向,能够更好地从代码层面发现问题
五、优秀的软件测试人员需要具备哪些素质?
5.1 综合能力
沟通能力
测试工程师的沟通能力直接影响工作开展的效率。面试时,有些同学明明知道答案,却怎么都表达不清楚,导致面试评价较差。
快速学习能力
- 对不同的业务需求和功能快速学习和理解(跳槽时尤其重要)
- 对测试新技术和新方法的学习能力
- 对不同语言的快速学习能力(工作中可能需要接触PHP、Go、Python等)
开发能力
测试人员除了保障项目质量,还需要针对当前业务开发效率工具,提升测试效率和质量。
文字能力
需要编写测试计划、测试用例、测试报告等各项文档。
5.2 掌握自动化测试技术
自动化测试在测试领域中占有举足轻重的地位,它能将测试人员从大量重复性的手工劳动中解放出来,把更多精力花在更多类型的测试上。
常见自动化测试
接口自动化:自动请求接口并校验返回结果UI自动化:自动在界面或移动端模拟人的行为进行操作
5.3 测试用例的设计能力
无论对什么类型的测试,都能设计出高效发现缺陷的优秀测试用例。
如何提高?
- 掌握设计测试用例的方法
- 阅读优秀的测试用例设计案例
- 多写多练,不断积累总结
5.4 探索性思维
在执行测试的过程中不断学习被测系统,结合经验、知识、直觉,进行系统性的错误猜测和逻辑推理,整理出更多有针对性的测试关注点。
5.5 兴趣
兴趣是就业择岗的重要因素。选择了却对工作不感兴趣,这样的选择走不远。
5.6 责任感和压力
测试往往是产品质量的最后把关者。责任感是最重要的测试必备素质之一。
同时,互联网行业的测试人员需要能够抗住各种压力。
六、高频面试题:为什么走测试岗位而不走开发?
回答思路: 从岗位工作性质 + 个人性格/爱好 + 个人职业规划三个方面阐述。
(1)个人兴趣爱好
从性格和兴趣出发,测试工作需要良好的耐心和细心,接触测试内容后对测试工作产生了浓厚兴趣。
(2)岗位性质
测试人员以保障项目测试质量为主,通过开发测试效率工具(如自动化工具、内存泄漏工具等)来提高测试效率。而软件开发以业务编码为主。
(3)个人职业规划
大学期间就树立了走测试方向的目标,今后将继续提高测试和开发能力,争取在测试领域做出有影响力的事。
🐶 🐾 ✨ 🐾 🐶
测试不是开发的“附属品”,而是一个独立且重要的技术岗位。优秀的测试人员需要懂开发、懂业务、懂用户,还要有责任心和探索精神。
无论你正在考虑进入测试行业,还是已经在路上,希望这篇文章能帮你对软件测试有更清晰的认识。
小狗举爪爪求关注啦!🥺
你的关注,就是我更新的最大动力~
👍 点赞 ⭐ 收藏 💬 评论
