一、什么是软件测试?
- 定义:软件测试就是验证软件产品是否满足用户的需求,测试是一个过程,是相关人员去验证软件执行结果是否符合用户期望。
- 软件测试的特点:软件测试只是一个样本实验,具有不可穷尽性。
二、软件测试的岗位
- 测试工程师:测试用例设计、执行测试用例、提交bug......
- 测试+开发工程师:除了测试工程师做的工作之外,开发(测试脚本、测试工具)
- 游戏测试:测试的软件是游戏
- 编写自动化测试用例:编写自动化测试化测试用例,开发测试框架
三、开发和测试的区别
- 开发和测试工作内容之间的区别:开发通过各种编程语言等专业技能开发软件(投入市场用户使用)开发人改bug测试,设计测试用例,编写自动化测试工具。
开发是实现软件
测试是一个完美主义者,软件是否符合用户使用期望 - 技能要求区别
测试:技能广度要求,UI自动化(Selenium,Appium,AirTest。。。),接口测试(postman,Jmter),抓包工具(Fiddler,Charles),性能测试(Loadrunner,Jmter)
开发:技能深度要求,以为开发人员要写出高效的代码 - 发展前景:
测试:初级 -- 中级 -- 高级 -- 架构师 -- 项目经理、产品经理
开发:初级开发 -- 中级开发 -- 高级开发 -- 架构师 -- CTO
四、调试和测试之间的区别
- 阶段:调试:开发完成之后或这边开发变调试
测试:测试在开发之前就已经介入,测试在软件需求阶段就已经开始了,测试伴随着软件的整个生命,有产品的地方就一定有测试。 - 目的:调试:发现问题,解决问题
测试:发现问题,提供解决方案 - 人员区别:调试:开发进行调试
测试:开发+测试执行,通常情况下黑盒测试工程师完成,部分的白盒测试和系统测试有开发完成 - 手段区别:调试:idea打断点调试,分析代码逻辑。
测试:等价类划分、边界值、判定表、语句覆盖、条件覆盖、语句条件覆盖
五、测试人员需要具备的素质
- 软实力相关:沟通能力、文字表达能力、责任担当、抗压力
- 技能相关:设计测试用例、编码能力、快速学习能力、操作系统、网络、数据库。