软件测试是在软件投入使用之前通过手动或自动的方法对软件进行测试,以找出与预期结果不相符的地方。
顾名思义,软件测试就是在规定的条件下对一个产品或程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

测试工程师主要工作内容是检查软件有没有Bug,是否具有稳定性,并写出相应的测试计划、测试规范、测试用例、测试数据、测试报告,他们在一个项目中担当类似“质量管理”的角色,及时纠错及时更正,确保产品的正常运作。
在我看来,可以简单的说一下,测试可以分为两个步骤:首先运行程序,先保证程序整体的正确性;其次,检查功能是否满足用户需求。
二、软件测试的目标
(1)在给定的产品中尽可能多地发现错误(或bug)。
(2)演示一个给定的软件产品与它的需求规格匹配。
(3) 使用最小的成本和努力来验证软件的质量。
(4)生成高质量的测试用例,执行有效的测试,并发布正确和有用的问题报告。
软件研发是让产品从无到有的过程,测试的任务是发现程序中的缺陷,贯穿于软件开发的整个生命周期。
三、那测试与研发有什么不同呢?
不同点
1.完成的工作不同:
测试主要由测试人员和开发人员来执行,测试人员完成黑盒测试(功能测试),开发人员执行单元/集成测试、并同时完成调试工作。
2.难易程度不同
测试广度大、但专业度低;研发广度小、但专业度高。
3.薪资待遇不同
中小企业测试的薪资总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发和测试薪资基本无差别。
4.繁忙程度不同
一般来说测试比研发工作轻松,但敏捷模式下差距不大,在产品发布前测试的压力较大。
5.技能要求不同
测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理 解,编程能力。
四、什么是测试开发?
测试开发工程师的目标有两点:质量和效率。
质量是提升产品的覆盖度,以求得更高的质量;
效率是提升产品的测试效率,以求得更快的产品交付和发布上线。
为了达到以上两点,测试开发工程师会使用各类手段以达到以上目标,包括但不限于:
(1)单元测试
(2)接口测试
(3)灰盒测试(搜狗内部将通过了解代码实现而进行的功能测试称之为灰盒测试)
(4)专项性测试(性能、压力、内存、耗电、流量)
↓↓↓