1、软件测试的概念
维基百科 :是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足实
际要求进行评估的过程。
IEEE1983 :是使用人工或自动手段对系统运行或测试的过程,其目的在于检测系统是否满足规定的需求
,或者搞清楚预期结果与实际结果之间的差别。
2、软件测试的目标
用户角度:通过软件测试活动来暴露软件中隐藏的错误和问题,以便考虑是否可以接受该产品。
软件开发者的角度:通过软件测试活动来证明软件不存在错误和问题,验证该软件已经正确地实现了
客户的要求,确立人们符软件质量的信心。
G.J.Myers的观点
软件测试时为了发现程序中的错误而执行程序的过程。
好的或成功的测试时发现了至今为止尚未发现的错误的测试。
总结:
1、确保交付的产品符合用户的需求。
满足用户需求是产品成功的关键。
2、在产品交付前尽可能多的发现和修复缺陷。
尽可能多的发现缺陷。
跟踪确保修复缺陷。
最终目的:提升产品的质量
3、软件测试意义
技术层面
软件测试以检验和衡量产品是否满足需求为目标,是提升软件质量的重要手段之一(但不是唯一)
经济和社会层面
高质量的软件可以提高生产力,促进社会进步,提高大众的生活品质。
4、软件测试和开发的关系
相辅相成,缺一不可
5、 软件测试工程师的技能要求
个人素养 :责任心 沟通和协作 耐心和细心 态度和精神
专业技能:软件工程 软件测试流程 软件测试技术 软件测试管理 软件开发基础
基础知识: 计算机硬件 操作系统 中间件 数据库 计算机网络
业务能力:产品需求 业务逻辑 用户思维
6、软件测试岗位
初级测试工程师-中级测试工程师-高级测试工程师
技术路线:资深测试工程师 测试开发工程师 测试架构师
管理路线:测试主管 测试经理 项目经理
质量保证工程师 品质工程师 质量经理
7、软件生命周期
从诞生到淘汰的全部过程
软件生命周期的主要阶段
计划阶段(立项阶段)
需求阶段(很关键,需求分析师:用户需求到产品需求的转变)需求规格说明书
设计阶段(软件架构师,设计师;层次结构图,架构图)
开发和测试阶段(测试驱动开发)
部署和维护阶段(实施人员,售后,技术支持,软件维护工程师)
升级和淘汰阶段
8、软件开发模型
清晰、直观的表达软件开发的全过程,明确规定要完成的护腰活动和任务,,用来作为软件项目的基
础
经典的软件开发模型:瀑布模型,螺旋模型,敏捷开发
瀑布模型:计划-需求-设计-编码-测试-维护
优点:明确划分了软件生命周期的各个环节
有清晰的工作流程,便于分工协作
缺点:线性的开发流程,带来巨大的风险
强调活动和阶段的衔接,开发周期缺乏弹性
厌恶需求变更和开发活动中的各种不确定性
螺旋模型:兼顾原型模型和瀑布模型的优点
9、软件测试流程
测试计划阶段:测试目标,范围,策略和相关技术
测试设计阶段:设计测试用例,环境和脚本
测试实施阶段:使用人工或自动手段执行测试;报告发现的缺陷并跟踪缺陷的处理
测试评审阶段:总结和审议测试的过程和结果
10、软件测试的分类
基于策略分类
- 黑盒测试和白盒测试
- 手动测试和自动测试
基于阶段分类
- 单元测试、集成测试、系统测试、验收测试
- 基于特性分类
功能测试
效率测试
- 特定性能测试
- 负载测试、
- 压力测试、
- 疲劳强度测试、
- 资源利用率测试、
- 性能可扩展性测试
易用性测试:功能易用性测试、界面易用性测试
- 安全性测试
- 故障转移和恢复测试
- 可移植性测试:安装卸载测试、兼容性测试、可替代性测试、可扩展性测试
文档测试
本地化测试。。。
黑盒测试:也称为功能测试或数据驱动测试;是对软件界面和功能进行的测试
需要需求规格说明书、用户手册等相关说明文档
白盒测试:也称为结构测试或逻辑驱动测试
是对软件的源代码和架构进行的测试
需要源代码,流程图等相关设计文档
手动测试:是有人工驱动进行的测试
测试的核心是人,需要发挥人的主观能动性,借助经验和判断来完成测试工作
自动测试:是由设备和工具驱动进行的测试
测试的核心仍然是人,由测试人员编制脚本驱动测试工具自动完成测试工作,仍然需
要人的干预
单元测试:也称为模块测试,是对软件的最小可测单元进行的测试活动
集成测试:(接口、数据结构)也称为组装测试或联合测试,是在单测试的基础上,将模块按照设计
要求组装成系统或者子系统,再进行的测试活动。
系统测试:(环境)是将软件与计算机硬件、、支持软年、数据和人员等要素结合在一起,针对整个
产品进行的测试活动。
验收测试:也称交付测试,是按照验收依据对整个系统进行的测试活动
11、测试计划的定义、作用和意义
测试计划阶段的主要活动:识别测试任务,定义测试目标以及为了实现测试目标和任务确定必要的测
试活动
测试计划是一个叙述预定的测试活动的范围、途径。资源及进度安排的文档。
测试工程师:测什么,怎么测。测到啥程度
测试经理:周期和进度,资源分配,质量管控
凡事预则立,不预则废
测试工程师:了解项目和测试活动的整体情况;明确测试策略、方法、范围、标准和约束等内容
明确自身和团队的测试任务和目标
12、测试计划的核心内容
产品概述,测试目标,测试范围,测试策略,资源配置,测试周期,风险分析
估算方法
1、历史数据推断
2、同行专家推断
3、需求细化分析(功能点法)
估算常用算法
中值估算法:将历史数据按大小顺序排列取中值
三点估算法:(乐观+悲观+最可能*4)/6
扑克牌估算法:取自敏捷开发中的估算方法
资源配置:人力资源,非人力资源(硬件资源,软件资源,网络环境,测试工具)
风险:指的是世间、危险、威胁或特殊情况等发生的可能性以及由此产生的不可预料的后果
客观性风险
各种常见的项目风险
测试活动无法如期推进。。。
开发团队不能如期发布版本
测试活动无法如期推进。。。
开发团队不能如期发布版本
测试需要的环境、数据、考本没能如期准备完成
测试团队的人员缺失,迟迟不到位
待测软件的冒烟测试都没过,必须打回重发
少数难以修复的缺陷造成被测软件的某些功能迟迟无法测试
团队的整理素质、熟练度和技术水平。。。
对被测软件不熟悉,对测试环境和工具不熟悉
其他紧急项目突然抽调人手
软件质量低下导致测试无法结束
现存的缺陷迟迟得不到修复
软件的多项指标达不到需求
浙公网安备 33010602011771号