软件测试方法研究_第1页
软件测试方法研究_第2页
软件测试方法研究_第3页
软件测试方法研究_第4页
软件测试方法研究_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)题 目:软件测试方法研究学 生: 指导老师: 系 别: 计算机与信息科学系 专 业: 网络工程 班 级: 网络0803 学 号: 08300403 2012年4月目 录摘 要3Abstract41. 软件测试业现状52. 软件测试的目的62.1测试的目的62.2软件测试的原则63. 软件测试分类64. 测试用例设计实例114.1黑盒测试114.1.1等价类划分法124.1.2边界值分析法124.1.3因果图方法134.1.4决策表法144.1.5错误推测方法154.2白盒测试155.测试案例分析165.1软硬件环境165.1.1网络拓扑175.1.2 Bug趋势图175.1.3

2、 Bug严重程度195.1.4 Bug引入阶段205.1.5 Bug引入原因215.1.6 Bug状态分布215.2测试结论215.2.1功能性215.2.2易用性225.2.3可靠性225.2.4兼容性225.2.5安全性225.3分析摘要225.3.1覆盖率225.3.2遗留缺陷的影响235.4建议246.软件测试中存在的问题及建议256.1软件测试只是开发过程中的一个阶段256.2测试人员是软件质量的责任人256.3软件测试的专业性266.4测试工具和测试自动化重要性的不断提高267.总结27致 谢28参考文献29摘 要软件测试作为保证软件质量和生存周期,提高软件可靠性的重要手段,在软件

3、开发中有着重要的作用,是软件开发周期中必不可少的环节。随着现代面向对象软件工程的发展,面向对象软件测试方法也日益显现出其重要性。由于面向对象软件开发方法引入了不同于传统软件的新特性,面向对象软件测试与传统软件测试相比有更多的困难。本文系统地介绍了软件测试的现状、目的、分类、以及软件测试实例,给出了软件测试案例的选择方法,探讨了软件测试过程中的一些注意事项以及建议。关键字:软件测试;软件可靠性;软件开发;AbstractSoftware testing, software quality assurance and life cycle, an important means to improv

4、e software reliability, has an important role in software development is an essential part of the software development cycle. With the development of modern object-oriented software engineering, object-oriented software testing methods are also increasingly showing its importance. As the object-orie

5、nted software development methods to introduce new features, different from the traditional software object-oriented software testing and software testing compared with more difficulties. This paper systematically describes the status of software testing, the purpose of classification, as well as so

6、ftware test case, given the choice of method for software test case to explore some of the considerations in the software testing process as well as the proposed.Keyword:Software Testing;Software reliability;Software Development;1. 软件测试业现状近年来,尽管国内应用软件的开发取得了突飞猛进的发展,但是离国际先进水平仍然有不小的差距,人们对于软件质量的重视程度越来越高

7、,就导致了测试在软件开发中的地位将越来越重要,毕竟测试是目前用来验证软件是否能够完成所期望的功能的唯一有效方法。随着计算机应用领域的迅速扩大,计算机软、硬件新技术的不断涌现,人们对软件质量提出了新的更高的要求。软件测试是软件开发过程的一个重要组成部分,对于质量保证具有举足轻重的作用,软件测试的实质是根据软件开发各阶段的规格说明和程序的内部结构精心选取一批测试数据,形成测试用例,并用这些测试用例去驱动被测程序,观察程序的执行结果,验证所得结果与预期结果是否一致,然后做相应的调整。与国外的状况相比,国内在软件测试方面的研究内容相对较少,因为软件测试在我国起步较晚,起初只是简单的手工测试,也很少见到

8、各种软件测试模型,软件测试时间预测方面的研究也较少,但近几年来随着软件在各个行业的应用,软件测试也得以迅速发展。现代大规模软件系统开发中,多层次分布式结构因其可伸缩性好、可管理性强、安全性高、软件重用性好以及节省开发时间等诸多优点而得到广泛应用。在系统的性能测试过程中,为了取得完整的性能数据,测试要求在不同的参数配置下反复运行、分析和调试:在同一组参数配置下,往往还要重复运行多次以收集到更可靠的数据,为了模拟系统真实的工作情形或者取得系统的极限状态,必须进行强压力测试,即大批量,长时间地向系统施加负荷。软件开发过程中,迭代式的开发过程己经显示出了与瀑布式开发相比巨大的好处,并己逐渐取代传统的瀑

9、布式开发成为目前最流行的软件开发过程。目前的GUI等开发技术己经非常先进,它提供给开发人员快捷开发的能力。保证软件质量关键的软件测试必然需要更多的关注与投入。2. 软件测试的目的从不同的立场出发,对测试目的的理解是不同的,可以从软件开发者和用户两个角度出发看看软件测试的目的。软件开发者:希望通过软件测试验证该软件产品达到了用户的要求,软件质量是有保证的。用户:希望经过软件测试,暴露出软件中的错误和缺陷,是否完全实现了所期望的软件功能,从而判断能否接受该软件产品。2.1测试的目的2.1.1证明软件的功能和性能是否符合规定的需求2.1.2为软件可靠性的分析奠定了基础;2.1.3以最少的时间和人力,

10、弄清预期结果与实际结果之间的差别。在用户使用之前,通过发现并修正错误、缺陷来提高软件质量,以避免日后软件的错误和缺陷带来难以估计的风险。2.2软件测试的原则2.2.1软件开发者要把“及早地、不断地进行软件测试”这一信条付诸行动;2.2.2由测试输入数据、对应的预期输出结果组成测试用例;2.2.3设计测试用例时,应包括不合理的输入条件、合理的输入条件;2.2.4由于存在盲目的自信,所以程序员应避免检查自己的程序;2.2.5排除测试的随意性,对每一个测试都严格执行测试计划;2.2.6测试后,残存的缺陷数和已发现的缺陷数成正比,所以测试过程中,要重点测试群集的程序;2.2.7为了更好地维护软件,要妥

11、善保存测试计划、测试用例、出错统计和分析报告。3. 软件测试分类随着软件测试技术的发展,测试方法更加多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法。测试_Beta测试软件的多个用户在一个或多个用户的实际使用环境下进行的测试。测试_Alpha测试:由一个用户在开发环境下进行的测试,在系统开发接近完成时对应用系统的测试。可移植性测试:指测试软件是否可以被成功移植到指定的硬件或软件平台上。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能,确保用户界面符合公司或行业的标准。冒烟测试:任何新电路板焊好后,先通电检查,如果存在设

12、计缺陷,电路板可能会短路,板子冒烟。随机测试:根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。本地化测试:测试的目的是测试特定目标区域设置的软件本地化质量,测试的环境是在本地化的操作系统上安装本地化的软件。国际化测试:目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。安装测试:确保软件在正常情况和异常情况下,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。白盒测试:白盒测试是根据被测程序的内部结构及有关信

13、息来设计测试用例,并测试程序的逻辑路径,所以白盒测试又称作结构测试。在全面清楚了解软件产品的内部工作处理过程、程序的语句和结构的前提下,白盒测试要求针对程序模块的结构特性的达到一定覆盖率,以检测软件工作处理过程的细节为基础,通过对程序模块完成以下工作来对软件进行验证:1,测试程序中每条路径、所有内部成分是否按照规定和要求进行工作;2,测试程序内部的运行路径、变量状态、逻辑关系等;3,检验程序的运行是否满足需求设计。黑盒测试:黑盒测试是根据程序的功能来设计测试用例。把被测程序视为一个不能打开的黑盒子,重点放在程序外部结构,不关心内部逻辑结构和特性,只针对软件功能及界面开展测试。自动化测试:通常在

14、GUI、性能等测试和功能测试中使用。回归测试:在发生修改之后重新测试先前的测试以保证修改的正确性。验收测试:系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。验收测试有的三种策略:正式验收、非正式验收。动态测试:动通过运行软件来检验软件的动态行为和运行结果的正确性。1,单元测试2,集成测试3,系统测试4,验收测试5,回归测试。探索测试:指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。单元测试:最微小规模的测试,以测试某个功能或代码块。典

15、型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。集成测试:应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。系统测试:基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。端到端测试:类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。健全测试:初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能力

16、。衰竭测试:指软件或环境的修复或更正后的“再测试”。接受测试:基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。负载测试:测试一个应用在重负荷下的表现。强迫测试:用于描述象在异乎寻常的重载下的系统功能测试之类的测试。压力测试:基本的质量保证行为,它是每个重要软件测试工作的一部分。性能测试:性能测试一般包括负载测试和压力测试。通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。可用性测试:可用性测试是对“用户友好性”的测试。卸载测试:对软件的全部、部分或升级卸载处理过程的测试。主要是测试软件能否卸载,卸载是否干净,对系统有无更改,在系统中

17、的残留与后来的生成文件如何处理等。恢复测试:恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。安全测试:安全测试是测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况。兼容性测试兼容测试是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。向上兼容向下兼容,软件兼容硬件兼容。比较测试:比较测试是指与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。可接受性测试:可接受性测试是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳

18、定。边界条件测试:一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。强力测试:强力测试通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。装配/安装/配置测试:装配/安装/配置测试是验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。静态测试:静态测试指测试不运行的部分,静态方法通过程序静态特性的分析,找出欠缺和可疑之处。静态测试常用工具有:Logiscope、PRQA;隐藏数据测试:隐藏数据测试在软

19、件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。等价划分测试:等价划分测试是根据等价类设计测试用例的一种技术。通过把被测试程序所有可能的输入数据域划分成若干部分。从每一部分中选取少数有代表性的数据作为测试用例,可有效减少测试次数,极大提高软件测试效率,缩短软件开发周期。判定表:是指一个表格,用于显示条件和条件导致动作的集合。判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。深度测试:是指执行一个产品的一个特性的所有细节,但不测试所有特性。必须启用“#深

20、度测试”,才能执行测试。基于设计的测试:是根据软件的构架或详细设计引出测试用例的一种方法。一种基于设计模型的测试方法利用用户界面自动生成方法,把设计模型中的类属性定义和实现中的控件属性组织在一起,构建描述界面的逻辑对照表,辅助测试脚本引擎执行自动测试脚本.借助设计模型中扩展的类定义,MATIS方法可以自动生成测试用例和测试数据。文档测试:文档测试有三大类分别是开发文件、用户文件、管理文件。1,开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。2,用户文件:用户手册、操作手册。3,管理文件:项目开发计划、测试计划、测试分析报

21、告、开发进度月报、项目开发总结报告。域测试:一般分为单域测试和多域测试,其中单域测试包括设备测试和业务测试,设备测试包括测试某个系统的软交换设备、中继媒体网关设备、信令网关设备、接入媒体网关和IAD等设备。接口测试:接口测试的好处:由于接口测试代码本身就是用junit来实现的,是属于自动化测试的范畴,因此必定也包含自动化测试所固有的优势。逆向、反向、负面测试:负面测试是相对于正面测试而言的。它们也是测试设计时的两个非常重要的划分。正面测试就是测试系统是否完成了它应该完成的工作,而负面测试就是测试系统是否不执行它不应该完成的操作。4. 测试用例设计实例随着软件测试技术的发展,测试方法更加多样化,

22、针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是常用的黑盒、白盒测试方法。4.1黑盒测试黑盒测试有时也叫作为功能测试.在这种测试方法中更多的关注于程序的外部结构,不过多考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。在黑盒测试中,形象的把程序比作一个不能打开的盒子,在不考虑代码的内部流程和内部优化性能的情况下,对程序的接口各个功能块等进行测试。它只检查程序功能是否按照需求规格说明书的规定正常使用,不考虑性能是否优化合理,只考虑程序是否能正确地接收输入数据而产生正确的输出信息,不考虑信息处理优化性能等。黑盒测试法主要试图发现的错误有:界面图形化错误,功能模块错误或者遗漏,初始化

23、和终止错误,数据库访问错误等;用于黑盒测试的常用方法有如下几种洲:等价类划分法、边界值分析法、因果图方法、决策表法、错误推测方法等。4.1.1等价类划分法等价类划分法是指把所有可能的输入数据划分成若干部分,即将输入域划分为若干个子集。在该子集合中,各个输入数据对于发现程序中的缺陷都是等效的,它们具有等价特性,也就是说从每个子集中选取少量具有代表性的数据作为测试用例输入数据,它们就代表了此子集的整个类别。每一类的代表性数据在测试中的作用都等价于这一类中的其它数据。等价类划分是黑盒测试用例设计中的常用设计方法,它将本来就不可能穷举完的测试过程进行合理的分类,从而保证设计出来的测试用例具有典型的代表

24、性和完整性。等价类划分方法在使用过程中有两个步骤:第一为分类,分类就是将输入域输入空间,按照具有相同特性或者类似功能划分成各个类或者等价子域;第二为抽象,就是在各个子类中抽象出相同特性,并用要用实例来表征这个特性。等价类划分可有两种不同的情况:有效等价类和无效等价类。举例,在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。例如数学科成绩,范围是O一150(图4.1.1)0 150无效等价类 有效等价类 无效等价类数学成绩0 0数学成绩150 数学成绩150图4.1.1等价类划分图4.1.2边界值分析法边界值分析法是作为对等价类划分方法的补充,因为它是对输入或

25、输出的边界值进行测试的一种黑盒测试方法。由于它是对于等价类划分方法的补充,所以其测试用例数据也就来自等价类的边界。根据实际项目经验,大部分的问题会出现在输入域或者输出域的边界上,而出现在输入域或者输出域的内部的情况较少,因此边界值分析法在实际项目的实施测试过程中很有实用价值。边界值分析当然不是从某个等价类中随便挑一个数据作为代表,而是将这个等价类的每个边界都要作为测试条件。一般情况下,边界值分析不仅考虑输入条件输入域,还要考虑输出空间输出域产生的测试结果情况。利用边界值分析方法设计测试用例,首先要确定边界情况。别外还要分析规格说明,找出逻辑中的边界条件。通常输入域和输出域等价类的边界,就是要着

26、重测试的边界情况。在数据选取时应当选取正好等于这个边界值,正好小于或正好大于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。当然在测试的过程中,这些典型的数据也是要测试的。只是在等价类划分方法中它们不是重点测试对象而已。下面是对于不同的测试项边界值分析选取典型值的分类总结(表4.1.2)。表4.1.2边界值分析方法项边界值设计思路字符起始减去1个字符/结束加上1个字符假设某个格式输入区域允许输入1个到1024个字符,输入1个和1024个字符作为有效等价类,输入0个和1025个字符作为无效等价类,这几个数值都属于边界条件值。数值最小值减去1/最大值加上1假设一个软件的数据输

27、入4位数值,可以使用1000作为最小值,9999作为最大值,然后使用刚刚小于4位和大于四位的值作为边界条件空间小于空余空间一点/大于满空间一点例如在用硬盘存储数据时,使用比剩余磁盘空间刚好大一点(及KB)的文件作为边界条件4.1.3因果图方法因果图方法是一种利用图解法分析输入的各种组合情况,是利用因果图解法分析输入组合后从而设计测试用例的方法囚,它适合于要检查程序输入条件的各种组合的情况。为何会出现因果图方法,这还要从等价类划分法和边界值分析法说起,因为等价类划分法和边界值分析法它们两个都是着重考虑输入条件,但没有考虑输入条件的各种组合,没有考虑输入条件之间的相互制约关系。这样虽然各种输入条件

28、可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却容易被忽视,这个问题就要因果图法来解决。另外一个因果图法存在的理由是如果在测试时必须考虑输入条件的各种组合,组合数目可能会相当大,我们不可能将所有的组合都试一遍,而因果图是一种适合于描述多种条件的组合逻辑模型,可以产生多个动作的形式来进行测试用例的设计。采用因果图法设计测试用例的一般需要三个步骤:第一步:根据需求规格说明书描述,画出因果图。第二步:将因果图转换为判定表。第三步:将判定表转换为测试用例。(图4.1.3)11011101 (a)恒等 (b)非11110112131201(c)或 (d)与图4.1.3因果图的四种因果关

29、系在因果图的基本符号中,图中的左结点h表示输入状态,右结点Oi表示输出状态。h与Oi取值0或1,O表示状态不出现,1则表示状态出现。恒等:若cl是1,则01也为1,否则01为O。非:若11是1,则01为0,否则01为l。或:若n或12或13是1,则01为1,否则01为O。与:若11和12都是1,则01为l,否则01为0。4.1.4决策表法决策表法也称判定表法,一般认为基于决策表的测试是最为严格、最具逻辑性的测试方法。决策表的概念:一决策表L州是表达多逻辑条件下分析和执行不同操作的情况的工具。判定表通常由四个部分组成:它们四个部分的关系可以用(图4.1.4.1)表示 规则条件桩 条件项 动作桩

30、动作项 图4.1.4决策表的条件桩与动作桩在判定表分析法里有相当多的规则如(表4.1.4.2)所示的规则合并。在第一个条件与第二个项分别取A、B时,无论条件三取何值,都执行同一操作。即要执行的动作与第三个条件无关。于是可合并。“一”表示与取值无关。 AABBABCCAB-C表4.1.4.2规则合并较图4.1.5错误推测方法错误推测法是基于测试人员的经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的去设计测试用例的方法。错误推测方法的最基本思想是列举出程序中所有可能的错误和最容易发生错误的特殊情况,从这一点就可以看出经验在这个方法里的要求是很高的,根据罗列出的的条件来选择测试用例。以上列

31、举了黑盒测试常用的方法,下面是黑盒测试的流程:黑盒测试的简要流程,第一步:测试计划。第二步:测试设计。第三步:测试开发。第四步:测试执行。第五步:测试评估4.2白盒测试白盒测试也称结构性测试或者逻辑驱动测试,它是按照程序内部的结构来测试程序,通过测试来检测软件内部是否按照需求规格说明书与设计规格说明书的规定正常进行,检测程序代码中的每条路径是否都能按预定的要求正确工作。白盒测试最主要关注的是测试用例执行的程度,或者覆盖程序源代码逻辑结构的程度。白盒测试法要试图发现的缺陷与错误如下:对程序模块的所有独立的执行路径至少测试一次,看各个独立模块是否正确。对所有的逻辑判定,将所有真假情况都要遍历到,取

32、“真”与取“假”的两种情况都最少测试一次。在循环的边界和运行界限内执行循环体,测试循环体是否正确。测试程序内部数据结构的有效性等。用于白盒测试的常用方法有如下几种:白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。常用的六种覆盖标准语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖,它们发现错误的能力呈由弱至强的变化趋势(表4.2.1)(表4.2.2)。表4.2.1六种覆盖标准定义对比表语句覆盖指的是每条语句最少执行一次判定覆盖指的是每个判

33、定的分支最少执行一次条件覆盖每个判定的每个条件都要取到可能的值判定判定/条件覆盖顾名思义同时满足判定覆盖与条件覆盖的情况条件组合覆盖每个判定中各条件的每一种组合最少出现一次路径覆盖使程序中每一条可能的路径最少执行一次采用白盒测试设计测试用例的一般需要三个步骤:第一步:根据代码的功能、程序控制流程图,规划测试用例;第二步:统计覆盖率,比较理想的覆盖率是实现100%;第三步:捕捉可能未处理的某些特殊输入所形成的错误或者缺陷来补充测试用例。 表4.2.2控制结构测试方法路径测试利用流图标识独立路径等路径测试分支测试域测试等控制结构测试路径测试包含循环和嵌套选择路径的策略路径测试简单循环嵌套串接无结构

34、循环路径选择5.测试案例分析5.1软硬件环境硬件环境应用服务器数据库服务器客户端硬件配置CPU:Intel(R) Celeron(R) CPU 2.40GHz stepping 01Memory: 1048256kHD:ST380817AS 80G SATACPU:Intel(R) Celeron(R) CPU 2.40GHz stepping 01Memory: 1048256kHD:ST380817AS 80G SATACPU:Intel(R) Celeron(R) CPU 2.40GHz stepping 01Memory: 1048256kHD:ST380817AS 80G SATA软

35、件配置OS:CentOS 4.2JDK 1.5.0_06Apache 2.2.0Tomcat 5.5.15OS:CentOS 4.2MySQL 5.0.17 LinuxWindow 2000 Professional (SP2)IE6.0.2900.2180.xpsp_sp2网络环境10M LAN10M LAN10M LAN 5.1.1网络拓扑5.1.2 Bug趋势图此次黑盒测试总共发布11个版本,B1B5为计划内迭代开发版本(针对项目计划的基线标识),B6-B11为进行的回归测试版本,bug版本趋势图如下图所示:第一阶段,增量确认测试。时间从2011年7月2日到2011年8月3日。从Bug趋

36、势图中可以看出,每个版本的bug数基本维持在60个左右。B1:从图中看到B1共有33个BUG,因为B1版本有一个功能模块在B2版本才开始测试,B1测试模块相对较少,所以B1版本bug相对较少。B2:由于B1中的一个功能模块增加到Build 2中进行测试,这一版本除了对B1中的BUG进行验证同时对B1进行了回归测试,所以B2中的bug数相对B1出现了明显的增长趋势, B3:B3版本因为有B2版本的bug验收测试,以及B1,B2的回归测试,共发现67个bug,和B2基本保持一致。B4:B4版本bug数有一个下降的趋势,是因为B4版本推迟发布,新增加了测试人员参与测试,对系统不够熟悉,以及测试时间紧

37、张,部分测试用例没有执行,测试覆盖度不够,所以发现bug数呈下降趋势。B5:B5版本bug数又有一个增加的趋势,主要是由于开发功能模块多,该版本需求定义不明确。 第二阶段,BUG验证和功能回归确认测试。时间从2011年8月4日到2011年8月14日。B6和 B7进行了回归测试,B8没有进行回归测试,只验证了B1B7的bug。B6 :进行第一轮回归测试,发现的bug数为33个,遗留一个问题,为数据字典种类默认值问题B7 :进行第二轮回归测试,第一次回归测试没有涉及到权限控制菜单按钮的测试,在本次回归测试的时候,重点进行了这个方面的测试,又发现了大量的权限相关的bug。B8 :B8没有进行全面的回

38、归测试,只验证了B1B7未通过验证的bug,所以该版本的bug数明显比较少。B9 :B9版本进行了全面的回归测试,同时重点测试了权限控制,所以发先的bug数又呈现上升的趋势。测试发现44个bug,严重级别的bug为14个,严重级别的bug集中在权限控制上,功能性严重bug没有发现,说明权限控制依旧不稳定,但是系统功能已经稳定。B10:B10版本验证了B9版本发现得bug,没有进行全面的回归测试。B10版本在验证bug的时候,重现打开Bug6个,新增bug2个,重新打开bug有5个为严重级别bug,是关于权限控制的bug,而新发现的bug,1个为严重级别的bug,也是属于权限控制的。说明,权限控

39、制还存在着问题,需要修改权限管理bug,重新发布版本后进行全面的回归测试。B10版本新发现的bug详细分析见遗留bug分析。B11:B11中验证了B1B10未验证的bug,重点测试了权限控制,同时进行了查询,添加,删除,修改的功能测试,测试过程中未发现bug。5.1.3 Bug严重程度 测试发现的bug主要集中在normal和minor阶段,属于一般性的缺陷,但是测试的时候,出现了68个严重级别的bug,出现严重级别的bug主要表现在以下几个方面ü 系统主要功能没有实现ü 添加数据代码重复后,出现的找不到页面的错误ü 多语言处理,未考虑非语种代码的情况ü

40、 数据库设计未考虑系统管理员角色,导致用系统管理员进行操作的时候出现找不到页面错误ü 权限控制异常严重级别bug按版本分布如下:由严重bug版本分布图可以看出,严重级别的bug版本趋势和bug版本趋势基本是一致的,但是,在B7和B9版本中年,严重级别的bug明显增多,主要原因是B7和B9版本测试了权限控制按钮功能,权限问题出现的严重级别的bug比较多。权限bug主要表现:ü 具有相应按钮操作的权限,页面无相应按钮,无法执行该功能ü 无相应按钮操作权限,页面有相应按钮,点击按钮能出现权限异常错误ü 有相应按钮操作权限,有相应按钮,执行该功能出现权限异常错误

41、5.1.4 Bug引入阶段由上图可以看出,主要为前台编码和页面设计方面的bug,占到了全部bug的2/3。5.1.5 Bug引入原因由上图可以看出,主要为前台编码和易用性方面的bug,占到了全部bug的2/3。5.1.6 Bug状态分布由bug状态图可以看出,未解决的bug有4个,主要是B8中新提交的bug,是关于用户管理的bug,因为用户权限管理需要重新设计所以,该部分的bug暂时没有解决。5.2测试结论5.2.1功能性系统正确实现了通过数据字典管理基础数据的功能,实现了数据内容的多语言功能,实现了中英文界面。实现了基础数据管理,酒店集团管理,酒店基础信息管理,渠道管理,代理管理,用户管理的

42、查询,添加,修改,删除的功能,系统还实现了将权限控制细化到菜单按钮的功能。系统在实现用户管理下的权限管理功能时,存在重大的缺陷,权限控制不严密,权限设计有遗漏。5.2.2易用性 现有系统实现了如下易用性:ü 查询,添加,删除,修改操作相关提示信息的一致性,可理解性ü 输入限制的正确性ü 输入限制提示信息的正确性,可理解性,一致性现有系统存在如下易用性缺陷:ü 界面排版不美观ü 输入,输出字段的可理解性差ü 输入缺少解释性说明ü 中英文对应的正确性ü 中英文混排5.2.3可靠性现有系统的可靠性控制不够严密,很多控制是

43、通过页面控制实现的,如果页面控制失效,可以向数据库插入数据,引发错误。现有系统的容错性不高,如果系统出现错误,返回错误类型为找不到页面错误,无法回复到出错前的状态5.2.4兼容性现有系统支持window下的IE浏览器和傲游浏览器,支持linux系统下的IE浏览器和火狐浏览器。5.2.5安全性现有系统控制了以下安全性问题:ü 把某一个登录后的页面保存下来,不能单独对其进行操作不进行登录ü 直接输入某一页面的Url能否打开页面并进行操作不应该允许。现有系统未控制以下安全性问题:ü 用户名和密码应对大小写敏感ü 登陆错误次数限制5.3分析摘要5.3.1覆盖率此

44、次测试,所有测试用例都是在中文界面下执行,未在英文界面下执行,测试不包括英文界面下的测试,也不包括正对英文翻译的测试。此次测试,部分页面需求描述无明确的定义,对输入限制无详细定义,无明确的测试依据,在测试过程中,测试是根据输入字段含义,测试人员理解,以及和项目经理,开发人员沟通获得测试依据,无法保证测试依据的正确性和完整性,因此,没有进行完整的,正确的无效数据的测试,测试覆盖率不够,无法保证测试的有效性和正确性下面为此次测试测试用例覆盖率分析图:5.3.2遗留缺陷的影响 缺陷描述:酒店娱乐项添加页面, “距离”字段无单位,建议增加单位缺陷影响:距离字段无单位说明,无衡量标准,用户易用性不好推迟

45、原因:需求定义无单位定义,统一在升级版本中解决缺陷描述:酒店基础信息管理模块,默认语言设置不一致。用中文查询酒店,进入酒店基础信息模块后,如下模块,语言显示为“请选择”列表页面添加页面取消政策停留政策担保政策机场参照点会议室详情打包促销服务Rate而其他模块语言显示“中文语言”缺陷影响:相同功能模块默认语言设置不一致,一致性不好推迟原因:默认语言设置,目前无统一标准,升级版本中统一缺陷描述:tomcat日志有乱码,日志无项目名称,查看不方便缺陷影响:其他项目日志都有项目名称,日志无项目名称,查看不方便推迟原因:目前的日志为了调试方便,显示了很多其它信息,在项目正式发布时会统一处理的。缺陷描述:

46、取消政策管理要么,取消时间“天/小时”缺少单位补充字段缺陷影响:该处因为是两个不同的单位时间,需要有另外一个单位补充字段补充所所填写内容的单位推迟原因:该缺陷单位补充字段本来存在,翻译不够准确,不能理解为补充单位的字段,需要等翻译完毕后再确认。缺陷描述:数据字典种类修改,默认值设置后,在调用该数据字典种类的数据字典,默认值无显示缺陷影响:数据字典种类的默认值设置后,不能显示设置的默认值,相当于数据字典种类默认值设置功能未实现推迟原因:该功能暂时不好实现,需要和和系统的默认语种一起处理。缺陷描述:担保政策管理页面,“Edposit Due”缺少解释行输入描述信息缺陷影响:缺少解释性输入描述信息,

47、用户不理解应该输入什么内容推迟原因:需求没有描述,需要解释性说明文字由项目经理整理后,在升级版本中添加缺陷描述:多媒体添加,文件上传功能未实现缺陷影响:文件上传功能未实现推迟原因:该功能暂时不好完成,在下个版本中完成缺陷描述:参照点添加权限和修改权限单独控制出现权限异常错误缺陷影响:用户执行添加,修改时,出现权限异常,无法完成任务推迟原因:B9版本发现该权限,B10版本未通过验证,目前该模块开发人员调休,无法修改bug,缺陷描述:酒店渠道绑定关系权限控制出现权限异常错误缺陷影响:a>权限控制易用性不好,会引起用户误操作;b>权限控制错误推迟原因:B9版本发现该权限,B10版本未通过

48、验证。该模块后台无insert权限,只有Update权限,与其他模块不同,需要重新设置权限控制方式。缺陷描述:酒店Rate绑定关系权限控制出现权限异常错误缺陷影响:a>权限控制易用性不好,会引起用户误操作; b>权限控制错误推迟原因:B9版本发现该权限,B10版本未通过验证。该模块后台无insert权限,只有Update权限,与其他模块不同,需要重新设置权限控制方式。缺陷描述:新建业务管理员权限用户,进入打包促销页面出现权限异常错误缺陷影响:除系统管理员外,其他用户无法进行打包促销操作推迟原因:B10版本发现该bug,目前该模块开发人员调休,无法修改bug5.4建议在项目开始的时候

49、应该制定编码标准,数据库标准,需求变更标准,开发和测试人员都严格按照标准进行,可以在后期减少因为开发,测试不一致而导致的问题,同时也可以降低沟通成本。发布版本的时候,正确布置测试环境,减少因为测试环境,测试数据库数据的问题而出现的无效bug。开发人员解决bug的时候,填写bug原因以及解决方式,方便bug的跟踪。开发人员在开发版本上发现bug,可以通知测试人员,因为开发人员发现的bug很有可能在测试版本上出现,而测试人员和开发人员的思路不同,有可能测试人员没有发现该bug,而且,这样可以保证发现的bug都能够被跟踪。6.软件测试中存在的问题及建议随着客户对软件产品质量的要求越来越高,软件测试的

50、重要性也在逐步增加。然而,重视开发而轻视测试的现象依旧存在,其中存在的软件测试的一些误区,将会进一步影响软件测试活动的有效开展,并且阻碍测试质量和能力的提高。 对软件测试过程中的一些现象进行分析和梳理,以帮助测试人员更好定位和开展测试工作。 6.1软件测试只是开发过程中的一个阶段在传统的瀑布软件开发模型中,软件测试只是开发过程中“编码和实现”阶段之后的一个阶段,是软件产品交付给用户之前的保证软件质量的一个手段。 但是,随着客户对软件质量的要求越来越高,以及软件测试行业的不断发展,软件测试在开发过程中扮演的角色越来越重要。人们逐步认识到软件测试不只是软件项目的收尾工作,而应该贯穿于整个软件开发生

51、命周期。软件测试过程应该并行与软件开发过程,具体的测试过程应该包括测试计划阶段、测试设计阶段、测试执行阶段、测试结束阶段,以及贯穿于整个过程的测试监控。在软件开发生命周期的每个阶段,都需要进行不同目的和内容的测试活动,以保证每个阶段软件工作产品的正确性。同时,软件测试的对象也不仅仅是代码,同时也包括需求规格说明、设计规格说明等工作产品,即软件测试不仅仅包括动态测试,也需要评审这样的静态测试。 6.2测试人员是软件质量的责任人 很多人认为测试人员需要对发布的软件产品质量负责,假如软件产品提交给客户之后发现问题,那就是测试人员的责任。这种认识误区非常打击测试人员的积极性,同时也给予了测试人员过高的产品质量方面的压力。因此通过测试只能证明软件中存在缺陷,但无法保证其中没有缺陷,在用户现场发现缺陷是正常的,我们需要做的是分析为什么会遗漏这样的缺陷,是由于测试覆盖不全面,还是原来的需求定义和功能设计方面的错误引起的,避免在将来的项目中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论