软件测试实验报告详解Word下载.docx
《软件测试实验报告详解Word下载.docx》由会员分享,可在线阅读,更多相关《软件测试实验报告详解Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
(2)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;
(3)设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。
边界值测试
1.边界值分析
边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。
边界值分析关注输入空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。
边界值分析的基本思想是:
使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。
2.健壮性测试
健壮性是指在异常情况下,软件还能正常运行的能力。
健壮性考虑的主要部分是预期输出,而不是输入。
健壮性测试是边界值分析的一种简单扩展。
除了变量的5个边界分析取值还要考虑略超过最大值(max)和略小于最小值(min)时的情况。
3.最坏情况测试
最坏情况测试将意味着更大工作量,n变量函数的最坏情况测试会产生5的n次方个测试用例,而边界值分析只产生4n+1个测试用例。
基于决策表的测试
决策表适合描述不同条件集合下采取行动的若干组合的情况。
使用决策表标识测试用例,则把条件解释为输入,行动解释为输出。
有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则解释为测试用例。
对于有限条目决策表,如果有n个条件,则必须有2条规则。
如果不关心条目实际地表明条件是不相关的,则没有不关心条目的规则统计为1条规则,规则中每出现一个不关心条目,该规则数乘一次2。
你的问题:
(1)在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷;
(2)在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;
实验成绩
教师签字:
实验名称结构性测试
2
9月9日
(1)掌握结构性测试技术,并能应用结构性测试技术设计测试用例;
逻辑覆盖
结构性测试力求提高测试覆盖率。
逻辑覆盖是对一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法。
逻辑覆盖按覆盖程度由低到高大致分为以下几类:
(1)语句覆盖:
设计若干测试用例,使程序中每一可执行语句至少执行一次;
(2)判断覆盖:
设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;
(3)条件覆盖:
设计用例,使判断中的每个条件的可能取值至少满足一次;
(4)判断/条件覆盖:
设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;
(5)条件组合覆盖。
设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;
显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。
(6)路径覆盖。
设计足够的测试用例,使程序的每条可能路径都至少执行一次。
如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。
基本路径测试
如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。
它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。
①程序的控制流图
控制流图是描述程序控制流的一种图示方法。
基本控制构造的图形符号如图所示。
符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。
控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。
边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。
图3-.1控制流图的各种图形符号
如果判定中的条件表达式是复合条件时,即条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的逻辑表达式,则需要改复合条件的判定为一系列只有单个条件的嵌套的判定。
例如对应图3-2.(a)的复合条件的判定,应该画成如图3-2.(b)所示的控制流图。
条件语句ifaORb中条件a和条件b各有一个只有单个条件的判定结点。
计算程序环路复杂性
进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。
所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。
如在图3-3(b)所示的控制流图中,一组独立的路径是:
path1:
1-11
path2:
1-2-3-4-5-10-1-11
path3:
1-2-3-6-8-9-10-1-11
path4:
1-2-3-6-7-9-10-1-11
路径path1,path2,path3,path4组成了图3-3(b)所示控制流图的一个基本路径集。
只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个条件的取真分支和取假分支也能得到测试。
基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
(a)程序流程图(b)控制流图
图3-3程序流程图与对应的控制流图
通常环路复杂性可用以下三种方法求得。
将环路复杂性定义为控制流图中的区域数。
设E为控制流图的边数,N为图的结点数,则定义环路复杂性为V(G)=E-N+2。
若设P为控制流图中的判定结点数,则有V(G)=P+1。
导出测试用例
利用逻辑覆盖方法生成测试用例,确保基本路径集中每条路径的执行。
(1)使用公式e-n+p/e-n+2p确定的McCabe基路径与实际分析的是否完全一致?
(2)DD-路径和MM-路径的区别与联系。
实验名称QuickTestProfessional初级使用
3
9月16日
了解QuickTest测试工具的操作界面,了解QuickTest测试工具的测试模式和过程,并能使用QuickTest测试工具录制测试脚本、执行并分析测试脚本。
QuickTest测试开发流程
QuickTest的测试流程包含七大阶段:
1.录制测试脚本前的准备
在测试前需要先确认应用程序以及QuickTest是符合测试需求。
确认你已经知道如何对应用程序进行测试,例如要测那些功能、操作步骤、输入的数据、预期的结果等。
同时应该检查一下QuickTest的设定,如TestSettings(【Test】>
【Settings】)以及Options对话窗口(【Tools】>
【Options】),以确保QuickTest会适切的录制并储存信息。
例如,你应该确认一下QuickTest的ObjectRepository是以什么模式储存信息的。
2.录制测试脚本
当浏览网站或是操作应用程序时,QuickTest会在KeywordView中以表格的方式显示录制的操作步骤。
每一个操作步骤都是使用者在录制时的操作,如在网页上点选一个超级链接(link),或是按下窗口上的按钮。
3.加强测试脚本
◆在测试脚本中加入检查点,可以检查网页超级链接、对象属性或是字符串,以验证应用程序的功能是否正确。
◆将录制的固定值(hardcode)参数以取代,使用多组的数据测试应用程序。
调试脚本(对测试脚本除错)
在修改过测试脚本之后,需要调试测试脚本,检查脚本是否存在错误,以确保测试脚本能正常且流畅的执行。
5.在应用程序或网站上执行测试脚本
在对应用程序或网站的回归测试中,通过QuickTest回放对应用程序或网站的操作,检验软件正确性,实现测试的自动化进行。
6.分析测试结果
查看QuickTest记录的运行结果,分析测试执行的结果,记录问题,找出应用程序的问题所在。
7.回报问题(defect)
如果安装了QualityCenter(TestDirector),则你可以将发现的问题回报到QualityCenter(TestDirector)的数据库中。
QualityCenter(TestDirector)是Mercury的测试管理工具。
录制脚本准备
当你浏览网站或使用应用程序时,QuickTest会纪录你的操作步骤,并产生测试脚本。
当你停止录制测试脚本后,会看到QuickTest在Keyword
View中以表格的方式显示测试脚本的操作步骤(steps)。
在测试前需要先确认你的应用程序以及QuickTest是符合你的测试需求的。
在开始时请先确认以下事项:
假如你是使用Internet
Explorer浏览器,请你先取消「自动完成」的功能(取消「自动完成」的设定:
1.
开启Internet
Explorer浏览器,点选【工具】>
【因特网选项】>
【内容】。
2.
点选【个人信息】中的【自动完成】按钮,开启【自动完成设定】对话窗口。
3.
在【使用「自动完成」】取消【窗体上的使用者名称和密码】选项。
)。
关闭所有的浏览器窗口。
分析KeywordView中的测试脚本
当你录制测试脚本时,QuickTest会将你的每一个操作录制下来,并在KeywordView类似Excel工作表的方式显示所录制的测试步骤。
您可以点选【View】>
【Expend
All】检视测试脚本的每一个步骤。
在Keyword
View的中每个字段都有其意义:
【Item】:
以阶层式的图标显示这个操作步骤所作用到的组件(测试对象(test
object)、工具对象(utility
object)、函数呼叫(function
call)或脚本(statement))。
【Operation】:
要在这个作用到的组件上执行的动作,如点选(Click)、选取(Select)。
【Value】:
执行动作的参数(argument),例如当鼠标点选一张图片时是用左键还是右键。
【Assignment】:
使用到的变量。
无
实验名称QuickTestProfessional高级使用
4
9月23日
熟练使用QuickTestProfessional进行自动化测试。
掌握QuickTestProfessional测试流程。
检查对象
在本部分中,将在“BookaFlight”页中添加标准检查点。
该检查点将验证包含乘客名字的框中的值。
执行QuickTest并开启「Recording」测试脚本。
将测试另存为“Checkpoint”。
找到要向其添加标准检查点的页面。
添加检查点,以便在乘客的名字输入到“FirstName”编辑框后,对该框中的属性值进行检查。
在关键字视图的“项”列中,单击(+)展开“Action1”>
“Welcome:
MercuryTours”>
“BookaFlight:
Mercury”。
创建标准检查点。
在ActiveScreen中,右键单击“FirstName”框,然后选择“插入标准检查点”。
将打开“对象选择-检查点属性”对话框。
点选【Page:
Book
a
Flight:
Mercury】
(在最上层)然后点选【OK】。
接着开启【Page
Checkpoint
Properties】对话窗口。
当执行测试时,QuickTest会检查网页的连结与图片的数量,以及加载的时间。
QuickTest也检查每个link的URL以及每个图片的原始文件是否存在。
接受默认值,点选【OK】。
QuickTest会在
Mercury网页下方加上一个网页检查点。
点选【File】>
【Save】或是点选工具列上的【Save】按钮保存测试脚本。
4.检查文本
在此建立一个文本检查点,检查在【"
Flight
Confirmation"
】网页中是否出现【"
New
York"
】。
View中,展开(+)
【Action1】>
【"
Welcome:
Mercury
Tours"
选取Keyword
View中的【"
Confirmation:
Mercury"
】网页。
在【Active
Screen】会显示网页的画面。
Screen】中,选取在「Departing,」下方的「New
York」。
对选取的文字按下鼠标右键,点选【Insert
Text
Checkpoint】开启【Text
当【Checked
Text】出现在下拉式清单中时,在【Constant】字段会显示刚刚选取的文字。
也就是QuickTest在执行测试脚本时所要检查的文字。
点选【OK】关闭对话窗口。
QuickTest会在测试脚本上加上一个文字检查点,这个文字检查点会出现在【"
FlightConfirmation:
Mercury"
】网页下方。
5.检查表格
建立一个表格检查点,检查【Book
Mercury】网页上出国航班的价钱。
Screen】中,在第一个航班的价钱上(NewYorkto
San
Francisco)—270—点选鼠标右键,然后选取【Insert
Standard
Checkpoint】。
会开启【ObjectSelection–CheckpointProperties】对话窗口。
一开始被选取的是WebElement:
270,这时你要点选上一层的WebTable对象,选取WebTable:
York
to
Fransisco。
单击“运行”或选择“测试”>
“运行”。
将打开“运行”对话框。
请确保已选定“新建运行结果文件夹”。
接受默认的结果文件夹名。
单击“确定”。
当完成测试运行时,将打开“测试结果”窗口。
1)查看测试结果。
当QuickTest完成运行测试时,将打开“测试结果”窗口。
测试结果应该为“通过”,表示所有检查点已通过测试。
如果一个或多个检查点失败,则测试结果将为“失败”。
2)查看页面检查点的结果。
在结果树中,单击(+)展开“CheckpointIteration1(Row1)”>
“Action1Summary”>
“Welcome:
MercuryTours”>
突出显示“检查点`BookaFlight:
Mercury'
”。
在“详细信息”窗格中列出了已检查的项目,可以查看页面检查点的详细信息。
检查点通过,因为已检查的实际属性值与预期值相匹配。
3)查看表检查点的结果。
在结果树中的“Book
”页上,单击(+)展开“NewYorktoSanFrancisco”。
突出显示“检查点`NewYorktoSanFrancisco'
在“详细信息”窗格中,可以查看表检查点的详细信息。
还可以查看表单元格的值(已检查的单元格值显示为黑色;
未检查的单元格值显示为灰色)。
4)查看标准检查点的结果。
Mercury”页上,单击(+)展开“passFirst0”。
突出显示“检查点passFirst0”。
在“详细信息”窗格中列出了已检查的属性及其值,可以查看标准检查点的详细信息。
修改受参数化影响的步骤有几步。
实验名称WinRunner的使用
5
9月30日
了解WinRunner的安装过程,并进行安装实验。
了解WinRunner测试模式和测试过程,并能够使用WinRunner进行简单的测试工作。
1、创建GUImap
使用RapidTestScriptwizard(快速测试脚本巫师)回顾软件用户界面,并系统地把每个GUI对象的描述添加到GUImap中。
也可以在录制测试的时候,通过点击对象把对单个对象的描述添加到GUImap中。
2、创建测试
可以通过录制、编程或两者同用的方式创建测试脚本。
录制测试时,在你需要检查软件反应的地方插入检查点(Checkpoint)。
插入检查点来检查GUI对象,位图(Bitmap)和数据库。
在这个过程中,WR捕捉数据,并作为期望结果(被测软件的期望反应)储存下来。
3、调试测试
可以先在调试模式(Debugmode)下运行脚本。
也可以设置中断点(Breakpoint),监测变量,控制WR识别和隔离错误。
调试结果被保存在Debugfolder,一旦调试结束就可以删除。
4、执行测试
在检验模式(Verifymode)下测试被测软件。
WR在脚本运行中遇到检查点后,就把当前数据和前期捕捉的期望值进行比较。
如果发现有不符合,就记录下来作为实测结果。
查看测试结果
测试是成功还是失败由你来认定。
每次测试结束,WR会把结果显示在报告中。
报告会详述测试执行过程中发生的所有主要事件,如检查点、错误信息、系统信息或用户信息。
如果在检查点有不符合被发现,可以在TestResults(测试结果)窗口查看预期结果和实测结果。
如果是位图不符合,也可以查看用于显示预期值和实测结果之间差异的位图。
报告发现的错误
如果由于测试中发现错误而造成测试运行失败,可以直接从TestResults窗口报告有关错误的信息。
这些信息通过EMAIL发送给测试经理(QAManager),用来跟踪这个错误直到被修复。
1.启动WinRunner
点击开始>
程序>
WinRunner>
WinRunner启动WR。
WR的Record/RunEngine(记录/执行引擎)的图标出现在Windows的任务条上。
这个引擎设立和维护WR和被测软件之间的连接。
第一次启动WR会看到欢迎窗口,你可以选择新建测试、打开已有测试或快速预览WR。
如果不希望下次启动看到这个窗口,可以把Showonstartup前面的勾去掉。
2.WinRunner主窗口
主窗口包括以下部分:
a).WinRunnertitlebar标题栏
b).Menubar菜单栏
c).Standardtoolbar标准工具栏,包含运行测试时常用的命令
d).Usertoolbar用户工具栏,包含创建测试时常用的命令
e).Statusbar状态栏
测试窗口
在测试窗口创建和执行测试,窗口包含以下部分:
a).TestWindowtitlebar测试窗口标题栏,显示当前打开的测试名称
b).Testscript测试脚本,通过录制或编写代码方式生成
c).Executionarrow执行箭头,指明当前正在执行的那一行脚本,如果想要移动这个标志到某一行,只需要在该行左侧空白处点击鼠标左键
d).Insertionpoint插入点,支出你可以插入或编辑文本的地方
加载WinRunner插件
在WinRunner启动时,可以选择支持ActiveXcontrol、PowerBuilder、VisualBasic或WebTest的插件。
其他插件需要单独向MI公司购买,建议不要同时载入所有的插件,不必要的插件可能会对录制或执行脚步造成问题。
把Showonstartup前面的勾去掉,这个Add-InManager的窗口就不会在WR启动的时候出现。
你也可以在进入WR后在Settings>
GeneralOptions>
Enviroment里面设置是否在开始时显示这个窗口以及等待时间等。
接下来你会以ContextSensitive模式录制一段测试脚本,此测试脚本的操作流程为在FlightReservation开启一笔订单。
1.开启WinRunner并加载GUIMapFile执行【开始】->
【程序集】->
【WinRunner】->
【WinRunner】,如果是第一次执行WinRunner,会开