软件测试的学习_软件测试学习
软件测试的学习由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件测试学习”。
软件测试学习
一、软件测试方法:白盒测试、黑盒测试、灰盒测试
二、软件测试阶段:
执行人测试阶段测试方法
开发人员—>1.单元测试(白盒测试)
测试人员—>2.集成测试(黑盒+白盒测试)
测试人员—>3.系统测试(黑盒多)
第三方—>4.验收测试(黑盒多)
验收测试包括:正式验收测试、alpha测试、beta测试三种。
系统测试包括:功能测试、性能测试、界面测试、安全测试、配置测试、兼容测试、回归测试等。
三、软件各种测试的定义:
白盒测试:程序内部的结构测试,也叫结构测试或逻辑驱动测试,对程序所有逻辑路径进行测试。
白盒测试的主要方法:逻辑驱动测试和基本路径测试。
白盒测试主要对程序模块进行如下检查:
1.对程序模块所有独立的执行路径至少测试一遍。
2.多所有逻辑判定,取“真”与取“假”,的两种情况都至少测试一遍。
3.在循环的边界和运行的边界内执行循环体。
4.测试内部数据结构的有效性,等等。
黑盒测试:也叫数据驱动测试,主要是基于需求分析对系统的功能进行测试。
黑盒测试的主要方法:等价类划分、边界值分析、因果图、场景法、错误推测法
※(测试用例设计所采用的方法就是黑盒测试的主要方法)
黑盒测试为了发现几类错误:
1.在接口上,输入是否正确接收,输出结果是否正确(集成测试)
2.功能是否有遗漏,是否正确(系统测试-功能)
3.性能是否能满足要求(系统测试-性能)
4.是否有数据结构错误或外部信息(例如数据文件)访问错误(系统测试-兼容)
5.是否有初始化或终止性错误(系统测试-安全)
单元测试:对代码的运行测试(也叫白盒测试),用于判定某个特定条件(或场景)下某个特定函数的行为。集成测试:(也叫组装测试,联合测试),是单元测试的逻辑扩展。模块与模块之间接口的测试。
集成测试的策略:
1.模块与模块连接时,穿越模块接口的数据是否丢失。
2.各个子模块组合起来,是否达到预期要求的父功能。
3.一个模块的功能是否对另一个模块的功能产生不利影响。
4.单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
5.全局数据结构是否有问题。
系统测试:是将测试的子系统装配成一个完整的系统来测试
系统测试的目的:对最终软件系统进行全面的测试,确保最终软件系统满足产品的需求并遵循系
统设计。
验收测试:alpha测试、beta测试、第三方验收测试
回归测试:对系统的新版本执行上一版本的测试用例检验是否通过。也可以说对于修改后新代码进行测试。
回归测试:作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试
功能测试:也叫黑盒测试,利用黑盒测试法进行动态测试,根据需求分析看系统是否能达到预期结果。性能测试:也叫压力测试,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
界面测试:测试界面是否美观,是否能让用户满意,操作功能是否合理。
安全测试:检查系统对非法侵入的防范能力(破译密码、保护机制)。
配置测试:搭环境时,进行的参数配置是否合理。
兼容测试:与其他软件或浏览器是否发生冲突。
四、测试活动的生命周期是什么(也可说成测试流程是什么)?
是指从测试项目计划建立到Bug提交的整个过程。
包括五个阶段:
1、测试项目计划
2、测试需求分析
3、测试用例编写
4、测试用例执行
5、Bug提交
(总结:测试的集成测试阶段和系统测试阶段,两个阶段会运用“测试活动生命周期”来完成)
例如:集成测试→上面的五个阶段(测试项目计划除外)
系统测试→上面的五个阶段(测试项目计划除外)
软件测试项目计划的目的、内容:(对应阶段1)
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试
周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法
和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试策略和测试方法(最
好是能先评审)
软件测试项目计划从什么时候开始的,为什么?(对应阶段1)测试过程测试过程
软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺
陷发现的越晚,修复它所花费的成本就越大. 测试用例编写的内容:(也可以说成是缺陷测试报告的组成:)(对应阶段3)
简单说分三部分,测试步骤、数据输入、预期结果
缺陷测试报告的组成:缺陷的标题,缺陷的基本信息,复现缺陷的操作步骤,缺陷实际结果的描述,期望正确结果的描述,注释文字和截取的缺陷图像
缺陷的生命周期(也可以说成是Bug的管理流程)(对应阶段5)
最简单的缺陷生命周期:
发现—打开:发现缺陷提交给开发人员
打开—修复:开发人员在现,修复缺陷,然后提交测试人员去验证
修复—关闭:测试人员验证修复的软件,关闭已不存在的缺陷。
复杂的缺陷生命周期:
测试人员提交Bug入库(QC),错误状态为new
高级测试人员验证错误
验证错误QC状态验证open状态下错误QC状态
高级测试人员是open开发人员是并修复fixed
高级测试人员不是declind不是declind
是不能修复留下文字说明保存保存Bug为open对于不能解决和延期解决的bug,不能让开发人员自己决定,一般要报告给测试经理。
五、测试结束的标准是什么:(对应测试活动生命周期记忆)
基于“项目计划”的原则(对应阶段1)
基于“测试阶段”的原则(对应阶段2)
基于“测试用例”的原则(对应阶段3)
基于“覆盖率”的原则(对应阶段4)
基于“缺陷收敛趋势”的原则(对应阶段5)
基于“缺陷修复率”的原则(对应阶段5)
基于“缺陷度量”的原则(对应阶段5)
基于“验收测试”的原则
基于“质量成本”的原则
基于“测试行业经验”的原则
六、测试工具:
测试Bug的管理工具:TD、QC、BugFree
功能测试管理工具:QTP
性能测试管理工具:LoadRunner
[TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTest Profeional]:用于创建功能和回归测试。
[LoadRunner]:预测系统行为和性能的负载测试工具
七、软件测试的相关概念:
软件测试的对象:需求规格说明书、概要设计规格说明书、详细设计规格说明书、源代码程序
软件测试:检测系统预期结果与实际结果之间的差别,发现系统中的Bug。
软件测试与QA的区别:
QA:是以第三方的姿态,孤立于项目组以外的身份,对整个开发进行评审,QA负责对每个阶段的软件文档审
核。
软件测试的目的:
1.发现代码错误(单元测试)
2.一个成功的测试用例,在于发现至今未发现的错误
3.一个成功的测试用例,在于发现至今未发现错误的测试
4.依据需求分析确保产品的所有功能,并且用户访问的所有功能附有书面说明书。(系统测试-功能)
5.满足性能和效率的要求(系统测试-性能)
6.适应用户的环境(系统测试-兼容)
软件测试的原则:
1.应尽早执行,并贯穿于整个软件生命周期。(软件的生命周期)
2.严格执行测试计划(软件的生命周期-测试项目计划)
3.应追溯需求(软件的生命周期-测试需求分析)
4.穷举例是不能的,要遵循good-enough原则(软件的生命周期-测试用例编写)
5.关注缺陷的修复(软件的生命周期-Bug提交)
6.检查程序是否做了不该做的(单元测试)
7.必须确定预期结果(系统测试-功能)
8.应由第三方来构造(验收测试)
八、v模型:
V模型:揭示了软件测试活动分层和分阶段的本质特性。
如:集成测试对应概要设计
集成测试计划和集成测试说明文档的编写:可以在概要设计阶段就可以开始编写,只要在集成测试实施前完 成即可。
V模型还有一点意义:1)在需求分析阶段 : 编写测试用例,可以发现需求文档本身的缺陷,这样就能尽早把需
求的缺陷消除,避免使缺陷残留到下一个阶段中。
2)在概要设计阶段:编写集成测试用例也会间接地地图软件设计质量。
总结:开发人员软件开发阶段:用户需求、需求分析与系统设计、概要设计、详细设计、编码
(集成、实施、交付)
测试人员软件测试阶段:验收测试准备、系统测试准备、集成测试准备、单元测试准备、单元测试
(集成测试、系统测试、验收测试)
(测试阶段准备反过来,与开发阶段对应上)
九、典型的软件测试过程模型是:V模型、W模型、H模型、前置测试模型。