《软件测试实验指导书.doc》由会员分享,可在线阅读,更多相关《软件测试实验指导书.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件测试技术实验指导书王永安东北石油大学软件学院软件工程系2012年4月前言 实验基础知识1.1 软件测试概述1软件测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 2测试过程为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、系统测试和验收测试。代码会审由一组人通过阅读、讨论和争议对程序进行静态分析的
2、过程。单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。系统测试是测试整个系统,以证实它满足“需求规格说明书”所规定的功能、质量和性能等方面的特性。验收测试的目的是向未来的用户表明系统能够像预定要求那样工作。与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。3测试方法软件测试的方法分为功能性测试和结构性测试。功能测试是指在对程序进行功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进
3、行测试。进行功能测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。此方法把测试对象看作一个透明的盒子,又叫白盒测试。4测试工具软件测试的工作量很大(据统计,会用到40% 的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到总开发时间的60% ),但测试却是在整个软件过程中极有可能应用计算机进行自动化的工作,原因是测试的许多操作是重复性的、非智力创造性的、需求细致注意力的工作。测试工具
4、的应用已经成为了普遍的趋势。测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(包括测试流程管理、缺陷跟踪管理、测试用例管理)的工具。本实验课程中主要涉及到QuickTest Professional和LoadRunner自动化测试工具。1.2 测试用例的编写1测试用例软件测试的本质是针对要测试的内容确定一组测试用例。测试用例是为实施一次测试而向被测系统提供的输入数据、操作或各种环境设置。测试用例应该包含基本的内容有输入和预期输出,输入实际有两种类型:前提(在测试用例执行前已经存在的环境)和由某种测试方法所标识的实际输入。预期输出也有两类:后果和实际输出。测试活动
5、要建立必要的前提条件,提供测试用例输入、观测输出、然后将这些输出与预期输出进行比较,以确定该测试是否通过。开发良好的测试用例的其他信息(如表1)主要支持测试管理,测试用例需求被开发、评审、使用、管理和保存。表1-1 测试用例测试用例ID目的前提输入预期输出后果执行历史日期:结果执行人有两种基本方法可以用来标识测试用例,即功能性测试和结构性测试。功能性测试的基本观点是,任何程序都可以看作是将从定义域取值映射到输出值域的函数。这种观点常常在工程中使用,将系统看作是黑盒。采用功能性方法标识测试用例,所使用的唯一信息就是软件的规格说明。功能性测试用例具有两个显著的优点:(1)功能性测试与软件如何实现无
6、关,所以如果实现发生变化,测试用例仍然有用;(2)测试用例开发可以与实现并行进行,因此可缩短总的开发时间。在缺点方面,功能性测试用例也常常带来两个问题:测试用例可能存在严重的冗余,此外可能还会有未测试的软件漏洞。功能性测试的主流方法主要有:边界值分析、健壮性分析、最坏情况分析、特殊值测试、输入等价类、输出等价类和基于决策树的测试。结构性测试有时也叫白盒测试。结构性测试是知道软件产品内部工作过程,检测软件产品内部动作是否按照规格说明书的规定正常进行。结构性测试需要全面了解程序内部逻辑结构、对所有逻辑路径进行测试。结构性测试是穷举路径测试,并力求提高测试覆盖率。结构性测试的主要方法有:逻辑覆盖测试
7、、基路径测试、数据流测试等方法。在实际应用中,为全面的测试软件产品,一般将结构性测试和功能性测试结合起来使用。2软件缺陷分类有多种方法可以对缺陷分类:以出现相应错误的开发阶段来划分、以相应失效产生的后果来划分、以解决难度来划分、以不解决难度会产生的风险来划分等等。在日常的软件测试中,通常给出的缺陷是根据缺陷后果的严重程度来进行划分,如下表2所示。在实际应用中可以根据具体情况对严重程度来划分不同的等级。 3测试用例的选择选择测试用例是软件测试员最重要的一项任务,不正确的选择可能导致测试量过大或过小,甚至测试目标不对。从工程实践的角度讲,测试用例有几条基本准则:(1) 测试用例的代表性:能够代表各
8、种合理和不合理的、合法的和非法的、边界和越界的,以及 极限的输入数据、操作和环境设置等;(2) 测试结果的可判定性:即测试执行结果的正确性是可判定的或可评估的;(3) 测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。表1-2 缺陷划分表编号缺陷等级举例1轻微词语拼写错误2中等误导或重复信息3使人不悦被截取的名称4影响使用有些交易没有处理5严重丢失交易6非常严重不正确的交易处理7极为严重经常出现非常严重的错误8无法忍受数据库破坏9灾难性系统停机10容易传染扩展到其他系统的系统停机实验1 黑盒测试用例设计 一、实验目的u 能熟练应用黑盒测试技术进行测试用例设计;u 能对测试用例
9、进行优化设计;二、实验环境Windows环境,Word和Visio或者相关的办公软件, C/C+或Java编程环境;三、实验内容1题目一:电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是:(1)地区码:空白或3位数字;(2)前 缀:非0或1的3位数字;(3)后 缀:4 位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。2题目二:三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个
10、三角形是三边不等的、是等腰的、还是等边的。”3题目三:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1month12和1day31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
11、(3) 根据 (1) 和 (2) ,画出简化后的决策表。4题目四:找零钱最佳组合假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数?(货币面值50元10 元,5 元,1元四 种 )四、实验步骤 (1) 根据黑盒测试技术设计测试用例(参照附件1),主要考虑等价类划分和边界值分析测试技术; (2) 根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计题目1、2两套测试用例; (3) 根据设计的测试用例集进行测试;五、实验要求 (1) 根据题目要求编写测试用例文档(参照附件1进行用例设计)
12、;(2) 必须要有相应的用例步骤; (3) 撰写实验报告; 六、实验思考题(1) 在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷; (2) 在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;附件1:测试用例参考模版0软件测试用例参考模版用例编号版本号测试环境 用例名称前提条件测试步骤输入数据预期输出实际输出同预期输出:(Y/N)问题描述设计人设计日期测试人测试日期再测试人再测试日期修改意见(用选择1、同意修改 2、不必修改 3、暂时不修改 问题修改摘要修改人修改日期例1:163邮箱注册模块测试用例请按测试用例模板来编写163邮箱注册模块的测试用
13、例(假设没有重复的用户名),界面如下图所示。1、填写出等价类表等价类表输入条件有效等价类无效等价类2、根据等价类表编写测试用例163邮箱注册模块测试用例参考答案用例编号测试步骤输入数据预期结果1输入用户名,密码和密码确认,点击“提交表单”用户名:a09.-_z密码:密码确认:注册成功2输入用户名,密码和密码确认,点击“提交表单”用户名: # $密码:密码确认:提示“用户名非法,请重新输入”3输入用户名,密码和密码确认,点击“提交表单”用户名:空格密码:密码确认:提示“用户名非法,请重新输入”4输入用户名,密码和密码确认,点击“提交表单”用户名:aa0密码:密码确认:注册成功5输入用户名,密码和密码确认,点击“提交表单”用户名:0aa密码:密码确认:注册成功6输入用户名,密码和密码确认,点击“提交表单”用户名:-_密码:密码确认:提示“用户名只能以数字或字母开头和结尾,请重新输入”7891011