13.软件测试阶段:
单元测试(Unit)、集成测试、系统测试、确认测试。
14.黑盒测试:
从软件外部描述得到测试,包括规格说明、需求文档、设计文档。
15.白盒测试:
从软件源码内部结构得到的测试,包括分支结构、个别条件、语句。
16.语法上可达:
在图中存在这样的一个路径。
17.语义上可达:
通过用例值能够测试执行这样的一个路径。
18.SimplePath(简单路径):
一个路径中节点ni到nj没有重复的节点,除非第一个节点和最后一个节点相同。
19.PrimePath(主路径):
首先是一个简单路径,找不出一个简单路径包含此路径,此路径就是主路径。
例:
简单路径:
简单写几个:
[0],[1],[2],[3],[0,1],[0,1,3,0]
主路径:
[0,1,3,0]、[0,2,3,0]、[1,3,0,2]
20.DU-pair(定义使用对):
(Li,Lj)表示一个变量值v在Li处定义,在Lj处使用。
21.Def-clear(定义清除):
(Li,Lj)就是一个变量值v在除了在Li处定义、Lj出使用,中间路径均无定义或者使用。
22.Du-path(定义路径):
一条定义清除的路径。
(Li,Lj)就表示Li到Lj之间的路径。
例:
Du-path:
[0,1,3,4]、[0,1,3,5],[0,2,3,4],[0,2,3,5]
23.OldView(老测试):
根据软件测试阶段:
单元测试、集成测试、系统测试、确认测试。
24.NewView(新测试):
基础结构和标准的测试。
25.CFG:
(controlFlowGraph)控制流图。
26.DFG:
(DataFlowGraph)数据流图。
27:
FSM(有限状态机):
afinitestatemachine.
28:
软件测试是从需求设计开始。
29:
继承(Inheritance):
如果B类继承A类,那么A类中所有变量和方法B也拥有,并且B还有可以自定义变量和方法。
重要的术语
•确认:
在软件开发结尾时,评估软件以保证所开发的软件和预期用途相符的过程。
•验证:
在软件开发过程的某个阶段,决定此时的产品是否满足在前一个阶段所确定的需求的过程。
•测试工程师:
负责一个或多个技术测试活动的IT专业人士
•测试经理:
负责一个或多个测试工程师
•软件故障:
软件中的静态缺陷
•软件失败(效):
与需求或其他期望行为的描述有关的、外部的、不正确行为
•软件错误:
不正确的内部状态,该状态是某个故障的表现
•测试:
找到导致软件失败的输入
•调试:
对于给定的失败找故障的过程
•故障及故障模型(RIP)
•对一个失败观察三个必要条件:
•可达性:
程序中包故障的位置必须找到
•影响:
执行到该位置后,程序的状态必须是不正确的
•传播:
受影响的状态必须传播出来,引起该程序的某个输出是不正确的
•软件可观察性:
如何简单地通过观察一个程序的输出,对于环境及其他硬件和软件组件的影响,观察一个程序的行为。
•软件影响硬件设备、数据库或远程文件有较低的可观测性
•软件可控性:
如何容易地给程序提供一个带有所需的输入、包括值、操作和行为
•测试用例值:
完成被测软件某个执行所需的输入值
•预期的结果:
当且仅当程序满足其期望行为时,执行测试时产生的结果
•前缀值:
将软件置于合适的状态来接受测试用例值的任何必要的输入
•后缀值:
测试用例值被发送以后,需要被发送到软件的任何输入
•自顶而下的测试:
测试主程序,然后主程序向下调用的过程,以此类推
•自底向上的测试:
先测试树叶(程序,使得没有调用)上升到根。
•测试路径:
起始于初始节点并且终止于终点的一条路径
•测试路径代表了一个测试用例的执行
•访问:
如果节点n在测试路径p中,则这条测试路径访问了节点n
一个测试路径p访问边e,如果e在p上
•游历:
一个测试路径p游历子路径问q,如果q是p的一个子路径
•测试需求(TR):
描述属性的测试路径
•测试标准:
定义测试需求的规则
•满足:
对标准C给定一组测试需求TR,在图中测试集合T满足标准C,当且仅当每个TR中的测试需求tr,在path(T)中存在一个测试路径经过测试需求tr
•结构覆盖标准:
只是从节点和边定义一个图
•数据流覆盖标准:
需要用引用变量标注一个图
•节点覆盖(NC):
TR包含G中每个可达的节点
•边覆盖(EC):
TR包含图G中每一个可到达的长度小于等于1的路径
•
•
主路径覆盖(PPC):
TR包含G中的每一条主路径.
Eg:
变量numbers在1处首次定义,在4,5,7处使用
二、大题
1.节点覆盖:
测试需求TR:
覆盖所有节点。
TR={0,1,2,3,4,5,6};
测试路径TestPaths:
写出几条路径使路径能够覆盖上面所有的点。
TestPaths:
[0,1,2,3,6]、[0,1,2,4,5,4,6]
2.边覆盖:
测试需求TR:
覆盖所有的边。
TR={(0,1),(0,2),(1,2),(2,3),(2,4),(3,6),(4,5),(4,6),(5,4)}
测试路径:
写出几条路径使路径能够覆盖上面所有的边。
TestPaths:
[0,1,2,3,6][0,2,4,5,4,6].
二、更加代码来写出变量的first-user/last-def
三、谓词、子句覆盖。
四、控制流图,把代码转化为图
输入域建模
•步骤1:
确定可测试的函数
•步骤2:
找出所有的参数
•步骤3:
模型输入域
•步骤4:
应用一个测试标准去选择值的组合
•步骤5:
提炼组合块到测试输入中
输入域建模的两种主要方法及概念
1.基于接口的方法
2.基于功能的方法