ソフトウェアテスト自動化とは

  
                  

翻訳者の前書き:おそらく2008年末に、私はほぼ一生Sunで働いていたエンジニアと交換しました(Sunが買収されようとしていたとき、彼は非常に低かった)、彼はSunの詳細を詳細に説明しました。内部テストアーキテクチャーでは、Sunが何十年にも渡って多数の自動テストツールを独自に開発してきたことに言及しているので、私は疑問を抱いています。自動テストの状況と役割は何ですか?自動テストはテストが直面する問題を解決できますか?ここ数年の間に、私のテストに対する理解が深まり、James Bachの記事「テスト自動化とは何か」を見たばかりです。 「私は彼の見解に似ていて、みんなが見られるように翻訳されていて、議論を歓迎します。

テスト自動化とは、ツールによって支援されるテストのことで、コンピューター業界の初日に行われます。そして「テスト自動化がテストエンジニアの仕事に取って代わる」という歴史はこれまでありませんでした;これはあなたがテスターの本当の仕事を完全に無視しない限り起こります。

同じ理由で、自動宇宙探知機は「宇宙科学者の仕事を置き換える」ために使用されたことがなく、科学者の探査の範囲を拡大しただけです。自動テストはまたテスターの探査の範囲を拡大することを意味します。

テストの自動化は新しいものではなく(同意書の翻訳者Orzの場合)、独立したテストエンジニアの概念はそれよりも新しいものです。昔、1940年代の終わりごろ、独立したテストエンジニアはまったく登場しませんでした。開発者は自分でプログラムをテストします。 1960年代には、テストに関する論文(IFIPS会議の論文など)は、開発者が自分たちのプログラムをテストする方法についてのものでした。テストとデバッグの2つの概念も区別されていません。ソフトウェアシステムがますます大きくなるにつれて、独立したテストの概念は流行してきました。 1972年のチャペルヒルで、ソフトウェアテストに関する最初の会議が開催され、開発とは無関係のテクノロジとしてソフトウェアテストが始まりました。

しかし今回の会議では、彼らは間違いを犯したと思います。つまり、彼らはテストの自動化に対して多くの期待と熱意を置きました。この期待は最終的にはうまく達成されませんでしたが、実践の欠如のためではなく、よく理解されていないためです。

彼らは理解していませんが、現代のプログラマーの多く(今日の多くのプログラマーは——を理解しているとは思わない)は理解していません。それは一種の人間の活動であり、必然的であり、偶然ではありません。テストは社会的活動、心理的活動です。ソフトウェアが複雑になればなるほど、ソフトウェアの問題を使用および識別する際の人々の役割は大きくなります。しかし、チャペルヒル会議はプログラマとエレクトロニクスエンジニアとして訓練された人々によって占められました。そして、考え方の知識を欠いていました。

(誰が考えているのはこの種の人ですか?Jerry Weinberg。問題解決に関する1965年の博士論文は素晴らしいです。彼は1970年にコンピュータプログラミング心理学を書きました。 1960年代のソフトウェアテストに関する一連の論文、彼の1961年の著書 『Software Development Foundation』では、ソフトウェアテストについて議論するための章を執筆しましたが、残念ながら、Jerryはチャペルヒル会議に出席しませんでした。

トレーニングを受けた独立テスターの概念は自動テストの概念よりも新しいのですが、テストの自動化と比較すると、テスターの訓練が非常に悪いため、この概念は十分に受け入れられません。テストは単純な手法であることを理解している人もいますので、テストはAPIへの呼び出しによってプログラムが制御されない獣のように動かないようにするためのものです。私はどこへ行くのかわからない。このアイデアはまだあります、私はマイクロソフトを意味します。私の妻は私に彼女がマイクロソフトオフィスソフトウェアの問題を見つけるのを手伝わせなければならない。私は、まだ膨らんでいるソフトウェアであるMicrosoft Officeは、それらの「自動テストツール」の支援を受けて、ソフトウェアテストを体系的に研究していない開発者によって書かれたと言われました。 (幸いなことに、私の同僚のMichael Boltonがこの歌を歌っているのは良いのでしょうか?翻訳者Orzは最近Microsoftでテストクラスを開いたので、多分希望があるかもしれません)

テストテストエンジニア、テストの管理、テストの修正、製品の観察および評価という、テストエンジニアの創造的な考え方を自動化で再現することはできません。テスト自動化はそれらの高品質テストをすることができません。したがって、テストの自動化は決して意味がありません。それらのテストエンジニアが提供するサービスを自動化することです。

つまり、テストの自動化とはテストツールの使用を意味します。テスト自動化は古い概念であり、独立したテストエンジニアの概念はこれよりも新しいものです。業界はまだ(狭い内部範囲を除いて)システムトレーニングテスターを試していない、彼らは単に "テストエンジニア"または "開発テストエンジニア"として仕事に名前を付け、そしてそれらのいくつかは精通していないテストツールがそれらに投げ込まれ、それから彼らが一生懸命働くことができることを願って!戦います!

(また、私はプログラマでもあります。私は自分のApple IIコンピュータを使用してプログラムを作成しますが、これはアセンブラについて聞いたよりも早い時期です。1990年代初頭に、Borland C ++プロジェクトを率いました。 Borland Turbo Debuggerテストグループ—— Debuggerは、Jamesが開発者の作業に非常に精通していることを示す開発者向けのデバッグツールで、それ以前は、私はAppleのテストツール開発チームを率いていました。人の人事テスト、GUIベースの自動テスト、非GUIベースの自動テスト、これらのことを行ってきました。

これらの経験は、私が新世代に直面したときにいくつかの新しい問題をもたらしました。テスト担当者 - 訓練を受けた独立系テスト担当者、翻訳者のコメント、いわゆる自動テストツールを使用していない開発者を指します。

翻訳者:Jamesバッハとは、それが独立したテストエンジニアの人生であり、その逆ではないことを意味します。 50年前に自動テストによって解決された問題は、今日解決することができますか?議論へようこそ。

Copyright © Windowsの知識 All Rights Reserved