隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。一些数据库技巧和下面我所提到的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似乎也表明隐藏数据应该是开发人员在代码编写阶段进行的单元测试。

