软件测试入门知识

来源:互联网 发布:数据库怎么查重复数据 编辑:程序博客网 时间:2024/05/22 11:36

本文章主要针对以下内容进行说明,是以提供给软件测试入门者参考.
(一)什么是软件测试
(二)为什么会有测试
(三)测试的基本流程
(四)测试的发展方向
(五)软件测试的分类

什么是软件测试(背景)

历史背景

  • 早期软件开发过程中将测试等同于调试(debug),目的是纠正软件中已经知道的故障,通常由开发人员自己完成这部分的工作,常常是等到形成代码产品已经基本完成时才进行测试。
  • 直到1957年,软件测试区别于调试成为一种发现软件缺陷的活动
  • 1972年在北卡罗莱纳大学举行了首届软件测试正式会议。
  • 1975年”测试数据选择原理”的文章在IEEE上发表,软件测试才被确定为一种研究方向。
  • 1979年,”软件测试艺术”一书定义测试为”测试是为发现错误而执行的一个程序或者系统的过程”,这是测试发展过程的里程碑。

定义测试

  • 测试:以检验产品是否满足需求为目标。
  • 软件测试:为了发现软件的缺陷而运行软件
  • 软件测试:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。
  • IEEE 标准定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
  • G.J.Myers给出的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义被软件测试业界所认可,并经常被引用。但实际上,这样的定义还不能完全反映软件测试的内涵,它仍局限于“程序测试”。随后,G.J.Myers进一步提出了有关程序测试的3个重要观点,那就是:
    • (1)测试是为了证明程序有错,而不是证明程序无错误。
    • (2)一个好的测试用例在于它能发现至今未发现的错误。
    • (3)一个成功的测试是发现了至今未发现的错误的测试。

要完整地理解软件测试,就要从不同方面和视角去辨证地审视软件测试。概括起来,软件测试就是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中存在的各种问题—与用户需求、预先的定义不一致的地方。

为什么会有测试(软件测试的目的)

测试的目的就是发现软件中的各种缺陷。

需要了解的事实是:
测试只能证明软件存在缺陷,不能证明软件不存在缺陷。
测试可以使软件中缺陷降低到一定程度,而不是彻底消灭。(缺陷可以控制在一定的范围。)
好的测试的标准是以较少的用例,时间和人力找出软件中的各种错误和缺陷,确保软件的质量。

软件测试的流程

  • 需求测试 (写测试用例)
  • 单元测试
  • 集成测试
  • 系统测试
  • 回归测试
  • 验收测试

软件测试的范围(包括但不限于)

  • 功能测试
  • 兼容性测试
  • 负载压力测试
  • 安装卸载测试(属于功能测试)
  • 安全性测试
  • 接口测试(属于功能测试)
  • 数据库测试

软件测试的方法

  • 静态测试
  • 动态测试
  • 黑盒测试
  • 白盒测试

软件测试的学习过程(需要掌握的知识)

  1. 测试理论
  2. 缺陷管理
  3. 项目管理工具(禅道,bugfree,jira)
  4. 数据库
  5. 网络知识
  6. Linux知识(扩展)(传统互联网)
  7. 性能,自动化工具