【干货分享】软件测试和测试开发有什么区别?

汇新云 2019/09/11 13:07


什么是软件测试呢?


从定义来说是:验证软件功能是否满足用户的需求

软件测试是在软件投入使用之前通过手动或自动的方法对软件进行测试,以找出与预期结果不相符的地方。


在我看来,可以简单的说一下,测试可以分为两个步骤:首先运行程序,先保证程序整体的正确性;其次,检查功能是否满足用户需求。

新知图谱, 【干货分享】软件测试和测试开发有什么区别?

软件测试的目标

(1)在给定的产品中尽可能多地发现错误(或bug)。


(2)演示一个给定的软件产品与它的需求规格匹配。


(3) 使用最小的成本和努力来验证软件的质量。


(4)生成高质量的测试用例,执行有效的测试,并发布正确 有用的问题报告。

新知图谱, 【干货分享】软件测试和测试开发有什么区别?


软件研发是让产品从无到有的过程,测试的任务是发现程序中的缺陷,贯穿于软件开发的整个生命周期。


那测试与研发有什么不同呢?


不同点


1.完成的工作不同:

测试 主要由测试人 员和开发人员来执行,测试人员完成黑盒测试(功能测试),开发人员执行单元/集成测试、并同时完成调试工作。


2.难易程度不同

测试广度大、但专业度低;研发广度小、但专业度高。


3.薪资待遇不同

中小企业测试的薪资总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发和测试薪资基本无差别。


4.繁忙程度不同

一般来说测试比研发工作轻松,但敏捷模式下差距不大,在产品发布前测试的压力较大。


5.技能要求不同

测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理 解,编程能力。


新知图谱, 【干货分享】软件测试和测试开发有什么区别?


什么是测试开发?

测试开发工程师的目标有两点:质量和效率。

质量是提升产品的覆盖度,以求得更高的质量;

效率是提升产品的测试效率,以求得更快的产品交付和发布上线。

为了达到以上两点,测试开发工程师会使用各类手段以达到以上目标,包括但不限于:

(1)单元测试

(2)接口测试

(3)灰盒测试(搜狗内部将通过了解代码实现而进行的功能测试称之为灰盒测试)

(4)专项性测试(性能、压力、内存、耗电、流量)

(5)代码走查

(6)代码重构(谷歌的测试开发工程师会对代码进行重构,仅限于重构而不做功能性开发,目前在国内这一工作职责还没有推广起来。)

(7)工具开发

(8)自动化解决方案……等


新知图谱, 【干货分享】软件测试和测试开发有什么区别?


所以,测试开发工程师是一个编码能力很强的程序员,可以写功能代码;也是一个能力很强的测试者,可以测试任何产品,有能力管理他们自己的工作和工具。


普通的测试人员不需要有太强的编程技术,普通应用或是代码段能看懂就行。思考问题时要全面、细致、有原则,对产品敏感,不能跟着开发和产品走,这是测试人员的基本要求。


测试开发人员需要写测试工具,自动化测试代码,具备一定的开发编码能力,虽然不像开发那样深入地掌握一种编码语言,但对于脚本语言还是要有所掌握。


说到底,其实这两个职位都属于软件测试体系。只是软件测试工程师是纯粹的软件测试,执行执行用例。而软件测试开发工程师,是测试体系里面会使用测试工具,或者能开发测试工具从而提高测试效率的软件测试人员。


新知图谱, 【干货分享】软件测试和测试开发有什么区别?

汇新云
+ 关注

更多新知