1.白盒测试 和黑河测试 有什么区别?
黑盒测试
(1)完全不考虑程序内部结构和内部特性
(2)检验程序是否能适当的输入数据而产生正确的输出信息
(3)多针对于软件界面而言,软件功能,性能,安全性等多方面进行测试
黑盒是穷举输入测试,把所有可能的输入都作为测试用例使用,适用于软件测试的各个阶段(单元测试,组件测试,继承测试,系统测试及用户验收测试)
白盒测试
(1)全面了解 程序内部 逻辑结构 ,对所有的逻辑路径进行测试
(2)对程序的数据流和所有分支,路径进行覆盖
多用于软件内部实现机制的正确性,有效性检验,用于单元测试阶段
白盒测试的方法
(1)语句测试
赋值,循环和选择,过程或 函数调用 ,通过显示初始化所声明的变量,堆中动态分配的变量的存储空间
(2)分支判定 测试
被测组件的输入,该测试用例所覆盖的判定和分支,测试用例的期望结果
(3)条件测试
(4)数据流测试
(5)基本路径测试
利用控制 流图对被测组件 的运行路径 进行分析 ,然后推到出被测组件的基本路径,基本路径测试要求被测组件的所有路径至少被测试用例 覆盖一次
流图的圈复杂度=流图中边的数量-流图中节点的数量+2或者流图中判断节点的数量 +1
单元测试
为什么要进行单元测试 ?
(1)保证代码有正确的行为,验证代码是否与 详尽设计一致
(2)窥测软件内部的实现机制 ,发现其他测试阶段啊难以发现的软件缺陷
(3)充分的单元测试可以降低软件开发的成本
例如某个函数编译通过 只能说明语法没有问题,但任需要对其语义进行有效性检验
由谁来做单元测试?单元测试什么时候开始做?怎么做?
在编码阶段 开发人员一般设计好各单元之间的接口,然后在实现单元的内部代码,最后在对各个单元进行测试
因此对于每个被测单元首先应该知道 其暴漏在外边的接口(全局变量,类的公有成员,函数的形参,返回值,函数名等)通过暴漏的公共接口测试 它的输入值域,然后根据输入值域编写测试数据,在这里可以使用等价类划分,边界值分析 ,语法测试等方法
之后在对被测单元进行白盒 测试 (语法测试,分支判定测试 ,条件测试 ,基本路径测试)
单元测试的策略
(1)自顶向下
(2)自底向上
通常先编写驱动模块测试的最低层单元,待低层被 测单元完成后,再用低层已测的单元作为 上层被测单元的庒模块 ,进而测试上层模块
(3)独立测试
为每个被测 单元编写驱动模块和庒模块,独立的对被测模块进行测试
在编码阶段开发人员一般设计好各单元之间的接口,此时函数单元测试的入口条件和出口条件是什么?
入口条件
被测单元编码已经完成
代码编译通过
通过了静态代码检查工具的检测
至少完成一轮代码走读或检查,并通过
测试用例已被检查通过
出口条件
所有的测试 用例都被执行
测试覆盖率达到预定的要求
被测模块的缺陷低于预定要求
集成测试
有效的定位软件因集成新的组件所引入的缺陷
集成测试的入口条件和出口条件是什么?
入口条件
被测模块的单元测试结果已经通过并被检视
集成 测试策略已被检视并通过
集成测试,测试 用例 已开发完成并通过检验
所需 的工具代码已完成检查
出口条件
所有 的集成测试用例都被执行
集成测试测试覆盖率达到预定的要求
被测模块的缺陷低于预定的上限
系统测试
系统测试是在所有的模块或子系统都完成了集成测试以后,测试人员对整个软件系统按照软件产品的需求规格说明书进行的功能验证测试
说明 :
在单元测试阶段测试人员主要保证单元的代码有正确的行为,对软件详尽设计文档进行验证
在 集成 测试阶段测试 人员主要对对已经测试 完的单元或 组件的 接口进行 测试 这些接口属于软件内部接口
在系统测试阶段 测试人员主要对产品说明书进行验证,通常测试的是软件的用户接口
怎么做系统测试 ?
(1)功能测试 :测试产品各项功能的正确性,以及炎症各县功能是否与产品需求规格说明书一致
(2)性能测试 :测试产品的各项性能是否达标
例如测试手机在 睡眠时间,非睡眠时间,频幕亮起等情况下电流安倍数及手机待机等时间是否达标
(3)压力测试:获得产品某些关键性能指标的极限
例如:手机最长待机时间,连续播放视频的时间,打开一条彩信所花费的时间,拍摄并存储大量视频所花费的最短时间
例如网站测试中系统能够并发处理的用户请求数量极限值
(4)健壮性测试:指的是软件正常运行过程中在遇到么某些突发异常状况时系统保持与恢复的功能
例如:网站服务器突然断电或者电缆切断的情况下备用服务器是否能够正常启动并接受用户请求
(5)兼容性测试 :指的是软件产品的新旧版本兼容以及软件产品与软件硬件环境间的兼容
(6)用户易用性测试:软件产品是否为用户提供友好的界面及易操作的接口
例如:在 手机测试中,一些常用的功能(如电话薄,短信)是否能在很少的步骤(有的公司要求为三步)内完成一些操作(如存储通讯录,删除短信等操作)
例如:网站测试中,网页的美观和一致性
(7)安装卸载测试 :在各种硬件组合下是否能正常的进行安装,卸载
测试安装时还包括取消安装时的回滚操作是否彻底,是否彻底清楚了文件系统和注册表中的内容以及在安装过程中出现的异常(断电,系统奔溃等)待系统重启之后是否能够正确的安装
系统测试的入口出口条件是什么?
入口条件
软件产品的集成测试测试结果已经通过并被检查
系统测试计划已经被检查通过
系统测试策略已被检查通过
所需的工具代码已被检查通过
出口条件
所有的系统测试用例都被执行
系统测试覆盖率达到预定要求
软件产品的缺陷率低于预定的上限
用户验收测试
什么是用户验收测试 ?
当软件产品顺利通过系统 测试 之后就开始用户验收测试
为什么要对产品进行用户验收测试 ?
每一个产品都是为了最终用户设计开发的,因此 能够让用户参与测试是获取产品反馈的重要途径
通过用户验收测试可以在现实用户环境中对产品规格说明书和用户文档进行验证
通过用户可以降低产品中缺陷 的数量
通过用户验收测试 可以获得产品关于性能,功能的反馈,有利于产品团队在产品上市之前对产品的用户映像有一定的 认识
用户验收测试分为alpha,beta测试
alpha:是指 产品上市之前 在公司内部进行的用户体验测试,是在开发环境下的测试
beta:在用户环境下对产品进行测试
用户验收测试所要做的通常是在用户环境中对产品规格说明书 进行测试和验证,除此之外测试人员还需对测试文档进行测试
包括帮助文档,用户守则,安装配置指南,多媒体演示资料,授权使用提示,软件包装及广告等
用户验收测试 所要做的是对产品规格说明书进行验证
如何开展用户验收测试?
(1)明确用户体验测试的目的
(2)用户体验测试 的准备 工作
(3)用户 反馈的过滤
用户 验收测试的入口条件和出口条件是什么?
入口条件:
软件 产品的系统测试 结果已通过并被检查
用户验收测试 计划已被 检查通过
用户验收策略已被 检查通过
用户验收测试的测试用例已经开发完并被检查通过
参与测试 的用户 已经确定
测试环境按照需求已经 搭建
产品已经发放到 参与测试的用户手中
已经建立产品参与测试用户 的信息反馈的渠道
出口条件
所有的用户验收测试用例都被执行
用户验收测试测试覆盖率达到指定要求
产品的行为 方式符合产品 的规格说明书
产品的用户文档达到指定的要求
软件产品的缺陷率低于上市限制的上限
回归测试
当开发人员对软件产品的基线版本作出任何改变时,测试人员针对这些改变,进行有针对性的测试活动
以上所说的针对软件产品的改变包括:
开发人员为了修复一个软件缺陷而对软件产品进行修改
开发人员在需求变更 时,为了满足新的需求对软件产品做出的修改
在 稳定的软件产品中加入一个新的模块
什么是软件的基线版本?
软件产品的基线版本就是 在 开发过程中某一时刻的快照 ,这一时刻的软件产品一定是一个稳定的版本,一定可以作为继续在其上做开发的依据
alpha/ beta/ gama测试、
alpha/ beta属于产品验收 测试 的范畴 ,是在 测试部门结束全部测试 之后进行
alpha:只供内部测试 使用
beta:一般提供给 特定用户群的测试来使用的黑盒 测试
gama:是市场测试
原文:http://10808695.blog.51cto.com/10798695/1840358