




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件评价与测试论文课程名称:软件评价与测试教师:楚燕婷专业:软件工程班级:051 班姓名:付欣欣学号:01软件测试技术 摘要 : 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试总的目的是确保软件的质量。前后要经过以下一些主要环节:需求分析测试计划测试设计测试环境搭建测试执行测试记录缺陷管理软件评估RTM. 黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。白盒测试是通过程序的源代码进行测试而不使用用户界面。白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行, 按照程序
2、内部的结构测试检查程序。灰盒测试,是介于白盒测试和黑盒测试二者之间的,灰盒测试关注输出对于输入的正确性,同时也关注内部表现。 关键字 : 测试 软件测试测试方法测试流程白盒测试黑盒测试灰盒测试软件开发。Abstract : Software testing software development process is animportant part of a procedure is used to confirm the quality or performance is in line with the proposed development before some of the r
3、equirements. The purpose of software testing is to ensure that the quality of software.Before and after to go through the following major components: needsanalysis test plan design test test test the implementation ofenvironmental structures test records defectmanagement software assessment RTM. Bla
4、ck Box Testing will be tested as its name suggests is the system as a black box from the outside world to enter, and thenoutput. Baiheceshi through the programs source code for testing without the use of user interface. Baiheceshi Products are aware of the internal work processes, products pass the
5、test to detect whether internal action in accordance with the provisions of the normal specification, in accordance with the internal structure of the testing procedures. Greybox testing, and Black Box Testing is between Baiheceshi between the two, gray box test of concern for the importation of the
6、 correctness of output, but also concerned about internal performance.Keywords: testing software testing testing method testing process white Box Testing Black Box Testing gray box testing software development.一、 软件测试概述( 一 ) 、定义软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一
7、方面是确认软件做了你所期望的事情(Do the right thing ),另一方面是确认软件以正确的方式来做了这个事件(Do it right )。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。软件质量是由几个方面来衡量的:1、在正确的时间用正确的的方法把一个工作做正确(Doing the right things rightat the right ti
8、me. )。2、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。3、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as“ goodness” or “ elegance ” . ) 。 四、 质量也代表着它符合客户的需要( Quality also means“ meet customer needs” . )。作为软件测试这个行业,最重要的一件事就是从客户的需求出发, 从客户的角度去看产品
9、,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。(二)、测试任务测试人员在软件开发过程中的任务:1、寻找 Bug;2、避免软件开发过程中的缺陷;3、衡量软件的品质;4、关注用户的需求。(三)、软件测试的目的软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下, 软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。软件工程的总目标是充分利用有
10、限的人力和物力资源,高效率、高质量地完成软件开发项目。不足的测试势必使软件带着一些未揭露的隐藏错误投入运行,这将意味着更大的危险让用户承担。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。E.W.Dijkstra 的一句名言说明了这一道理:“程序测试只能表明错误的存在,而不能表明错误不存在。”可见,测试是为了使软件中蕴涵的缺陷低于某一特定值,使产出、 投入比达到最大。总的目标是:确保软件的质量。二、软件测试流程一般而言,软件测试从项目确立时就开始了,前后要经过以下一些主要环节:需求分析测试计划测试设计测试环境搭建测试执行测试记录缺陷管理软件评估RTM.在进行有
11、关问题阐述前,需要先明确下分工,一般而言,需求分析、测试用例编写、测试环境搭建、测试执行等属于测试开发人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。测试流程就是指从软件测试开始到软件测试结束经过的一系列准备、执行、 分析的过程。测试流程并不是只存在于有完整测试团队的公司,它分布在每一个对软件执行测试的公司中,哪怕这个公司只有一个测试人员。制定合理的测试流程需要考虑的因素很多,毕竟它是大家进行测试工作的依据,又需要理清和需求人员、开发人员、市场人员等多方人员的关系,而且公司不同侧重点又有所不同。制定测试流程首先要清楚自己所在
12、的公司正处在什么发展阶段,是处在最初的创业期还是已经度过了创业期希望通过测试来提高产品质量,以便取得更多的业务创造更大的效益。为什么制定流程时要这么重视公司的发展情况呢。其实公司的情况和制定测试流程有非常大的联系, 公司的情况直接决定着公司对产品的要求,而测试部门一般来说是产品投入市场的最后一个关口,这也就等于公司的发展情况决定了公司对测试部门的要求。开发软件前要先了解软件的需求,制定测试流程前当然也要了解清楚公司对测试部门的需求。了解了公司的情况和要求后,就要根据这些要求结合制定者的测试知识和经验,制定即符合公司要求又能起到软件测试目的的软件测试流程。当然这样做并不是说让软件测试向公司的一些
13、不利于开展软件测试工作的现实情况妥协,只是根据公司的实际情况制定一些可以马上改变公司测试工作现状的流程。制定软件测试流程要明确测试部门的职责。经常会有测试人员抱怨自己在公司里就是一个打杂的,什么工作都要做,其实这就是职责不明确引起的问题,这样会很大程度打击测试人员的工作积极性影响工作情况进而影响大家对软件测试工作的看法。制定软件测试流程不光要制定软件测试部门内部的工作流程,更要制定与开发部门、需求部门等外部部门的接口工作的流程,一旦项目在进度、功能上有了变化要及时和测试部门沟通,不要让测试部门成为最后一个知情人。制定合理的软件测试流程是一门很深的学问,它需要制定者有丰富的软件测试理论知还需要许
14、多测试人识, 软件测试执行经验、管理经验以及沟通能力等等多方面的经验能力,还需要许多测试人员经过长时间的实践来验证完善。三、常用的软件测试方法软件测试方法之所以没能完全标准化和统一化,主要原因是因为软件产业产品到软件测试有各式各样的软件。但是目前仍有很多各样软件测试方法都基本可用的常用概念和方法。因此,这里只讨论几种常用的软件测试方法:( 一 ) 、 黑盒测试1、黑盒测试的定义黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进
15、行测试。黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过使用整个软件或某种软件功能来严格地测试来检测每个功能是否都能正常使用,而并没有通过检查程序的源代码或者很清楚地了解该软件或某种软件功能的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值
16、分析、因果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。 “黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入, 而且还要对那些不合法但是可能的输入进行测试。通常测试者在进行测试时不仅使用肯定出正确结果的输入数据,而且还会使用有挑战性的输入数据以及可能结果会出错的输入数据以便了解软件怎样处理各种类型的数据。2、分类侧重于软件功能的黑箱测试方法主要有:功能测试(Functionality Test ),可接受性测试(
17、Acceptance Test ),用户界面(User interface 或 UI) 测试, Ad hoc 一般指探讨或开放型测试,边界条件测试( Boundary Condition ),性能测试(Performance Test),回归测试 ( Regression Test) , 强力测试 ( Stress Test) , 配置和安装测试( Configurationand Setup Test ),兼容性测试(Comparability Test ),国际化支持测试(InternationalSufficiency )以及本地化语言测试(Localization )。功能测试:验证测
18、试软件功能能否正常按照它的设计工作。看运行软件时的期望行为是否符合原设计。比如,测试Microsoft Excel 插入 - 符号的功能包括测试能够在MicrosoftExcel 所选单元格中正确地插入符号并且显示正确符号?能否正确显示使用不同的字体的符号?可接受性测试:是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳定。必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。如果一个新版本没通过可测试性的验证,就应该阻拦测试部门花时间在该测试版本上测试。同时 还要找到造成该版本不稳定
19、的主要缺陷并督促尽快加以修正。用户界面测试:分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息(Menu 和 Help content )等方面的测试。比如,测试Microsoft Excel 中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/ 图标等等。探索或开放型的测试:不是按部就班的按照一个又一个正式的测试用例来进行,也不局限于测试用例特定的步骤。这种测试是测试人员在理解该软件功能的基础上运用灵活多样的想象力和创造力去模拟用户的需求来使用该软件的多种功能。通常涉及很多的测试
20、用例或者通过更复杂的步骤来使用该软件。边界条件测试:是环绕边界值的测试。通常意味着测试软件各功能是否能正确处理最大值,最小值或者所设计软件能够处理的最长的字符串等等。性能测试是:通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。 或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak )。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。回归测试:根据修复好了的缺陷再重新进行的测试。目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。 通常确定所需的再测试的范
21、围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化。强力测试:它通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如, 在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000 次后也不会崩溃或死机。集成与兼容性测试:验证该功能能够如预期的那样与其他程序或者构件协调工作。兼容性
22、经常意味着新旧版本之间的协调,也包括测试的产品与其它产品的兼容使用。比如用同样产品的新版本时不影响与用旧版本用户之间保存文件,格式,和其他数据等操作。装配/安装/配置测试:验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的Microsoft Office 2003 安装在韩文版的 Windows Me 上,再验证所有功能都正常运行。国际化支持测试:验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的Windows
23、 XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel 对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。本地化语言测试:要验证所有已计划要发布的不同语言版本软件如预期的那样被正确地翻译成当地语言。这类测试一般包括验证菜单,对话框,出错信息,帮助内容等所有用户界面上的文字都能够显示正确翻译好的当地文字。3、黑盒测试的优点有:1)比较简单,不需要了解程序内部的代码及实
24、现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。4、黑盒测试的缺点有:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。( 二 ) 、白盒测试1、定义白箱测试或白盒测试(White-box testing 或 glass-box testing )也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每
25、条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 “白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误:1)穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。穷举路径测试不可能查出程序中因遗漏路径而出错。穷举路径测试可能发现不了一些与数据相关的错误。白盒测试是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发
26、现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。它在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下例程序代码:HRESULT Play( char* pszFileName )if ( NULL = pszFileName ) return;if ( STATE_OPENED = currentState )PlayTheFile();return;读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串(
27、文件)为空的话会出现什么情况; 如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测试时不一定能做到的事情。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。2、白盒测试的缺点有:1)程序运行会有很多不同的路径,不可能测试所有的运行路径;2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;3)系统庞大时,测试开销会非常大。3
28、、测试软件人员使用白盒测试方法,主要想对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性,等。具体包含的逻辑覆盖有: 语句覆盖 判定覆盖 条件覆盖 判定条件覆盖条件组合覆盖 路径覆盖。“我们应该更注重于保证程序需求的实现, 为什么要花费时间和精力来担心(和测试)逻辑细节?”答案在于软件自身的缺陷:1)逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。当我们设计和实现主流之外的功能、条件或控制时,错误往往开始出现在我们工作中。日
29、常处理往往被很好地了解,而“特殊情况”的处理则难于发现。2)我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路径测试才能发现这些错误。3)笔误是随机的。当一个程序被翻译为程序设计语言源代码时,有可能产生某些笔误,很多将被语法检查机制发现,但是, 其他的会在测试开始时才会被发现。笔误出现在主流上和不明显的逻辑路径上的机率是一样的。正如Beizer 所说的:“错误潜伏在角落里,聚集在边界上”,而白盒测试更可能发现它。(三)、灰盒测试灰箱测试或灰盒测试(Gray-box te
30、sting ):灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。 甚至于还读过部分源代码。因此测试人员可以有的放矢地进行某种确定的条件/ 功能的测试。 这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。灰盒测试,是介于白盒测试和黑盒测试二者之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整, 只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,
31、这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。灰盒测试结合了白盒测试盒黑盒测试的要素. 它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。(四)、基于风险的测试基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表
32、影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率基于模型的测试模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成然后根据实际结果和原先预想的结果的差异来测试系统,过程如下图所示。( 一 ) 、 BVT (Build Verification Test)BVT是在所有开发工程师都已经检入自己的代码,项目组编译生成当天的版本之后进行,主要目的是BVT优点是时间短,验证了软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省七校协作体2024-2025学年高二下学期3月联考历史试卷(含解析)
- 蔬菜分格线描课件
- 教师节捐资人发言稿
- 特许金融分析师考试热点问题与试题及答案
- 特许金融分析师考试绩效评估实例题及答案
- CFA考试重要性与影响试题及答案
- 高中小说基础知识
- CFA考试的灵活应对方法试题及答案
- 2024年特许金融分析师考试答题技巧试题及答案
- 2024年CFA考试攻略与试题及答案
- 《公共政策学(第二版)》 课件 第3章 政策模型;第4章 政策议程
- Lesson 10 Rain and Sun(教学设计)-2023-2024学年冀教版(三起)英语四年级下册
- 智联招聘国企笔试题库
- 《妇幼保健学》课件-第三章 儿童期保健
- GB/T 15597.2-2024塑料聚甲基丙烯酸甲酯(PMMA)模塑和挤出材料第2部分:试样制备和性能测定
- 2023年南充市委组织部南充市遴选(考调)公务员考试真题
- 婚内忠诚协议书范本电子版
- 2024年安徽省初中(八年级)学业水平考试初二会考生物试卷真题
- 2024年重庆市重庆市选调生考试(公共基础知识)综合能力题库含答案
- 国开2024《人文英语4》边学边练参考答案
- 质量手册(质量保证手册,压力容器)
评论
0/150
提交评论