本文章主要针对以下内容进行说明,是以提供给软件测试入门者参考.
(一)什么是软件测试
(二)为什么会有测试
(三)测试的基本流程
(四)测试的发展方向
(五)软件测试的分类
什么是软件测试(背景)
历史背景
- 早期软件开发过程中将测试等同于调试(debug),目的是纠正软件中已经知道的故障,通常由开发人员自己完成这部分的工作,常常是等到形成代码产品已经基本完成时才进行测试。
- 直到1957年,软件测试区别于调试成为一种发现软件缺陷的活动
- 1972年在北卡罗莱纳大学举行了首届软件测试正式会议。
- 1975年”测试数据选择原理”的文章在IEEE上发表,软件测试才被确定为一种研究方向。
- 1979年,”软件测试艺术”一书定义测试为”测试是为发现错误而执行的一个程序或者系统的过程”,这是测试发展过程的里程碑。
定义测试
- 测试:以检验产品是否满足需求为目标。
- 软件测试:为了发现软件的缺陷而运行软件
- 软件测试:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。
- IEEE 标准定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
- G.J.Myers给出的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义被软件测试业界所认可,并经常被引用。但实际上,这样的定义还不能完全反映软件测试的内涵,它仍局限于“程序测试”。随后,G.J.Myers进一步提出了有关程序测试的3个重要观点,那就是:
- (1)测试是为了证明程序有错,而不是证明程序无错误。
- (2)一个好的测试用例在于它能发现至今未发现的错误。
- (3)一个成功的测试是发现了至今未发现的错误的测试。
要完整地理解软件测试,就要从不同方面和视角去辨证地审视软件测试。概括起来,软件测试就是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中存在的各种问题—与用户需求、预先的定义不一致的地方。
为什么会有测试(软件测试的目的)
测试的目的就是发现软件中的各种缺陷。
需要了解的事实是:
测试只能证明软件存在缺陷,不能证明软件不存在缺陷。
测试可以使软件中缺陷降低到一定程度,而不是彻底消灭。(缺陷可以控制在一定的范围。)
好的测试的标准是以较少的用例,时间和人力找出软件中的各种错误和缺陷,确保软件的质量。
软件测试的流程
- 需求测试 (写测试用例)
- 单元测试
- 集成测试
- 系统测试
- 回归测试
- 验收测试
软件测试的范围(包括但不限于)
- 功能测试
- 兼容性测试
- 负载压力测试
- 安装卸载测试(属于功能测试)
- 安全性测试
- 接口测试(属于功能测试)
- 数据库测试
软件测试的方法
- 静态测试
- 动态测试
- 黑盒测试
- 白盒测试
软件测试的学习过程(需要掌握的知识)
- 测试理论
- 缺陷管理
- 项目管理工具(禅道,bugfree,jira)
- 数据库
- 网络知识
- Linux知识(扩展)(传统互联网)
- 性能,自动化工具