测试目的
- 检验实际的软件系统是否符合用户需求
原则:证明软件存在缺陷 2.不可能穷尽测试 3.尽早启动测试 4.缺陷群集现象 5. 不同测试依赖不同的测试背景。
测试原则
+ 1.缺陷具有群集性
2.杀虫剂悖论(不要长时间使用一种测试手段)
3.二八原则 将百分之八十的时间用在百分之二十的重点模块上
4.测试活动依赖测试背景(金融着重安全。。。)
5.软件测试证明故障的存在,但不保证不存在bug
6.穷尽测试是不可能的,要及时的设置终止条件
7,。软件测试尽早进行
-
黑盒测试
- 1.是否有不正确或者遗漏的功能。
2.在接口上,输信息入是否能正确的接收。执行结果是否正确。
3.是否有数据结构错误或外部信息访问错误。
4。性能上是否能满足要求。
5.不关注程序内部设计
- 1.是否有不正确或者遗漏的功能。
-
白盒测试
优点:
1.迫使测试人员去仔细的思考软件的实现,理解原理
2.可以检测代码中每条分支和路径
3.揭示隐藏在代码中的错误
4.对代码测试比较彻底缺点:
1.昂贵
2.无法检测代码中遗漏的路径和数据敏感性错误
3.不能直接验证需求的正确性。
-
单元测试
- 对最小可测试的单元进行测试和验证(Java一个类为最小单元,c语言一个函数,可视化程序一个窗口)。由代码开发人员测试完成
好处
1.能尽早的发现缺陷
2.有利于重构
3.简化集成
4.文档
5.用于设计-
缺点
1.单元测试不可能覆盖每一个执行路径,不能保证捕捉到每一个错误
2.每一行代码需要3~5行测试代码才能完成单元测试,所以工作量大。
所以存在投入与产出的一个平衡。
- 对最小可测试的单元进行测试和验证(Java一个类为最小单元,c语言一个函数,可视化程序一个窗口)。由代码开发人员测试完成
-
集成测试
- 是在单元测试的下一个阶段,将单元模块组装成系统或者子系统再进行测试。
-
系统测试和验收测试
- 系统测试对整个系统功能,性能及其软件的软硬件运行环境进行测试。
验收测试以用户测试为主。
- 系统测试对整个系统功能,性能及其软件的软硬件运行环境进行测试。
-
功能测试
- 对提供给用户软件功能的测试检测功能是否与用户需求相符。
-
性能测试
- 时间性能和空间性能
时间性能:事物的响应时间
空间性能:软件运行所消耗的系统资源。
- 时间性能和空间性能
测试框图
黑盒测试
- 等价类划分
- 根据软件的需求说明对输入范围进行细分,在分出的区域中选择具有代表性的数据。
+有效等价类:符合规格说明,合理的输入数据集合
无效的甲类:不符合。。。,无意义的输入数据集合。
- 根据软件的需求说明对输入范围进行细分,在分出的区域中选择具有代表性的数据。
- 2.等价划分的步骤:
!等价.jpg- 1),先考虑输入数据的类型(合法类型和非法类型)
2),考虑数据范围(合法区间和非法区间)
3),画出示意图,区分等价类
4),为每一个等价类编号
5),在一个等价类中选取一个测试数据构造测试用例
- 1),先考虑输入数据的类型(合法类型和非法类型)
- 边界值技术
边界是最容易出错的地方,我们在等价类中选取数据的时候也要经常选取边界值
例如(1-100)之间的两个整数和 边界选取(1,1),(100,100),(0,0),(101,101) - 边界值3点
- 上点
- 边界上的点,(6,18)上点6,18.。【6,18】上点6,18。
- 离点
- 距离上点最近的点。
如果为闭区间6,18则离点为5,19。如果为开区间6,18则离点7,17.
- 距离上点最近的点。
- 注意:闭区间离点在外,开区间离点在内。
- 内点
- 区间内的点
因果图
- 他是黑盒测试技术,不如等价类划分法,边界值法常用,它适合输入条件比较多的情况。因:原因表输入,果:结果表输出。
- 因果图不善于处理较大规格的说明
- 因:指一个明确的输入条件或者输入条件的等价类
- 果:输出条件或者系统转换。如果某个事物引起文件或者数据库的修改,那么这种改变就是系统转换,系统反馈的确认信息就是输出条件
- E(互斥):(必须总为真)表示最多一个为1;(不能同时为1)
- I(包含):ABC三个原因中至少有一个必须成立;
- O(唯一):a和b有且仅有一个必须为1;
- R(要求):表示A为1,B也必须为1;
- M:如果结果a为0,则b强制为0
软件的生命周期
-
指得是软件开发和测试的全部过程、活动和任务的结构框架,是可行性需求分析。
- 软件设计、编码、测试、软件发布维护的过程
-
流程图
新生儿————》儿童、少年————》中年、老年————》死亡 可行性需求分析————》设计,编码————》发布,维护————》淘汰。
-
生命周期流程图
-
瀑布模型
优点:开发的各个阶段比较清晰。
强调早期计划及需求调查
适合需求稳定的产品开发缺点:依赖早期的需求调查,不适应需求变化 单一流程不可逆 风险往往迟至后期才显露,失去早纠正的机会 测试仅仅是编码的最后一个阶段
-
-
V模型
用户需求 《.....................验收测试 规格定义 《.............系统测试 概要设计 《......集成测试 详细设计 单元测试 编码 优点:详细表示了测试的各个阶段以及参考依据 缺点:没有说明在项目的前期测试需要哪些工作,流程是单向的不可逆 。
测试计划
1.明确测试范围和内容(what)
2.测试目的(why)
3.测试开始和结束日期(when)
4.给出测试文档和软件存放的位置(where)
5.测试人员的分配(who)
5.测试方法和测试工具(how)
逻辑覆盖
- 语句覆盖
- 为了暴露程序中的错误,每个语句至少执行一次。
- 判定覆盖
- 判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。只关心表达是的值。
- X Y (XY条件,T,F为真假值)
- T T
- F F
- T F
- 条件覆盖
- 每一条语句执行一次,并且每个条件都能取到不同的结果。
- 判定-——条件覆盖
- 每个条件取到各种可能的结果,判定表达是也要取到各种个能的结果。
- 条件组合覆盖
- 每个判定中条件结果的所有可能组合至少出现一次。
标记符号
- ST:系统测试,属于黑盒测试范畴
IT:集成测试,属于灰盒测试范畴
UT:单元测试,属于白盒测试范畴
UAT:验收测试