「测试基础」软件测试基础知识
软件测试的基本基础
软件测试的定义
- 概念
- 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
- 内容
- 部署测试使用的环境
- 执行测试
- 提交发现问题、追踪发现问题的修复状态
- 测试结果报告
软件测试的意义
能够提前发现潜在的问题,避免出现损失、降低风险
- 发现一些可以通过测试避免的开发风险。
- 实施测试来降低所发现的风险。
- 确定测试何时可以结束。
- 在开发项目的过程中将测试看作是一个标准项目。
为什么需要软件测试
- 开发承担了项目开发任务,没有足够精力去进行测试
- 开发承担的产品中,有很多别人写的代码
- 开发不具备测试思维,很难发现自己写的问题
软件测试目的
- 测试是为了发现程序中的错误而执行程序的过程。
- 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
- 成功的测试是发现了至今为止尚未发现的错误的测试。
- 测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
- 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。
- 没有发现错误的测试也是有价值的,完整的测试是评定 软件质量的一种方法。
- 根据测试目的的不同,还有 回归测试、 压力测试、 性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到的处理能力和是否达到预期的处理能力等。
软件测试的原则
- 测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
- 程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
- 设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态,如网络异常中断、电源断电等。
- 应该充分注意测试中的群集现象。
- 对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
- 制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
- 妥善保存测试计划、 测试用例、出错统计和最终分析报告,为维护提供方便。
软件测试的对象
- 代码
- 相关文档(操作手册、需求文档等)
- 数据
- 程序(源程序,目标程序)
软件测试的职业规划
职业规划
- 初级软件测试工程师
- 具备软件测试理论和功能测试能力的人才
- 中级软件测试工程师
- 在初级基础上,增加Liunx基础,数据库急基础,Python基础(语言基础),并可以使用工具进行部分自动化测试
- 高级软件测试工程师
- 在中级的基础上,增加了项目管理、团队管理的知识,并需要在某类技术或者业务上具备非常熟练的能力。
- 资深软件测试工程师
- 在高级的基础上,需要具备带领团队的经验,上佳的表达能力等以及有足够的技术广度和深度,深入应用某个领域
- 专家软件测试
- 在资深的基础上,在某个测试领域上有自己独到的简介,并且解决许多相关问题,有一定的名声。
- 软件测试顾问
- 说明:测试人员可考国际认证的ISQTB证书。
岗位规划
- 功能测试
- 最基础的测试岗位
- 自动化测试
- 能够使用工具或者代码进行测试自动化
- 性能测试
- 在掌握自动化测试的基础上,能够进行性能测试。
- 安全测试
- 安全测试知识分散,对底层理解要求高。一般有专职的岗位
- 非专职岗位,可利用工具进行一些建议的安全测试,发现一些常识性的安全问题
管理规划
测试关联岗位
- 测试运维
- 测试右移产生的岗位,主要是为了定位生产环境的BUG
- 测试开发
- 测试左移产生的岗位,主要是提高测试之前的代码质量
内部转型
以上内容来做拉勾教育自动化测试训练营,笔记整理。