【软件测试】初识软件测试

软件测试的基本概念

什么是测试?

概念:是一个过程,测试人员验证软件的特性是否符合需求的过程。

特点:软件测试只是一个样本试验,具有不可穷尽性

测试是保障软件质量的,有很多公司把测试部门叫做质量保障部门。

测试和开发的区别

工作内容:

  • 开发:业务主要以编码为主,通过不同的编程语言,根据用户需求,最终作出软件。
  • 测试:编写测试用例,执行和发送测试报告。编写自动化测试用例,编写相关的测试工具。

技能区别:

  • 测试:技能广度的掌握
    • 测试人员主要对产品进行全方位的测试,外观是否好看,WEB的UI自动化测试,APP的UI自动化,后端的接口测试,性能测试,安全测试……
  • 开发:技能深度的掌握
    • 开发要写出高效的代码

发展前景:

  • 开发:初级开发工程师 ->中级开发工程师 -> 高级开发工程师 -> 架构师 > CTO(首席技术官)
  • 测试:初级测试工程师 ->中级测试工程师 -> 高级测试工程师 ->架构师 ->项目经理

测试开发和软件测试的区别?

  • 测试工程师: 功能测试比较多,设计测试用例,执行测试用例,涉及到的开发工作内容较少的
  • 测试开发工程师: 测试工程师的工作内容上加了一些开发工作(开发测试用例,开发测试工具,开发出来的测试工具让测试人员用,提高测试效率)

测试开发和软件开发的软件有什么区别?

  • 测试开发,开发出来的软件是测试人员使用。
  • 软件开发出来的软件面向的对象是外部对像。

测试和调试的区别

目的:

  • 调试:发现问题并解决问题
  • 测试:发现问题

阶段:

  • 调试:开发的时候才进行调试
  • 测试:伴随着整个软件生命周期,测试介入的时间比调试早

人员:

  • 开发自己调试
  • 测试+开发执行(通常情况下,黑盒测试由测试人员执行,部分白盒测试和系统测试是由开发人员执行的)

手段:

  • 调试:debug,分析代码逻辑
  • 测试:等价类划分法,边界值法

优秀测试人员应该具备的素质

技能:

  • 测试用例设计能力
  • 编程能力 (编写测试工具,自动化测试用例)
  • 技术快速学习的能力 (C语言,python,Java)
  • 业务快速学习能力

非技能:

  • 一个项目是一堆人写的 (沟通,合作)
  • 文字表达能力 (测试用例文字写出来的,编写测试文档,BUG)
  • 抗压能力 (3天,1天测完)
  • 责任感

1. 什么是需求

这个人想做什么事情,比如:不想学习了,想休息一会儿。

需求的定义:

  • 用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成
    的任务。该需求一般比较简略,就是一句话
  • 软件需求:通过用户需求转化而成的文档该需求会详细描述开发人员必须实现的软件功能。 (PM产品经理写的)

开发一个产品,或者测试一个产品,需要拿着软件需求进行测试/开发。软件需求是测试人员进行测试工作的基本依据

用户需求就是一句话,软件需求是一个文档(详细描述用户需求如何实现)。日常工作中我们通常是用软件需求进行开发/测试。

为什么有需求:软件开发和软件测试工作的目标。

测试人员眼里的需求:

在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出
每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。
过程如下:业务需求—>软件功能需求点—>测试需求点—>测试用例

以用户登录为例:

【软件测试】初识软件测试_第1张图片

如何深入了解需求:

测试工程师在需求分析和设计阶段就开始介入 。参加需求评审会议,查阅文档,积极沟通。

测试用例

概念:是为了实施测试而向被测试的系统提供的一组集合 (测试环境,测试数据,预期结果,操作步骤).

测试用例解决了两大问题:测什么,怎么测。

为什么有测试用例:

  • 提高测试人员的工作效率,降低测试人员工作的重复性问题。
  • 测试用例是建立自动化测试的基础(自动化就是把测试人员双手解放,让代码代替人员执行测试)

bug

概念:当且仅当软件需求规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。 (预期结果!=执行结果)

当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。

软件的生命周期

需求->计划->编码->测试->上线->维护

  • 需求:确定软件要做成什么样(也要判断分析需求是否合理,需求是否完整)
  • 计划:确定软件什么时候开始开发,什么是时候开始测试,什么时候结束开发,什么时候结束测试,对应的测试人员,开发人员,产品经理…
  • 编码:通过软件需求实现软件特性 (写代码)
  • 测试:测试人员测试软件是否有缺陷,编写测试报告。
  • 上线:将项目推上线上环境,让用户可以访问到
  • 维护:项目如果在线上出现问题,此时测试人员协助开发人员定位问题,解决问题。项目还需要优化,测试人员,开发人员需要对项目进行不断地优化。

你可能感兴趣的:(软件测试,测试)