none
.NET3.5@VS2008から、.NET3.5@VS2010 へ移行した際にどれくらいのテストが必要なのでしょうか RRS feed

  • 質問

  • お世話になります。

     

    現在、VS2008でターゲットフレームワークを3.5にして開発しています。ここからVS2010にアップグレードし、ターゲットフレームワークを3.5にした場合、全パステストは必要なのでしょうか?

    VS2010であってもターゲットフレームワークに応じて3.5のコンパイラを使ってくれるのかと思いきや、「C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Vbc.exe」を使うんですね。そうするとでき上がるバイナリも異なるので、やはり全パステストが必要なのでしょうか?

    2010年8月12日 8:26

回答

  • 少しでも、開発環境変更というリスクの影響を抑えたいのであれば、何らかのテストは実施するべきでしょう。
    それが全パステストなのか、軽いさわり込みにとどめるのかは、リスクをどの程度大きく見るかではないでしょうか。

    VB.NET であれ、C# であれ、Visual Studio 2010 のタイミングで言語仕様が拡張されています。
    それに伴って、構文解析・意味解釈・コード生成の処理に多少なりの変化があること予想されます。

    この情報を以て、すべての人に通じる判断をすることはできません。
    対象のシステムの規模、リスクが現実化したときの影響、かけられる費用などによって判断は分かれていくでしょう。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク koty 2010年8月16日 4:15
    2010年8月12日 10:48
    モデレータ
  • 開発・保守してるものによってはService Packどころか、セキュリティ更新プログラムでもテストプロセスは実行します。

    kotyさんが開発・保守しているシステムが、どの程度テストの必要性があるかで判断するしかないと思います。
    #技術というよりかは、コストを見合いながら、より政治的な判断をするしかないと思います。

    ・重要なアプリ:お金と時間をかけて徹底的にテスト
    ・それほどでもないもの:各画面や機能をひと通り動かしてみる
    ・あまり重要でないもの:とりあえずコンパイルが通って動けばOK,あとはツールを信じる^^;

    質問にある全パステストがどれくらいのテストをさしているのか(条件分岐網羅?、全ての画面で各機能を動かしてみる?)定かではありませんが、何がしかのテストは必要だと思います。
    #動くと思いますが、もし保守でお金を取っているのなら、テストしてなくて何かあったときの言い訳にすごく困ります。しないという選択肢は普通ないと思います。(条件分岐網羅テストまでするかと聞かれたら、よっぽどのことがない限りしませんが^^;)

    • 回答としてマーク koty 2010年8月16日 4:16
    2010年8月12日 10:57

すべての返信

  • 少しでも、開発環境変更というリスクの影響を抑えたいのであれば、何らかのテストは実施するべきでしょう。
    それが全パステストなのか、軽いさわり込みにとどめるのかは、リスクをどの程度大きく見るかではないでしょうか。

    VB.NET であれ、C# であれ、Visual Studio 2010 のタイミングで言語仕様が拡張されています。
    それに伴って、構文解析・意味解釈・コード生成の処理に多少なりの変化があること予想されます。

    この情報を以て、すべての人に通じる判断をすることはできません。
    対象のシステムの規模、リスクが現実化したときの影響、かけられる費用などによって判断は分かれていくでしょう。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク koty 2010年8月16日 4:15
    2010年8月12日 10:48
    モデレータ
  • 開発・保守してるものによってはService Packどころか、セキュリティ更新プログラムでもテストプロセスは実行します。

    kotyさんが開発・保守しているシステムが、どの程度テストの必要性があるかで判断するしかないと思います。
    #技術というよりかは、コストを見合いながら、より政治的な判断をするしかないと思います。

    ・重要なアプリ:お金と時間をかけて徹底的にテスト
    ・それほどでもないもの:各画面や機能をひと通り動かしてみる
    ・あまり重要でないもの:とりあえずコンパイルが通って動けばOK,あとはツールを信じる^^;

    質問にある全パステストがどれくらいのテストをさしているのか(条件分岐網羅?、全ての画面で各機能を動かしてみる?)定かではありませんが、何がしかのテストは必要だと思います。
    #動くと思いますが、もし保守でお金を取っているのなら、テストしてなくて何かあったときの言い訳にすごく困ります。しないという選択肢は普通ないと思います。(条件分岐網羅テストまでするかと聞かれたら、よっぽどのことがない限りしませんが^^;)

    • 回答としてマーク koty 2010年8月16日 4:16
    2010年8月12日 10:57
  • 全パステストだけでも大変ですが
    実行環境ごとに全パステストするとなるとさらに大変。

    (そもそも全パステストなんて実現不可能に近いかも。
    全パスって、プログラムコードについて?ビルド後のモジュールについて?)

    結局、2010 に変えないでおこうというケースが多いので
    2008 → 2010 注意点の情報はほとんど無いんじゃないでしょうか。

    2010年8月12日 11:44
  • 私の経験的には、メジャーバージョンアップの開発タイミングで開発環境を変更しますね。
    このタイミングで一通りテストするので、「テストが必要か?」といった確認にはなりません。
    (ただし、ここで言うテストとは、第三者テストになっています)

    # 確かに、全パステストってなんだろう。
    # 単体テストでカバレッジ 100% ぐらいなイメージなんだろうか。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年8月12日 12:27
    モデレータ
  • 私もAzuleanさんと同じで、ロジックを変えているわけでもないですし、ランタイムライブラリも変更していないのですから、単体テストを再実行する(+コンパイル時に警告が出ていないか)程度だと思います。
    2010年8月12日 21:55
  • 以下は、あくまで個人的な感想です。

    これは作るアプリケーションにも依るとは思うのですが、開発ツールに更新があった場合、すごく怖いのは細かいロジックの動きが少しづつ変わってたりすることです。これは、大方コンパイルの時警告が出たり、エラーが出るので把握可能です。今回はライブラリは同じなので、問題ないと予想されますが、意外にユニットテストを再度行わないと見つからなかったりします。一般的に、四捨五入が銀行方式に変わるとかそんな大きな変更は、リリースノートにデカデカと書いてありますが、それでも運用してから初めて気づくなんてことも……(いちいちリリースノートを上から下まで読んでいる人がどれだけいるか^^;)

    あと、これも頭を痛めるのは、便利なコントロールやサードパーティ社製のツールが新バージョンをサポートしてなかったり動きが変わってしまうこともあります。
    これらは、単体テストでは発覚せず、使ってみて初めてわかる部類の違いが多かったりします

    以上から、私は、単体テストのみなならず、一通りの画面や機能はチェックすべきだ、という立場です。
    これは、会社やアプリのポリシーなので何とも言えません。
    個人的な感想としては、開発側が動くことをテストやツール会社のサポート条項などでエビデンスを出さない限り、受け入れ印は押しません。

    私もAzuleanさんと同じで、開発ツールなどの更新は、アプリ自身のライフサイクルに合わせることをお勧めします。
    アプリ改修時なら、テストも一緒に行うでしょうから、別途テストを行うコストが削減できます。

    #正直、自分が個人で作って公開しているようなアプリであれば、コンパイルが通って動けばそれ以上のことはしないと思います^^;

    #TDDなどで、テストクラスを作っておくと、このような時の回帰テストのときチェックがかなり楽です。
    #あと、WPFにすると、アクセシビリティクラスを使って画面や機能全体のUI動作が必要なチェックも自動化のためのクラスをかけるのでとても楽。
    ##(たぶん、自動的なテストはエビデンスの一つにはなっても、それだけで受け入れ印押してくれるところは少ないと思いますが^^;)

    2010年8月13日 2:41
  • 改めて気になったのは以下の 2 点です。

    (1)なぜ VS2010 に移行することを検討しているのか?
    (2)なぜ ”全パステスト” なるものを省ける可能性、あるいは根拠を求めているのか?

    この手の質問を投げかける際は、”なぜか”も添えて書くと、よりよい回答を得られる可能性があると思います。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年8月14日 10:17
    モデレータ
  • みなさま、返信ありがとうございました。

    VS2010の利用を検討しているのは、VS2010自体の新機能(特にコールヒエラルキーの表示)とTFS2010の新機能を使えると考えているからです。

    周囲と相談して、VS2010に今移行するのか、移行するとすればどの程度の確認をするのかということを決めたいと思います。

    2010年8月16日 4:15
  • んー、実際のところコンパイラのテストをするようなものですよね?
    .NET Framework 4 上での動作をテストするなら話は別ですが、あくまで実行環境は3.5のまま、なのですよね?

    正直なところ、マイクロソフトがコンパイラをリリースするにあたって行っているテストですら発見できなかった非互換性などの問題が、我々が行うレベルのテストでそうそう発見できるとも思えません(もちろん可能性はありますけど)。

    たとえば、逆アセンブルしてコードの差異をチェックしてみるとか、案外そういう方法で違いがないことを確認できる可能性もあるかもしれません。

     

    2010年8月16日 12:29