uwscすくりぷちんぐ

 何度も言いますとおり、私、テストを、それもブラックボックステストとも呼ばれる機能テストを職としており、コーディングのことなぞほとんど判らんチンです。そんなボクが、今日気まぐれでコードを、といかスクリプトとやらにチャレンジしてみたんです。
 uwscというソフトウェアについて聞いたことがある人も、まあ、ここをお読みの方ならいるやもしれません。uwscはフリーの自動化ツールとでも申せばよろしいか、とにかく、マウスとかキーボードの動きを記録・再生可能なソフトです。また、記録したものにスクリプトベースで手を加えることも可能と、いった感じ。
 自動化、テスターにとっては永遠の夢であり、結局コストと見合わないことから失敗に終わることの多いため(と聞いている)、大抵は後回し〜諦め、だが、まあチャレンジせずにも終了するのはもったいない。どうせフリーでよさげなツールもあるし。 そんなワケでかれこれ人昨晩の夜中から本日夜8時ぐらいまで、暇があればプリプリ勉強してたんです。とりあえず練習課題として、「引数で指定した文字列を含むウィンドウを探し出しスクリーンショットを取得、MSPAINTを介して.png形式で保存」というスクリプトを書いてみることにする。
 まずは仕様をあきらかにしなればならない、が、結局技術的に考えている方式が可能なのか今ひとつ判らない+面倒くさいので、仕様書など書かない。ダメ人間。一応EXCELで 引数 と 戻り値 を表にしたのだけを作成。次、動的に変化する部分は本文から極力分離、また、各関数(もしくはクラス)はそれぞれ1ファイルずつに分けたい、この二つの衝動に駆られる。しかしながら他のスクリプトを呼び出す際に用いる関数が、その制限として、呼び出すスクリプト名そのもの(及びそのパス)を変数で指定できない→動的に変化する部分を取り出せない→自分で関数を拡張、のような作業をし始めてしまう。全然進まない。しかも終いには仕様の壁にぶち当たってこの拡張、無理と判明。変数名一つ決めるのにもつっかえる。全然進まない。
 さて気を取り直して、とりあえずスクリプト呼び出し時にはワンクッションただ呼び出すだけのスクリプト(及び相対的なフォルダパスを引数として渡す)を用意することで、許容するとしよう。ようやく進みだした。つぎゃ、プリントスクリーンボタンを押したりウィンドウを操作したり自動化っぽいことをするぞ。
〜中略〜
いざ実行にになって、保存するファイルが既に存在したらどうしよう…という疑問にぶち当たる。考え方によっては「だいたい自動化のスクリプト実行なんて、一般ユーザの仕事じゃないんだから制限事項にして放置…」…そこで、一瞬考える。これがもし開発からの返答だったら「またまた、バグを制限事項にしちゃったよ。だっせぇ、プリプリ」などと心の中で思うところ、それを、自分でやってどうする!などと要らんこと…。さて、一体このユーザ操作においてトラブルが発生するのか?
1.書き込むファイルが既に存在する場合。
2.ユーザの権限不足
3.ファイルがロックされている(ポップアップMSGが変化)
4.指定したウィンドウが存在しない。
5.mspaintが存在しない(もしくは起動禁止)
6.引数のファイルパスのケツに\マークが無い
7.引数のファイル名・パスに禁則文字
8.引数のファイル名に拡張子が指定されていた場合、またされてない場合。
9.mspaintが古い(.png保存をサポートしていない)
10.OSの言語(一部のウィンドウタイトルを見ている部分がある)


あー無理無理。
テストにはこういう言葉ある「テストは条件次第」「完璧なテストは不可」ほら、ユーザの求めているクオリティに準じてテストケースのカバレッジとかを決めるってアレですが、これは当然コーディングにも言えるはず。
…でも気持ち悪いね、放置良くないね。全然進まない。