没有合适的资源?快使用搜索试试~ 我知道了~
2、 健壮性测试:(1) 健壮性测试,又称为容错性测试,用于测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行 6、 边界值测试方针(1)
资源详情
资源评论
资源推荐
测试知识点整理
软件测试与质量知识点整理
1、软件测试概述
1、 软件测试基本思想
(1) 软件生存周期:
软件生命周期一般包括以下阶段:软件计划与可行性研究(问题定义、可行性研究)、需求分析、软件设计(概
要设计与详细设计)、编码、软件测试、运行与维护
(2) 软件测试的技术与过程
软件测试的过程包括以下阶段:测试设计、测试自动化、测试执行、测试评估测试设计:
1) Criterial Based:设计测试数值去满足覆盖规则或者其他工程性目标
软件测试中最具技巧性的工作
需要的知识:离散数学、编程、测试
往往需要软件工程知识背景
2) Human Bases:基于程序的领域知识和测试的人工知识设计测试数据
基于规则的(Criteria-based)方法会忽略特殊情况,
需要的知识:域知识、测试技能和用户接口
几乎不需要传统的软件工程知识背景
测试自动化:将测试数据写入可运行脚本
需要很少的理论知识基础,对技术的要求不高,需要较低层次的编程技术即可
测试执行:在软件上运行测试并且记录结果
如果测试自动化程度比较高,这将是一个简单而又繁琐的工作。
需要基本的计算机技能:实习生、没有软件工程知识背景的人员
图形用户界面并不是很容易实现自动化,这需要许多人工劳作
测试执行者必须非常谨慎小心地对运行结果进行记录
测试评估:评估测试的结果,这比它看上去要难得多
需要的知识:领域知识、测试知识、用户接口和心理学
通常情况下几乎不需要软件工程(SE)学历:软件的领域( domain )背景很重要;有相关的经验背景是很有用
的(生理学、心理学…);具有逻辑很好的逻辑思维对胜任这项工作很有帮助(法律、哲学、数学)
其他活动:
1) 测试管理:制定策略,组织团队,开发之间的接口,选择测试规则,决定所需要的自动化程度
2) 测试维护:保存测试用例以供软件衍化时的复用,需要测试设计人员和自动化人员的合作,决定何时整理测
试套件既需要策略又需要技巧,测试必须纳入配置管理
3) 测试文档:需要各方参与,每个测试都需记录“为什么要这么做”---规则和满足测试需求或者人工设计的测
试基本原理,保证整个过程可追溯,在自动化的测试中做记录
模型驱动式软件测试:
(3) 持续的软件测试
不同级别的测试:
1) 单元测试: 单独测试每一个单元(方法)
2) 模块测试: 测试每一个类、文件、模块或组件
3) 集成测试: 测试各个模块如何交互
4) 系统测试: 测试系统的总体功能性
5) 验收测试: 这个软件是否能够被用户所接受
测试活动:
1) 软件需求:定义测试目标(规则)、定义计划
2) 系统设计:设计系统测试、设计验收测试、设计可用性测试(如果合适的话)
3) 中层设计:将系统测试具体化、制定集成测试和单元测试的计划、获取测试的支持工具、确定类集成的顺序
4) 详细设计:构建测试或者将测试具体化
5) 实现:创建测试用例、当单元构成完成后运行测试
6) 集成:运行集成测试
7) 系统部署:运行系统测试、验收测试、可用性测试
8) 使用和维护:收集用户的问题、进行回归测试
2、 软件测试中的若干问题
(1) 重要的术语辨析:
1) Validation & Verification:
Validation(确认) : 在软件开发末期评估软件以确保与先前需求相符合的过程
Verification(验证) : 判断软件某一开发阶段的产品是否满足了在前面阶段建立的需求
2) 测试 & 质量保障(QA):
测试的目的是寻找 bug, 尽早地发现他们确保他们已经被修正。
质量保障( QA )的目的是创建一个强制执行的标准和方法去提高开发过程以便了防止 Bug 的出现。
3) 静态测试&动态测试:
静态测试 : 不实际运行程序的测试,这包括代码审查和一些形式的分析,在发现某些特定类型的问题上很有效---
特别是“潜在”的缺陷,即在程序被改动时会引发的问题
动态测试: 用实际输入执行程序的测试
4) Faults, Errors & Failures:
Software Fault : 软件代码中的一个静态缺陷
Software Failure : 相对于需求或者其他队软件行为的描述而言,外部的不正确的行为
Software Error : 由缺陷导致的内部的不正确的状态
5) 测试 & 调试:
测试 : 寻找使得软件出错的输入
调试 : 根据 failure 寻找缺陷(fault)的过程
6) Fault & Failure 模型,缺陷被发现的 3 个必要条件:
可达性(reachability) : 包含缺陷的代码地址必须在软件运行时刻到达
可感染(Infection) : 必须出现程序的错误状态
可波及(Propagation): 被感染的状态必须可以导致一些输出的错误
7) 测试用例:
测试用例的数值: 直接满足测试需求的数据
可预测的结果 : 当软件满足预计的行为时,执行程序所产生的输出
8) 可观察性&可控制性:
软件可观察性(Software Observability) : 以其输出、对环境以及其他硬件软件部分的作用作为考量观察程序
的容易程度。对设备,数据库或者远程文件有影响的软件具有较低的可观察性
软件可控制性(Software Controllability) : 以数值、操作和行为为考量,为程序提供输入的容易程度。通过键
盘很容易对软件进行控制;通过硬件传感器或者远程的分布式软件输入会难一点;数据抽象会降低可观察性和可
控制性
9) 对可控制性和可观察新具有影响的输入:
Prefix Values : 将软件切换至接受测试用例数据的正确状态的任何必要的输入。有两类 postfix values,确认值
(Verification Values) : 查看测试用例结果的必要输入之;退出命令(Exit Commands) : 终止程序或者将其
返回到稳定状态时所需要输入的数据
Postfix Values : 在测试用例数据之后必须被传到程序之中的数据
可运行测试脚本(Executable Test Script) :一个以在被测试软件上自动执行并且输出结果的形式编写的测试用
例
10) 黑盒测试&白盒测试:
黑盒测试:通过外部描述(包括规格说明、需求、设计)而产生的测试
白盒测试:通过软件的内部源代码(具体包括分支、独立条件和语句)而产生的测试
基于模型的测试:从元件模型产生的测试(例如,UML 图)
11) 自顶向下测试&自底向上测试:
自顶向下(Top-Down Testing) : 测试主干(main procedure), 然后向下贯穿其所调用的过程,以此类推
自底向上(Bottom-Up Testing) : 先测试调用树的叶节点(没有调用其它过程的部分),然后逐渐向上直至根
节点。每个过程不会被测试除非它的所有子节点都被测试过。
(2) 测试的级别:
Level 0 : 测试与调试没有什么区别;
Level 1 : 测试的目的是为了展示正确性
Level 2 : 测试的目的是为了使软件崩溃
Level 3 : 测试的目的不是为了验证任何具体的细节而是降低使用软件的风险
Level 4 : 测试是一个心理的规约用来帮助 IT 专家开发更高质量的软件
(3) 如何优化测试:
1) 测试人员需要更多更好的软件工具
2) 测试人员需要采用更高效率更具影响的测试实践和技巧
3) 测试/质量保障小组需要更多的技巧专业知识
4) 测试/质量保障小组需要更加特化
(4) 四个主要的障碍:
1) 缺乏测试的相关知识培训
2) 改变程序代码的必要性
3) 工具的使用 Usability of tools
4) 功能较弱、效率较低的工具
(5) 软件测试的前景:
1) 逐渐增长的测试特化趋势会导致更加高效和更具影响的测试
2) 测试和质量保障小组会有更多的技巧专门技能
3) 开发人员会更加了解测试,并且有把测试做得更好的动力
4) 灵巧的过程使得测试被放在了第一位---要求开发人员和测试人员去做出更好的测试
5) 测试和安全会开始合并
6) 我们会开发出用来测试基于软件的系统中关系的方法
2、 边界值测试
1、 边界值测试
(1) 人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围
的内部。
(2) 针对各种边界情况设计测试用例,可以查出更多的错误。
(3) 使用边界值分析方法设计测试用例,首先应确定边界情况。
(4) 通常输入等价类与输出等价类的边界,就是应着重测试的边界情况。
(5) 应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或
任意值做为测试数据。
2、 健壮性测试:
(1) 健壮性测试,又称为容错性测试,用于测试系统在出现故障时,是否能够自动恢复或者忽略故障继续
运行。
(2) 为了使系统具有良好的健壮性,要求设计人员在做系统设计时必须周密细致,尤其要注意妥善地进行
系统异常的处理。
(3) 考虑到了软件使用过程中的非法输入值
3、 最坏情况测试
4、 特殊值测试
在测试中考虑到特殊的输入值和特殊情况
5、 随机测试
(1) 随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过
程。随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例没有覆盖到的部分。
(2) 对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进
行检查。尤其对以前测试发现的重大 Bug,进行再次测试,可以结合回归测试一起进行。
(3) 理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测
试。
(4) 随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,
执行随机测试越容易。
6、 边界值测试方针
(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为
测试输入数据。
(2) 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数
据。
(3) 应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
(4) 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作
为测试用例。
(5) 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
3、等价类测试
1、 等价类
(1) 弱一般等价类测试:假设只有一个缺陷或者输入变量相互独立
(2) 强一般等价类测试:与弱一般等价类相似,但是它关注多种缺陷因素和变量之间的依赖,各种变量的每
个等价类组合都需要被包括
(3) 弱健壮等价类测试:与弱一般等价类测试相似,但是考虑了输入的非法值
(4) 强健壮等价类测试:与强一般等价类测试类似,但是考虑了输入的非法值
2、 一般基于等价类的测试方法
(1) 按照规格说明中的“输入条件”(或者输出条件)划分等价类
确定等价类的原则:有效等价类、无效等价类
(2) 设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类;重复这一步骤,直到所有的有
效等价类都被覆盖为止
(3) 设计一个新的测试用例,使其仅覆盖一个无效等价类;重复这一步骤,直到所有的无效等价类都被覆
盖为止
3、 等价类划分方法
(1) 如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。
(2) 如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价
类,并有一个无效等价类(所有不允许的输入值的集合)。
(3) 如果规定了输入数据的个数,则类似地可以划分出一个有效等价类和两个无效等价类。
(4) 如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从
不同角度违反规则)。
4、 输入域的两种建模方法
(1) 基于接口/输入的建模方法
1) 根据独立的输入参数来生成特点,最简单的建模方法,在某些情况下可以被部分自动化生成。
2) 一些语义知识和领域知识不会被用到;忽略了参数之间的关系。
(2) 基于功能的建模方法
剩余10页未读,继续阅读
weixin_35780426
- 粉丝: 19
- 资源: 286
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- open_setting.mobileprovision
- zidongdianjiqi.apk
- 卷积神经网络(Convolutional Neural Networks,CNN)是深度学习领域中一种非常重要的神经网络结构,特
- DHT11温湿度传感器是一款高性能、低成本的数字温湿度复合传感器 它集成了温度感应和湿度感应功能,可以准确地测量环境中的温度和湿
- eMMC的压力测试工具
- JUC代码演示 Java多线程并发
- otsu's-binarization.zip
- 基于matlab实现的数据挖掘机期末大挖掘.rar
- 基于matlab实现的势函数非线性和感知机线性三分类,并画出分界图.rar
- 基于matlab实现的手写字体识别有着广泛的应用,本代码是基于SVM的手写字体识别.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0