- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
隐藏数据测试
隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。一些数据库技巧和下面我所提到的4步,能够帮助QA团队来在测试过程中很好的执行这样的测试。隐藏数据测试是非常重要的,在QA团队里这也是非常容易被训练测试的。我这篇文章解释了“为什么,谁,怎样”测试隐藏数据。 一、?什么是隐藏数据? 假设一个应用程序要求用户两条信息-----用户名和密码来创建帐户。这个用户输入这两条数据后保存。最后,一个确认窗口将通过数据库中找到这条数据来显示用户名和密码给用户。为了验证所有的数据保存是否正确,一个QA测试人员会在这个确认窗口简单的查看下用户名和密码。如果他们成功了?假设数据库记录了第三条信息----创建日期,它可能不会出现在确认窗口,而只在存档中才出现。如果创建日期保留的不正确,而QA测试人员只验证屏幕上的数据,那么这个问题就不可能被发现。创建日期可能就是一个bug,由于一个用户帐户保存了一个错误的日期到数据库中,这个问题也不可能会被引起注意,因为它被用户界面所隐藏。这只是一个简单的例子,但是它却演化出了一点:隐藏数据测试的重要性。 应用程序包括两类数据:一种是最终用户可以看到的数据,另一种就是隐藏数据。在可见的数据中的bug很容易被QA测试人员发现,因为这些问题可以通过用户界面UI来直接看见。而隐藏数据的bug却比可见的数据发现困难的多,因为他们不能在用户界面UI中看到,它只能通过数据库找到--------然而这些QA测试人员可能并没有意识到它们。 二、?谁应该测试隐藏数据? 测试隐藏数据是谁的职责?这个问题不好回答。数据的存取测试是通过应用程序的非用户互动的部分来测试的,这种测试我们通常称为“数据流测试(Data Flow Tetsting)”(Culbertson,Brown,Cobb,2002).这种混淆是数据流测试和一些测试学科的跨越线。软件工程知识体系(SWEBOK)(2004,IEEE计算机协会)将它归为“基于代码”的测试(Bourque Dupuis,2004)。一个应用程序的组成包括输入数据和输出数据,隐藏数据和可见数据,它们都能被程序单独调用,通过适当的场景来测试。因此这就要求有一定编码知识和会使用编码工具,因此数据流测试也被认为是基于代码的测试,SWEBOK似乎也表明隐藏数据应该是开发人员在代码编写阶段进行的单元测试。 然后,作者和软件工程专家James Whittaker(2003)指出数据流应该也能够通过在用户输入和集中数据存取过程中通过用户界面去调用。因此这些测试可以通过用户界面进行,Whittaker 表示他们应该由QA测试人员在开发的测试阶段进行测试。这种测试也在SWEBOK关于BourqueQupuis(2004)的文章中描述了作为“基于需求”的测试,是一种功能测试。这就与他们早期的关于开发人员应该执行这些测试相矛盾。因此,如果开发人员和QA测试人员的各自团队都认为其对方团队都将执行所有的这些测试,那么可能没有一个团队将测试他们,(或者只有一个团队中的一些人测试而不是所有的人),那么他们的测试结果中的隐藏数据的bug就不会被发现。 让我们用我在文章首段举的例子为例。假设创建用户帐户以“CreateUser”表示,另外两个输入---Name,Password---三个输入以 Name,Password,CreationDate表示。那么在单元测试阶段,开发人员将会输入所有可能的字符来测试CreatUser。他们会发现一个问题----如果password为空,CreationDate输出也可能为空,而不会显示当前CreationDate。开发人员修复了这个问题,并检查了代码。但是假设其他开发人员突然覆盖了这段代码,以至于这个bug在程序开发结束阶段也没有修复。QA测试人员通过用户界面测试了一个用户帐户的创建,发现Name和Password都能正确保存,象第一段所描述的那样。由于不能测试CreationDate,他们询问开发人员是否它已经进行过单元测试了。开发人员说是的,并且把显示他们在单元测试中关于创建用户成功结果给测试人员看,因此这个bug被忽略掉了,如果一个用户输入一个空password,他们帐户CreationDate也将为空,这在以后可能会引起许多问题。 为了解决上面例子中的问题,QA测试人员必须在数据库中直接验证CreationDate字段。事实上,我建议QA测试人员应该验证所有隐藏的字段。这看起来很简单,但是实际上,它很大程度上暗示着测试人员的技能和能力:他们需要知道隐藏数据的存在,隐藏数据之间怎样关联,怎样执行关于隐藏数据的测试,也需要有检测隐藏数据之间关联的方法。对于
文档评论(0)