软件测试中的用户输入.doc

软件测试中的用户输入.doc

ID:57684486

大小:91.00 KB

页数:11页

时间:2020-08-31

软件测试中的用户输入.doc_第1页
软件测试中的用户输入.doc_第2页
软件测试中的用户输入.doc_第3页
软件测试中的用户输入.doc_第4页
软件测试中的用户输入.doc_第5页
资源描述:

《软件测试中的用户输入.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用户输入(1)  设想我们要测试一个庞大的软件(比如MicrosoftOffice)或者测试一个复杂的网站(比如Amazon网站)。我们会发现它们有太多的输入以及输入组合,所以测试时不会考虑要穷尽所有的可能项。  这说明我们面临的问题比看上去复杂得多。不管测试人员做什么,都会面临无穷无尽的可能性。其中第一个需要面对的无穷可能性就是用户输入。  用户输入的基本知识  什么算是输入?下面给出一个一般定义:  输入指的是由环境产生的一种刺激,该刺激导致被测试的应用程序有所响应。  该定义非常不正式,但

2、对我们来说已经足够好了。这里的关键点在于输入是由应用程序外部引发的,并导致应用程序执行某些代码。比如用户单击一个按钮属于一种输入,但是在文本框中键入文本就不算输入,只有文本被实际传递给应用程序,应用程序有机会处理时,才算得上是一种输入。总而言之,输入必须导致软件执行某些代码,并以某种方式作出反应(不反应也算是一种反应)。  输入大致分为以下两类:原子输入(atomicinput)和抽象输入(abstractinput)。比如单击按钮,字符串或整数4就属于原子输入,它们都简单到不能再简单,都属于单

3、个的事件。有些原子输入是相互关联的,如果把这些相互关联的原子输入合并成一个抽象输入,在选择测试数据时会更有效率。整数4和整数2048都是一个特定的数值(也就是说是原子输入),但是测试人员也可以选择使用5或256。所以,使用抽象术语来描述这些输入会更方便,因为这样可以把它们当成一个整体概念来对待。比如,我们可以使用“某个长度”这样一个抽象输入来表示1~32768之间的任何一个原子输入长度值。  因为输入可以接收的可能值实在太多,所以必须把它抽象化。在测试中,正整数、负整数和任意长度的字符串这些概念

4、都包含着可以无限使用的值,测试所有这些值是不可能的。但是不穷尽所有的情况,我们就无法保证软件能够正确处理所有这些值。  任何一个特定应用程序可以接受的原子输入的数量都是无穷的。因为不可能去尝试所有的值,所以从输入的角度来看,测试就要求只选定某些输入值,然后在程序中使用它们,希望这些输入值可以引发程序所有的缺陷。这样我们就可以认为软件质量已经足够好了,并且可以认为即使用户使用其他那些并没有被测试过的值时也不会有问题。要做到这一点,测试人员必须下苦功学习如何在各种不同的输入中选择出最佳的一个。我们会

5、在本章和下几章中介绍相关策略。  实际情况比这还要复杂。如果我们只需要研究如何从一堆原子输入中找出一个最佳子集,软件测试就比现在我们实际面对的简单得多。还有两个因素让输入选择问题比我们想象得更复杂。  首先是各种输入之间会相互影响,从而造成软件失效。事实上,即使软件在分别处理这两个或多个原子输入时没有问题,但如果把这些输入组合起来使用,软件还是有可能出问题。比如,在机器上查找所有的CD文件,可能没问题,如果只查找所有的视频文件,也没有问题。但是如果同时查找所有的CD和视频文件时,软件可能就报错。

6、测试人员必须能够识别哪些输入值和其他输入有关联,然后在同一个测试用例中使用它们,这样就可以保证这些情况都被覆盖了。  然后,输入这些值时的先后顺序也会导致问题。输入a和输入b可以产生如下组合:ab、ba、aa、bb。我们还可以重复三次或更多次,这就产生了更多的顺序(比如aaa、aab和aba等)。如果有两个以上的输入值时,就会出现更多的顺序。如果我们决定不测某些顺序,那些没有被测试的顺序就可能会导致软件失效。比如,我们可以购买一本书,然后去结账,或者购买两本书再结账,还可以结账之后又买一本书再去

7、结账。有太多种可能要考虑,但是只能测其中的一小部分。测试人员必须可以枚举出那些比较恰当的顺序,然后测试它们,这样才有把握相信软件可以满足实际用户的需求。前面已经说过了,本章和接下来的几章都会讲述该主题。如何测试用户输入  想象一下这个场景,光标位于某个文本输入框中,它正一闪一闪地等待我们键入值。每个测试人员每天都会多次面对此情形。这时,测试人员会做些什么?该使用什么样的策略来决定使用这个值而不用那个值?需要考虑哪些因素?我一直很吃惊那些测试新手不知道可以从哪里学习这些测试策略。更让我吃惊的是,如

8、果我向10个测试人员询问上述这些问题,我会得到12个不同的答案。是时候把所有这些问题整理编辑起来了,这正是本书想做到的。  首先,我们必须意识到我们正在测试的软件和其他软件并没有什么不同。测试人员倾向于认为自己测试的软件比较特殊,和其他人的程序完全不一样。事实上并非如此。所有的软件,从操作系统、API函数、设备驱动程序、常驻内存的程序、嵌入式应用、系统代码库,到Web应用程序、桌面应用程序、基于Form的用户界面,甚至游戏软件,它们可能运行于完全不同的环境中,但是它们都会执行四个基本任务,即接收

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。