《软件测试课程期末报告(学号-姓名)》由会员分享,可在线阅读,更多相关《软件测试课程期末报告(学号-姓名)(25页珍藏版)》请在金锄头文库上搜索。
1、 软件测试课程软件测试课程 期末报告期末报告 学学 院院 : 专专 业业 : 班班 级级 : 学学 号号 : 姓姓 名名 : 任任课课教教师师 : 二二一六一六 年年 六六 月月 I 目录 1 软件测试基本理论.1 1.1软件测试分类.1 1.2 软件测试工具4 1.2.1 白盒测试工具.4 1.2.2 黑盒测试工具.5 1.3 软件测试基本步骤6 2 软件测试实践.7 2.1测试程序介绍.7 2.1.1 程序功能.7 2.1.2 程序代码.7 2.2白盒测试实践.10 2.2.1 白盒测试工具介绍.10 2.2.2 测试用例.11 2.2.3 测试步骤.11 2.2.4 测试结果及分析.12
2、 2.3黑盒测试实践.14 2.3.1 黑盒测试工具介绍.14 2.3.2 测试用例.15 2.3.3 测试步骤.15 2.3.4 测试结果及分析.20 3 测试总结.20 1 1 软件测试基本理论软件测试基本理论 1.1软件测试分类软件测试分类 软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法 ,对测试进行分类是为了更好的明确测试的过程,了解测试究竟要完成哪些工作 ,尽量做到全面测试。 1.按是否需要执行被测软件的角度 按是否需要执行被测软件的角度,可分为静态测试和动态测试,前者不利用 计算机运行待测程序而应用其他手段实现测试目的,如代码审核。而动态测试则 通过运行被测试软
3、件来达到目的。 2.按阶段划分: 1.单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等 等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验 软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和编码的细节 知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块 来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要 。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被 测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错 测试、分域测试等等。 2.集成测试 集成测试是在软件
4、系统集成过程中所进行的测试,其主要目的是检查软件单 位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合 成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部 分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。 3.系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正 确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一 项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试 计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系 2 统测试方法很多,主要有功能测试、性能测试、随
5、机测试等等。 4.验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试 数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统 的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前 的最后测试。 5.回归测试 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检 验对软件进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修 改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响 软件的其他功能的正确性。 6.Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计 变更。
6、这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成 。 7.Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发 行前找到。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员 完成。 3.按测试方法划分: 1 白盒测试 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑 知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作 过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按 照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确 工作,而不顾它的功能,白盒测试的主要方法有逻
7、辑驱动、基路测试等,主要用 于软件验证。 “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒 ”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从 检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即 3 使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反 了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序 中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误 。 白盒测试可以借助一些工具来完成如Junit Framework,Jtest等。 2 黑盒测试 黑盒测试是指不基于内部设计和
8、代码的任何知识,而基于需求和功能性的测 试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能, 通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打 开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接 口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序 是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据 库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因 果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软 件功能进行测试。“黑盒”法
9、是穷举输入测试,只有把所有可能的输入都作为测 试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多 个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进 行测试。 黑盒测试也可以借助一些工具,如WinRunner,QuickTestPro,Rational Robot等。 3 ALAC(Act-like-a-customer)测试 ALAC测试是一种基于客户使用产品的知识开发出来的测试方法。ALAC测 试是基于复杂的软件产品有许多错误的原则。最大的受益者是用户,缺陷查找和 改正将针对哪些客户最容易遇到的错误。 1.2 软件测试工具软件测试工具 1.2.1 白
10、盒测试工具白盒测试工具 1. JTEST: 4 jtest是parasoft公司推出的一款针对java语 言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高 代码的可靠性。Jtest先分析每个java类,然后自动生成 junit测试用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的 异常暴露出来;另外,它还可以检查以DbC(Design by Contract)规范开发的代码的正确性。用户还可以通过扩展测试用例的自动生成 器来添加更多的junit用例。Jtest还能按照现有的超过350个 编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义
11、这些 标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏 、性 能问题、安全隐患这样的代码问题。 2. JMETER: JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100% 的用java实现。使用JMeter进行性能测试。 JMeter可以用于测试静态或者动态资 源的性能(文件、Servlets、Perl脚本、java对象、数据库数据库和查询、ftp服务器或者 其他的资源)。JMeter用于模拟在服务器、网络网络或者其他对象上附加高负载以测 试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性 能情况。你可以用JMeter提供
12、的图形化界面分析性能指标或者在高负载情况下测 试服务器/脚本/对象的行为。 3. JUNIT: JUnit是一个开源的 java测试框架,它是Xuint测试体系架构的一种实现。在JUnit单元测试框架的设计 时,设定了三个总体目标,第一个是简化测试的编写,这种简化包 括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第 三个则是可以利用既有的测试来编写相关的测试。junit是完全免费的,使用方便 。在你提升程序代码的品质时JUnit测试仍允许你更快速的撰写程序那听起来似乎 不是很直觉,但那是事实。当你使用JUnit撰写测试, 你将花更少的时间除虫,同时对你程序代码的改变更俱有
13、信心。这个信心让你更 积极重整程序代码并增加新的功能。使用JUnit你可以快速的撰写测试并检测你的 程序代码并逐步随着程序代码的成长增加测试。只要你写了一些测试,你想要快 速并频繁的执行测试而不至于中断建立设计及开发程序。 4. BoundsChecker: BoundsChecker是一个运行时错误检测工具,它主要定位程序运行时期发生的 5 各种错误。BoundsChecker是一个运行时错误检测工具,它主要定位程序运行时期 发生的各种错误它通过驻留在Visual C+开发环境内部的自动处理调试程序来加速应用程序的开发,缩短产品发布时 间。BoundsChecker对于编程中的错误(大多数是
14、C+中特有的)提供了清晰的详 细的分析。它能够检测和诊断出在静态,堆栈内存中的错误以及内存和资源泄漏 问题。在运行状态下BoundsChecker验证超过8700APIs和OLE方法,包括最新的W indows APIs,ODBC,ActiveX,DirectX,COM和Internet APIs。BoundsChecker采用一种被称为Code Injection的技术,来截获分配内存和释放内存函数的调用。简单的说,当你的程 序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间,然后它会修改 进程中分配和释放内存的函数的调用,让这些调用首先转入它的代码。BoundsCh
15、ecker在做这些动作时,无需修改被调试程序的源代码或工程配置文件,这使得它 使用非常的简便、直接。 1.2.2 黑盒测试工具黑盒测试工具 1. LoadRunner: LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万 用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能 够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时 间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估 系统性能。 2. TestDirector8.0: TestDirector能
16、够在一独立的应用系统中提供需求管理功能,并且可以把测试 需求管理于测试计划、测试日程控制、测试执行和错误跟踪等功能融合为一 体,因此极大地加速了测试的进程。电子商务正改变着许多公司在如何规划 并建立IT系统方面的决定。常常在一瞬间,一个Web应用就完成了创建和部 署,并展现在您的客户、供应商或合作伙伴的面前。但是,由于紧凑的开发 计划和复杂的系统结构,Web应用测试经常是被忽视的。为了与心经济同步 ,您必须开发经过全面测试的高品质的网络应用。 6 在正式面试之前,测试管理提供了一套测试Web应用的组织框架。由于测试 方案会根据不断推陈出新的应用要求而改进,您需要设立一个中央点来管理 测试过程。一套基于Web的测试管理系统提供了一个协同合作的环境和一个 中央数据仓库。由于测试人员分布在各地,您需要一个统一的测试管理系统 能让用户不管在何时何地都能参与到整个测试过程中,并献计献策。IT部门 的增长速度非常快,人员也经常流动。您必须以最快的速度培训新的测试人 员,教会他们所有的测试有关的知识技术。而TestDirector所提供的一种单点 模式,便于管理复杂的部署过程,改