一、什么是软件测试
- 什么是软件测试:测试人员去验证某个软件是否符合用户的需求,包括了功能和非功能方面的测试
- 我们怎么知道当前是符合标准的:根据需求判断
- 软件测试的特点:软件测试只是一个样本试验,具有不可穷尽性
- 为什么不可穷尽:比如我们可以对一个软件的功能举例列出很多的测试用例,但我们无法保证把所有的测试用例都写出来
- 什么是软件测试:测试用例可以理解为针对这个功能的情境。如【账号、密码都正确,登录成功】、【账号正确,密码错误,登录失败】、【账号错误、密码错误,登录失败】……
- 为什么要有测试,只有开发人员行不行:不行,因为测试是用来保障软件质量,给开发人员找bug的
- 严格来说,如果一个项目没有经过测试是不能发布的(软件不能开发完成后,直接上线),需要测试来排查问题(虽然测试无法把所有的问题都找到,但至少不会出现非常严重的问题)
二、软件测试和研发的区别
- 工作内容:
- 开发:通过各种编程语言开发软件
- 测试:通过各种手段测试软件是否符合用户需求(写测试用例、执行测试、自动化测试、性能测试、开发测试平台……)
- 技术上区别:
- 开发:技术要求深而精,比如开发人员对前端知识就不是很了解
- 测试:要求掌握各种测试工具,技术要求广
- 前景:
- 开发:初级开发工程师 -> 中级 -> 高级 -> 架构师 -> CTO
- 测试:初级测试工程师 -> 中级 -> 高级 -> 架构师 -> 项目经理
三、调试和测试的区别
- 目的不同:
- 调试:开发人员发现 bug 并解决
- 测试:测试人员发现 bug 并交给开发人员去解决,将 bug 提交到 bug库 里,由开发人员去解决,解决完后测试人员再去验证
- 人员不同:
- 调试:开发人员负责调试
- 测试:测试人员 + 开发人员(黑盒测试主要由测试人员完成,单元/集成测试主要由测试人员执行)
- 阶段不同:
- 调试:一般在开发阶段,开发人员写完一个模块就去测试一下,边写代码边测试
- 测试:贯穿整个软件生命周期,在还没有代码时,测试人员就已经在测试一些其他的东西了
- 手段不同:
- 调试:debug
- 测试:有很多方式,比如黑盒测试方法,白盒测试方法
三、软件测试的岗位
- 测试工程师:根据需求写测试用例,执行测试,发现BUG
- 测试开发:根据需求写测试用例,执行测试,发现BUG,开发自动化测试用例,开发测试平台(提高工作效率,保障软件质量)
- 测试工程师和测试开发其实只是概念上的区别,实际上,测试工程师也会干测试开发的活
- 游戏测试:测试对象游戏
- 自动化测试:写自动化测试用例,写自动化测试平台
- 性能测试、安全测试:不推荐,要求太高
三、优秀的测试人员所应具备的素质
- 硬实力:
- 编码能力
- 较强的学习能力
- 文字表达能力
- 软实力:
- 团队协作能力
- 沟通能力
- 抗压力……