【测试】软件测试和开发的区别
工作内容
对于绝大多数走开发岗位的同学进入企业后做的都是业务开发(面试造飞机,工作拧螺丝),而测试人员进入企业做的是就是业务测试。
开发人员:
- 通过一些编程语言,如C、C++、C#、Java、Python、PHP实现软件的特性
- 修改bug
测试人员:
编写测试⽤例,执⾏测试⽤例,发现软件的缺陷,验收缺陷... 利⽤测试⼯具保障软件的质量
难易程度
开发:
- 应届⽣要求掌握语⾔基础、开发框架、数据库、数据结构、Linux等课程
- 在职⼈员还需掌握更多中间件如:Redis、rabbitMQ、ES等
- 要求掌握以上技术并能运⽤在代码开发中
测试:
- 应届⽣要求掌握语⾔基础、开发框架、数据库、数据结构、Linux等课程
- 掌握测试技能:测试概念、设计测试⽤例、执⾏测试等
- 在职⼈员还需掌握更多中间件如:Redis、rabbitMQ、ES等
开发人员要写代码,测试人员要测试代码/程序。
总结:开发广度小,专业度高。测试广度大,专业度相对较低,大型互联网企业对测试人员的专业要求可能跟开发差不多(现在大厂对于测试人员的技术能力要求甚至要比开发还要高)。
工作环境
同一个业务线上,测试人员和开发人员,通常都是坐在一起的,因为测试人员和开发人员的沟通比较频繁,所以测试人员工作环境与工作设备基本是一样的。
薪水
- 中小企业总体比研发低,自动化等专业测试和研发基本无差距。
- 大厂研发测试薪资基本无差别。
开发和测试的薪资并无明显区别,最终都要以个人能力来评估。
调试和测试的区别
测试人员经常会进行测试工作,而开发人员进行调试动作。调试和测试是同一个含义吗?
维度 | 调试 | 测试 |
---|---|---|
目的 | 调试的任务是定位并且解决程序中的问题 | 测试的任务是发现程序中的缺陷 |
执行阶段 | 主要由开发人员完成 | 测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员来完成,单元/集成测试主要由开发人员来完成 |
执行阶段 | 开发阶段 | 测试贯穿整个软件开发声明周期 |
高频面试题
- 走测试岗位为什么还需要学习开发知识?
- 测试也需要编写代码,如自动化测试、性能测试、开发测试效率工具等。测试人员需要能够看懂代码、了解开发框架。
- 学好开发知识能够提高软件测试质量。通过查看代码中数据走向能够更好的从代码层面去发现问题。