软件测试概述
2018-08-22 本文已影响0人
QA_man
软件测试概述
软件测试的历史
- 软件测试的概念起源于上世纪70年代(197*年),软件测试随着计算机的发展而产生。早起的软件测试是软件开发过程中的一个阶段,常常有开发人员自己来完成这部分工作。直到1957年软件测试与调试区别开来,软件测试成为发现软件缺陷的活动
- 1972年Bill Hetzel博士在北卡罗来纳大学举行了首届软件测试正式会议
- 1979年Glen Ford Myers 的《软件测试的艺术》(The Art Of Software Testing)是软件测试领域第一本重要的专著,并给出软件测试的定义“测试是为了发现错误而执行的一个程序或者系统的过程”
- 直到20世纪80年代早期,软件行业开始关注软件产品质量并在公司设立软件质量保证部门QA,软件质量保证部门的只能转变为流程监控
- 20世纪90年代相继成立了各地的软件测试机构提供相应的测试服务
- 2001年后国内兴起了一大批软件测试、软件外包服务公司如:博彦科技、文思海辉、软通动力等
软件测试的概念与目的
- 软件测试正向思维:是自己确信产品是能够正常工作的,主要代表人物是Bill Hetzel博士,他于1972年在北卡罗来纳大学举行了首届软件测试正式会议,于1973年首先给出了软件测试的定义:测试就是建立一种信心,确信程序能够按照期望的设想进行。
- 软件从测试的反向思维:测试应该先验证软件是错误的,用逆向思维发现尽可能多的缺陷,主要的代表人物Glenford j Myers,他认为测试不应该着眼于验证软件是工作的,相反测试应该先验证软件是错误的,用逆向思维发现尽可能多的缺陷
- IEEE定义的软件测试:测试不单纯是一个发现错误的过程而是将测试作为软件质量保证QA的主要职能
- 广义的软件测试定义:传统软件测试定义主要关注软件运行过程中对软件进行的检查和不发现不一致的行为是狭义的概念不是测试的所有活动,为了更早的发现并解决问题,降低修改错误和缺陷的代价有必要将测试延伸到需求分析和设计阶段去,是软件测试贯穿于整个生命周期,包括测试执行之前和之后的所有阶段活动。
目的
- 以最少的人力、物力、时间找出软件中潜在的各种错误和缺陷
- 修正各种错误和缺陷提高软件质量,避免软件发布后潜在软件错误和缺陷造成隐患所带来的商业风险
- 利用测试过程中得到的测试结果和测试信息,座位后续项目开发和测试过程改进的输入避免出现重复同样的问题
- 采用高效的测试管理手段,体改软件测试的效率和软件产品质量
软件测试的对象
软件的定义是 程序、数据、文档,除了需要对程序测试还要对数据和文档进行测试
1.对编写的每个程序块进行测试:单元测试
2.模块集成后对继承在一起的模块进行测试:集成测试
- 需要检与验证软件是否满足软件需求说明书中规定的要求:确认测试
- 将继承的软件系统安装运行环境下进行验证:系统测试
- 用户实际运行环境下按照需求进行产品验证:验收测试
对软件测试的误解
- 如果发布的软件出现了质量问题,那就是软件测试人员的错
- 软件测试技术要求不高,至少比编程容易多了
- 有时间就多测一些,来不及就少测一些,要有闭环思维
- 软件测试是测试人员的事情,与开发人员无关
- 软件测试是开发后期的一个阶段
软件测试人员目前的要求
- 软件开发模型、瀑布模型、迭代模型、RUP模型、敏捷模型,项目管理流程铺流程控制、流程改进优化
- 黑盒测试:测试基础知识、测试用例设计、业务积累总结分析
- 自动化测试:app方向 uiautomator、appium等,h5方向selenium,接口自动化测试
- 后端测试:接口测试,性能测试,业务逻辑测试
- 编程语言 JAVA、Python、Ruby等
- 框架技术:Pyton Flask,Dijango、Unittest等、Java Spring Mvc Junit
- 测试工具使用,Fiddler、Charles、Jmeter、Git、工具开发等
- 服务器搭建、Nginx、Dokcer等服务器知识
软件测试的生命周期
image.pngBug的生命周期
image.png报Bug规范:
Bugfree