一、软件测试的概念
通俗理解:软件测试就是找BUG,发现缺陷。
概念:软件测试就是验证软件产品特性是否满足用户的需求。
比如说在刷题过程中,我们做完了题目,还需要再检查一遍,这就是在进行“测试”。
特点:软件测试只是一个样本试验,具有不可穷尽性。
二、软件测试和开发、调试的区别
软件测试VS开发:
开发对技能的要求专业度高,技能要求不广泛(专一);
测试对技能要求比较广泛(业务能力、设计和架构分析能力、沟通能力、测试手段和工具使用、用户模型分析和理解。编程能力等),但是专业度要求不高。
软件测试VS调试
目的不同:
测试(Testing):发现程序的缺陷。验证软件是否实现了它应该实现的功能。
调试(Debug):定位并且解决程序中的问题。软件开发人员验证软件是否实现了他想让软件实现的功能。
参与角色不同:
测试主要是由测试人员和开发人员来执行:黑盒测试主要由测试人员完成,单元/集成测试主要由开发人员执行;调试由开发人员完成。
执行的阶段不同:
测试贯穿整个软件开发生命周期,调试一般在开发阶段。
三、软件测试相关岗位
软件测试工程师:工程师的主要工作一般包含需求分析、编写测试计划和测试方案、设计测试用例、执行测试用例、跟踪BUG、编写测试报告等;
测试开发工程师:根据项目的特点来开发一些自动化测试的脚本,或自动化测试的工具,或者是软件测试工作中用到的提高工作效率的小工具什么的,从而能够更有效地进行测试,提高软件产品的质量。测试开发工程师工作的目的就是为了更高效,更快捷地让测试工程师进行测试工作;测试开发岗位一般要求一定的开发能力,解决问题的能力尤为重要。
性能测试工程师:针对系统进行性能测试,包括使用工具和编写性能自动化测试脚本。
安全测试工程师:主要分析产品可能会出现的安全问题,做各个方面的渗透测试,提高产品的安全性
其它:系统测试工程师,嵌入式测试工程师,硬件测试工程师。
四、一个优秀的软件测试人员所具备的素质
(1)综合能力:沟通能力、编程能力、学习能力、文字描述能力(写清BUG);
(2)自动化开发能力(开发自动化脚本和工具的能力);
(3)编写测试用例的能力,快速学习能力;
(4)探索性思维和发散性思维;
(5)兴趣;
(6)具备责任感和一定的抗压能力;