测试基础知识总结
-
目录:
第一章、软件工程学
第二章、软件测试基础
第三章、基于生命周期软件测试
第四章、软件测试分类与分级
第五章
、
软件缺陷管理
(
*
< br>)
常见缺陷状态说明
(
*
)
第六章、软件
测试过程及管理(
*
)测试计划(
*<
/p>
)
第七章、软件静态测试
第八章、动态测试
第一章、软件工程学
1.
软件的定义:
< br>软件由数据:
该程序能够具体满意地处理信息的数据结构程序:
< br>当运行时,
能够提供所要求功能和性能的指令或计算机程序集合;文档:描述程序
功能需求以及程
序如何操作和使用文档。
2.
软件危机的产生:
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需
求,从而
导致软件开发与维护过程中出现一系列严重问题的现象。
3.
软件危机的原因
1
)需求不明确
2
)缺乏正确
的理论指导
3
)软件开发规模越来越大
4
)
软件开发复杂度越来越高
4.
消除软件危机的办法
对计算机软件有
一个正确的认识
(
软件≠程序)充分认识到软件
开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同
< br>配合、共同完成的工程项目
推广使用在实践中总结出来的开发软件成功技术和方法
开发和使用更好的软件工具
5.
软件工程
方法
项目计划与估算需求分析数据结构总体设计编码、测试与维护等
工具
软件工具软件支撑环境计算机辅
助软件工程(
CASE
)等
过程
方法使用的顺序需交付的文档变更管理里程碑管理等
软件生命周期
(*)SRS
:计划,分析,设计
,编码,测试,运行和维护。
软件生命周期模型
(*)
瀑布模型:
V
模型强调软件开发的协作和速度,
将软件实现和验证有机地结合起来,
在保证较高的软件
质量情况下缩短开发周期。
迭代模型:
4.1
敏捷开发的定义是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。
敏捷开发的特点:变强调软件开发对未来可能出现的变化和不
确定性做出全面反应
早
总体目标是尽可能早地、持续地对有价值软件的交付
快
主要是用于需求模糊或快速变化的
前提下,
小型开发团队的软件开
发活动
软件开发主流技术
主机终端模式
文件服务器模式
C/S
模式
客户<
/p>
/
服务器模式
胖客户
/
瘦服务器
QQ
、微信、王者荣耀
B/S
模式
浏览器
/
服务器模式
瘦客户
/
胖服务器
Web QQ
、洛克王国
第二章、软件测试基础
(一共有三个)现代定义:是对软件需求分析、设计、编码的最终复查的一系列过程,是< p>
软件质量保证的关键步骤
目的:
1.
发现缺陷,提高质量
2.
验证是否满足需求
3.
建立软件质量的信心
3.
测试的
7
个原则:
1.
测试显示缺陷存在
2.
穷尽测试是不可能的
3.
测试尽早介入
4.
缺陷集群
性
5.
杀虫剂悖论
6.
测试活动依赖于测试背景
7.
没有失效不代表系统是可用的
缺陷的原因
1.
人本身容易犯错误
2.
时间的压力
3.
复杂的外部系统
4.
技术的革新
5.
复杂的代
码
6.
复杂的系统架构
软件测试工作
是验证软件系统是否满足软件用户的需求
测试流程
工具
商业化的测试工具:
●
测试管理工具
: HP ALM/QC
●
自动化测试工具
: HP
UFT
(
QTP & Service
Test
)
●
性能测试工具
: HP Loadrunner
●
安全测试工具
: HP
Fortify
、
WebInspect
开源测试工具:
●
Testlink
、禅道、
Mantis
、
BugZilla
、
selenium
、
Jemeter
、
JUnit
、
CppUnit
认识误区
1.
软件开发完成后进行软件测试
<
/p>
2.
软件发布后如果发现质量问题,那是软件测试人员的错
3.
软件测试是软件开发的对头
p>
4.
软件测试是没有前途的工作,只有程序员才是软件高手
5.
期望用测试自动化代替大部分人工劳动<
/p>
6.
认为软件测试文档不重要
第三章、基于生命周期软件测试
生命周期测试方法意味着测试与软件开发平行
生命周期测试应伴随整个软件开发周期,此时测试的对象不仅仅是程
序,需求、功能和设计同样要测试
软件开发的所有阶段进行测试,被设计用来减少测试成本
p>
测试与开发同步进行,有利于尽早地发现问题,同时缩短项目的开发
建设周期
2
、软件生命周期的六个阶段:
①需求:(需求阶段测试很重要)
验证和确认需求说明书、制定测试计划
测试需求、组织团队、测试计划
②设计:(包括概要设计和详细设计)
验证和确认设计文档、模型等,测试设计及评审
测试方案、测试案例等
③编程:代码、评审、搭建环境、单元测试
测试案例及缺陷等
④测试:执行测试、缺陷管理
缺陷报告和测试报告
⑤安装:安装测试、确认产品
安装程序、安装文档、用户手册等
⑥维护:培训、维护、变更管理、测试
维护手册、测试报告等
第四章、软件测试分类与分级
软件测试分类:一般分类
是否关心内部结构
白盒测试、黑盒测试、灰盒测试
开发过程级别
单元测试、集成测试、系统测试、验收测试
是否执行程序
静态测试、动态测试
执行过程是否需要人工干预
手工测试、自动化测试
测试实施组织
开发测试、用户测试、第三方测试
软
件配置缩写为
CSCI
分类
计算机软件配置项:定义
是为独立的配置管理而设计的且能
满足最终用户要求的一组软件,
简称软件配置项
软件开发过程中,代码、文档、报告等工作成果
软件配置管理
控制软件配置项的投放和变更,<
/p>
并且记录并报告配置的状态和变更要求,
验证配置
的完整性、正确性和一致性
基线
即:软件技术状态基线
任何软件配置项,一旦形成文档并审议通过,即成为基线
每个基线都是下一步开发的出发点和参考点
里程碑
人为的,时间的虚点。
质量特性分类:功能性、可靠性、可用性、效率、维护性、可
移植性
重点
非功能测试:
负载测试
性能测试
容量测试
压力测试
稳定性测试
兼容性测试
文
档测试
软件测试的分级:
第五章、软件缺陷管理(
*
)
常见缺陷状态说明(
*
)
软件缺陷定义
计算机软件或程序中存在的某种破坏正常运行能力的问题、
错误,
p>
或者隐藏的功能缺陷。
错误:
不符合文档编制与编码规定
测试过程不足
规程错误
文档编制错误
需求的不
完善定义
编码错误
逻辑设计错误
客户——开发者通信失败
对软件需求的故意偏离
缺陷基本信息
:标识
(Identifier)
报告人
报告日期
程序的名称
版本号
缺陷类型
(Type)
严重性
(Severity)
优先级
(Priority)
关键词
缺陷描述
重现步骤
结果对比
附件
1
、
按
p>
软件生命周期分类
有用户需求错误、产品需求错误、设计
错误、编码错误、数据错误、发行错误
2
、
按
p>
软件使用分类
有功能错误、性能错误、界面错误、流程错
误、数据错误、提示错误、常识错误以及其他错误
3
、
按
GB/T 15532-2008
分
类
有程序问题、文档问题、设计问
题及其它问题
优先级
High
缺陷应该立即被解决(不符合系统的设计或某一主要功能无法实现)
Middle
缺陷需要正常排队等待修复或列入软件发布清单
(某些非总要的功能未能实现,
但不影
响其他功能)
Low
缺陷可以在方便的时候被纠正(不影响系统的功能实现,如提
示信息错误,错别字等)
严重程度
Urgent
Very High
High
Medium
Low
缺陷报告的主要内容
缺陷的标题与简单描述
缺陷的基本信息
复现缺陷的操作步骤
缺陷的实际结果描述、期望的正确结果描述
注释文字和截取的缺陷图像
缺陷报告的撰写标准
准确
清晰
简洁
一致
完整
软件测试过程度量
测试覆盖率
设计测试用例的需求数
/
需求总数
测试执行率
已执行的测试用例数
/
设计的测试用例总数
测试执行通过率
执行结果为通过的测试用例数
/
p>
实际执行的测试用例数
缺陷解决率
已关闭的缺陷数
/
< br>缺陷总数
缺陷管理的意义
1.
通过推广专业的技术找到隐藏的缺陷
2.
通过准确的文档报告缺陷
3.
通过良好的沟通使缺陷尽快解决
4.
通过良好的措施减少和预防缺陷的发生
5.
通过合适的工具管理缺陷报告
6.
通过优化的流程推进缺陷的生命周期
7.
通过缺陷数据的分析及时找到问题和根源
8.
通过角色的分工促进团队协作
9.
通过明确的分级确保优先的处理
10.
通过缺陷三方会审一起做出正确决策。
< br>
软件缺陷的度量分析
统计。
缺陷管理工具
mantis
(免费)
收费:
Rational
Clear Quest
,
URTracker
,
TestDirector
免费:
Bugfree
,
Bugz
illa
第六章、软件测试过程及管理(
*
< br>)测试计划(
*
)
软件测试过程模型
开发模型
瀑布、增量、迭代、原型、敏捷、螺旋
测试模型
V
定义:不同测试阶段和开发过程期
间各阶段的对应关系
W
特点:增加软件各开发阶段中应同
步进行的验证和确认活动
V
p>
和
W
的局限性
串行活动,无法更好适应变更
线性的前后关系,无法有效支持迭代
测试完整性不足
H
的特点
测试是一个独立的流程
贯穿整个生命周期
尽早准备尽早执行
测试分层次进行,不同层次的测试
按照某个次序先后进行,也可以重复进行
测试过程中活动
需求分析
制定测试计划
设计用例
执行测试用例
追踪缺陷
测试报告评估
度量指标
测试覆盖率
已设计测试用例的需求数
/
需求总数
测试执行率
已执行的测试用例数
/
设计的测试用例总数
测试执行通过率
执行结果为通过的测试用例数
/
p>
实际执行的测试用例数
测试缺陷解决率
已关闭的缺陷数
/
< br>缺陷总数
TMM
为测试成熟度模型
TMM
的五个级别:
初始级,定义级,集成级,管理和测量级,
优化、预防缺陷和质量控制级
软件成熟度模型
(CMM)
CMM
的五个级别:
•
初始级、可重复级、定义级、管理级、优化级