测试数据管理:创造性的解决方案
Mario Matthee是一名测试员,顾问,认证Scrum大师以及非常不合的山地摩托车车手(正在学习中)。他热衷于将年轻的IT专家引进软件测试的世界。他还是开普敦测试自动化用户组的创始成员之一。毕业于(南非)开普半岛科技大学,他是动态可视技术公司的软件质量
![]() |
Mario Matthee是一名测试员,顾问,认证Scrum大师以及非常不合格的山地摩托车车手(正在学习中)。他热衷于将年轻的IT专家引进软件测试的世界。他还是开普敦测试自动化用户组的创始成员之一。毕业于(南非)开普半岛科技大学,他是动态可视技术公司的软件质量保证部的主管。 |
?
测试数据管理可能是测试专家职业生涯中要面临的最大挑战之一。还没有碰上测试数据紧缺或不完整测试数据的人算是相当幸运的。
我们并不孤单
缺少测试数据会影响开发员。几年前,我的一个任务里,开发员不得不猜测什么数据会进入数据库。在把他的代码给测试团队前,他绝对没有开始某种测试的环境。可以想象,测试阶段也有灾难。因此该项目开始后被中止近三年一点也不奇怪。或许这不是中止的主要原因,但绝对是一个成因。数据对任何系统都重要且绝对是测试一个系统的关键因素。数据为系统提供环境,,没有环境,开始测试阶段就值得商榷了。
我们真的需要它吗?
我们后退一步。我们为什么需要测试数据且我们该怎么计划去使用它?对于初学者,没有数据,你只测试应用程序的GUI。以典型GUI为例,我们测试屏幕上的控件:按钮,下拉菜单,文本框等。即使这些测试会被限制,使得从前端GUI无法到达某些屏幕或功能, 因为没有输入正确数据。为了遵循系统中的某些流程,就需要具体数据。我们需要测试数据以确保企业规定被测且系统中不同流程被执行。想象一下没有数据的测试报告,我们开始测试了吗?
测试数据操作
为了让测试数据有效,我们需要在上面CRUD(创建,读取,升级和删除)。测试专家面临的最大挑战之一是与第三方的集成。大多数情况下,测试数据只被读取,且数据数目被限。另一个潜在噩梦是第三方应用程序供应商不提前通知就改变测试数据。让第三方应用程序供应商保证你能获取他们的数据库闻所未闻。没什么阻止我们请求,但随时做好你的请求被拒绝的准备吧。测试数据及其管理对手工和自动化测试都很重要。两种情况中,测试专家旨在预测他们基于(他们在系统中输入的)数据的预期结果。多数情况中,测试专家无法创建或操作数据进入所要求状态。如果无法发现测试数据,就无法执行测试用例。
一个真实的例子
让我将我早期职业生涯中所经历的一次真实问题为你细细道来。我们不得不测试并将顾客管理系统自动化。一个单独的顾客账户上可以执行100多个不同的任务。比如锁定账户,解锁账户,查看余额,查看账户明细,激活邮箱,升级邮箱……
测试数据的问题是测试团队被赋予某些账号范围可以使用下游第三方相应测试数据。所以你可以创建你自己的测试数据并开始利用它,但你无法进行整个端到端的测试,因为新数据不会在下游系统上。
只有有限范围为了测试而被配置在下游系统上。所以你的测试会受限。
下个问题是测试员开始分享账号,或不请求或协调测试就使用测试数据。这就导致应该解锁的账户被锁,或拥有某些程序包的账户某天可以改变未来。测试同一个系统的不同功能时的不一致使一个有16名测试员的团队受到了挫折。
澄清一点,并不是所有手工测试都被影响了,但自动化确实是异常噩梦。自动化可以查询数据并找到数据以供使用,但问题是,有时候数据就在那有时却不在,因为另一队成员不断在改变数据。自动化的一个优势是在测试执行前搜索数据。这种情况下,自动化运行就变得不可信了。我们绝对无法预测开始一次一整夜的自动化运行的测试数据是否充足。如果你无法在数据库中找到数据,最好的办法就是你自己创建数据。在这儿我不得不强调一下数据完整性的重要性:通过前端或通过执行,数据库上的某些失序的储存过程会破坏数据。
这会进一步阻碍测试工作并有可能造成由测试团队而不是开发团队引起的缺陷。让开发员判定缺陷原因很耗钱,最后却发现是测试团队自己破坏的。于是测试发布进程放缓了,自动化无法给投资满意的回报。
作为一个测试团队,我们逐步扩大问题,并请求设计师想出一个解决方案。几次会议后,制定出了一个计划。因为那时候想不出一个更好的词,我们称这个解决方案为“香草脚本”。那么它是干什么的呢?它是一个基本消除了系统外特定顾客数的所有数据的存储过程。我是说,所有数据,没错,就是所有的。主要是为了维护参照完整性且不破坏数据库。可想而知,这要尝试很多次才能成功,但三个月后我们想出了有效的解决方案。你们有些会觉得我们疯了——我们怎么可能会有这样一个脚本?如果将之投入生产呢?!这被视作发布流程和执行后测试的一部分。因为脚本是通过调用到一个存储流程执行的,存储流程要确保执行只在特定数据库名字和IP地址上完成。
这些问题按以下方法解决:
??完整的终端到终端测试是可能的,因为香草脚本第一个运行,向下游系统发布命令删除支持他们的相关数据。重新创建该账号使得要重建一个下游,保证所有系统同步。
??测试员没必要分享测试号。现在他们可以一遍又一遍地使用自动化去设置理想状态的用同一个账号的数据。
??自动化也使用分配到的账号运行,所以我们总会有数据以供彻夜运行。
??通过运行失序脚本破坏数据库的风险通过使用高级数据库开发员编写的香草脚本被消除了。
结果
结果绝对惊人。假设你要测试一个账户完整生命周期,从激活到删除,以及期间的所有任务。现在你可以做到!测试开始前,一名测试员运行香草脚本。现在,他们只需要让账户进入一个他们所需的特定状态以开始手动测试用例。这也使得我们能够用同一个账号为不同的软件包产品编写测试用例。自动化突然成功了。我们在36小时内运行300,000多个测试用例。反过来又产生了一个新需求:我们希望自动化运行地更快——但那在一般测试自动化和测试中却是一个问题。我们该如何解决第三方测试数的共享呢?自动化用一两个账号,手动测试员用剩下的。他们开始通过自动化使用香草脚本将账号设置为他们所希望的状态。关键字驱动的自动化是解决方案的关键,因为它可以让测试团队自己设计测试用例组合。
总结
测试数据管理可以创建或打破一个测试团队的精神。创造性的解决方案是需要的。不要停止寻找解决方案,最后总会有所收获。有时候解决方案就和在正确的时间向正确的人寻求帮助一样简单。
版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/20141020154958.html
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Win11 は Microsoft が発売した最新のオペレーティング システムで、以前のバージョンと比較してインターフェイスのデザインとユーザー エクスペリエンスが大幅に向上しています。ただし、一部のユーザーは、Win11 をインストールした後、中国語の言語パックをインストールできないという問題が発生し、システムで中国語を使用する際に問題が発生したと報告しました。この記事では、ユーザーが中国語をスムーズに使用できるように、Win11 で中国語言語パックをインストールできない問題の解決策をいくつか紹介します。まず、中国語言語パックをインストールできない理由を理解する必要があります。一般的に言えば、Win11

OracleNVL 機能の一般的な問題と解決策 Oracle データベースは広く使用されているリレーショナル データベース システムであり、データ処理中に NULL 値を処理する必要があることがよくあります。 NULL 値によって引き起こされる問題に対処するために、Oracle は NULL 値を処理する NVL 関数を提供します。この記事では、NVL 関数の一般的な問題と解決策を紹介し、具体的なコード例を示します。質問 1: NVL 関数の不適切な使用法 NVL 関数の基本構文は、NVL(expr1,default_value) です。

furmark についてどう思いますか? 1. メインインターフェイスで「実行モード」と「表示モード」を設定し、「テストモード」も調整して「開始」ボタンをクリックします。 2. しばらく待つと、グラフィックス カードのさまざまなパラメータを含むテスト結果が表示されます。ファーマークはどのように資格を取得しますか? 1. ファーマークベーキングマシンを使用し、約 30 分間結果を確認します。室温 19 度、ピーク値は 87 度で、基本的に 85 度前後で推移します。大型シャーシ、シャーシ ファン ポートが 5 つあり、前面に 2 つ、上部に 2 つ、背面に 1 つありますが、ファンは 1 つだけ取り付けられています。すべてのアクセサリはオーバークロックされていません。 2. 通常の状況では、グラフィックス カードの通常の温度は「30 ~ 85℃」である必要があります。 3. 周囲温度が高すぎる夏でも、通常の温度は「50〜85℃」です

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

新作ファンタジー妖精MMORPG『朱仙2』の「武威試験」が4月23日より開始されます。原作から数千年後の朱仙大陸で、どのような新たな妖精冒険物語が繰り広げられるのでしょうか?六界の不滅の世界、フルタイムの不滅のアカデミー、自由な不滅の生活、そして不滅の世界のあらゆる種類の楽しみが、不滅の友人たちが直接探索するのを待っています! 「Wuwei Test」の事前ダウンロードが開始されました。Fairy friends は公式 Web サイトにアクセスしてダウンロードできます。サーバーが起動する前に、アクティベーション コードは事前ダウンロードとインストール後に使用できます。完成されました。 『朱仙2』「不作為試験」開催時間:4月23日10:00~5月6日23:59 小説『朱仙』を原作とした朱仙正統続編『朱仙2』の新たな童話冒険篇原作の世界観をベースにゲーム背景を設定。

SAS が Oracle エンジンに接続できない場合の解決策 SAS ソフトウェアでは、データの分析と処理に Oracle データベースがよく使用されます。ただし、Oracle データベース エンジンへの接続時に障害が発生し、ユーザーに迷惑がかかる場合があります。この記事では、Oracle エンジンの障害による SAS 接続の一般的な問題を解決するいくつかの方法を紹介し、具体的なコード例を示します。このような問題に遭遇したユーザーの助けになれば幸いです。質問 1: SAS が Oracle データベースに接続できない

PHP 中国語文字化けの一般的な原因と解決策. インターネットの発展に伴い、中国語の Web サイトが私たちの生活の中でますます重要な役割を果たしています。しかし、PHP開発においては、中国語の文字化けの問題は依然として開発者を悩ませる問題となっています。この記事では、PHP で中国語が文字化けする一般的な原因と解決策を紹介し、読者の参考となる具体的なコード例も添付します。 1. よくある原因: 文字エンコーディングの不一致: PHP ファイルのエンコーディング、データベースのエンコーディング、HTML ページのエンコーディングなどの不一致により、中国語の文字化けが発生する可能性があります。データベース

Black Shark携帯電話は、若者を中心に人気のゲーミングフォンであり、優れた性能とユニークなデザインで多くのプレイヤーに支持されています。しかし、日常的な使用において、一部のユーザーは、Black Shark 携帯電話が充電中に自動的にシャットダウンしたり、充電器に接続した後に起動できなかったりして、ユーザーに迷惑をかけたと報告しました。この記事では、Black Shark 携帯電話の自動シャットダウンと起動の問題について、原因分析と、ユーザーがこの問題をより適切に解決できるようにするための解決策の側面から説明します。 1. 充電器の品質問題の原因分析: 低品質の充電器は電圧が不安定になる可能性があります。
