テスト」カテゴリーアーカイブ

テスト駆動開発に関してのあれこれ

購読しているPodcast 「fukabori.fm」でt_wada氏をゲストに迎えた回を聴いた

114. テスト駆動開発とは何であって、何でなかったのか? w/ twada | fukabori.fm

テスト駆動開発を提唱している人の投稿に端を発した、誤解にたいする解説。
そして、過去にライブコーディングでTDDを実演していたYoutube動画の紹介があり、少し長かったがだいたい見ることができた

TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング (youtube.com)

こうやって、人がコーディング・・・・というか設計も込みだとは思うけど、形に落とし込んでいくのを見るのって非常に理解の助けになっていいな、と改めて思った。
ペアプロみたいなものが教育的に良いと言うのはこういうところなんだろうと改めて思った。

もちろん、実業務においてここまでスムーズに物事を進めていくにはそれなりに熟練していく必要があるが。。。

SoftwareDesign2月号

定期購読しているSoftwareDesignの2月号が届きました。

https://amzn.to/3UtdNSq

今月号の特集としてはテストとWeb APIセキュリティに関して。

テストに関しては、テスト技法に目を奪われがちなんだけど、そもそものテストの考え方を正していく必要があるとしてテストマニフェストが紹介されていた

https://www.growingagile.co/the-testing-manifesto/

SoftwareDesignに掲載されていたものは2015年バージョンで、上記のものは2023年バージョンのようだ。
基本的な考え方が変わっているわけではなく、言葉を少し修正した形と紹介されていた。

checking functionality over Testing understanding

機能性をチェックするよりも、理解をテストするとでも訳すのだろうか?
SoftwareDesignでは「機能性をチェックするよりも、チームが理解している価値をテストする」とある。

これは、結構難しい問題に感じる。

本来、価値を提供するために機能を作り込んでいるはずのものが、機能を作ることが目的となってしまって気がつくとその価値が提供できていないのではないだろうか?ということだろうか。

そう考えると確かに、そしてまさに、アジャイルではないか

ソフトウェア開発ではプログラミングによって機能を作り込んでいく。ただ、出来上がったアプリケーションがその機能によってなんの価値を提供しているのかに立ち返って、常に検証し続ける必要がある。
そして、アジャイルの文脈ではその検証を繰り返してスプリントを回していく。

どうも、ウォーターフォールが染み付いてしまい、当初作った仕様に従った機能のテストしかできていないように感じてしまった。

改めて、このあたりに関しては気を引き締めていかないといけないと感じた。

理解するということ

昨年の6月ごろから初めて、すっかり止まってしまっていたJSTQBの勉強を重い腰を上げて再開した。

ソフトウェアテスト教科書 JSTQB Foundation 第3版
大西 建児 勝亦 匡秀 佐々木 方規 鈴木 三紀夫 中野 直樹 町田 欣史 湯本 剛 吉澤 智美
翔泳社
売り上げランキング: 34,214

 

少しでもこの連休中に進めていかないと、会社のお金を少し使っているのでペナルティーが発生してしまう・・・という、情けない理由ではあるけれど。

分量自体はそれほど多くはないんだけれど、このテストというか、この手の話は昔から苦手意識が強い。
もちろん、通信教育の講座を受けた理由も、その苦手分野に関して少しは人並みになりたいという意識があったからこそなのだけど、
読んでいてもすぐに眠くなってしまう。

言葉の定義が多く、読んではいるものの理解しているのかと言われたら自信がないわけだ。

なんでもそうなんだけど、勉強したつもりになっていることが多く、結局理解の領域まで頑張らないことが私は多い気がする。
少しだけかじって、なんとなく本を読んで、なんとなくサンプルコードを書いて、満足する

そもそも目的なく始めることもあれば、目的はあったものの、途中からうやむやになってしまったり。

もう40になろうとしているのに、未だにこんなことでウダウダしているというのが情けないところではあり、
子供に対して勉強のアレコレを言えたものではないなと常々思うわけだ。

自分の理解を確かめるには、やはり客観的に理解しているかを判断してもらうのが一番であり、
この手の類であれば会社のメンバーに対しての情報共有やLTのようなものをしてみるのがいいかもしれない。
というわけで、少しずつEvernoteに書き始めた。

うーん、もしかしたらこういうことは実は勉強メモとしてQiitaにでも載せた方がいいのだろうか・・・
しかし、「こういうこと」と説明するには身近な実例であった方が言い訳なんだよな。

うむむ。
未熟者のあがきはまだまだ続きそうだ

形あるものと形なきもの

私の管轄しているプロジェクトではないのだが、別プロジェクトが火を吹いている。
なんでもお客様からの品質に関する要望に対して提出している書類が思うように理解されないというものだった。

最初からプロジェクトがつつがなく進行している場合は問題がないのだが、数度問題が発覚するとお客様側の担当者としても黙ってはおれず、チェックが厳しくなる。
ただ単にチェックが厳しくなっているだけならばそれほど問題ではないのだが、ソフトウェアに対する品質管理を担当したことがないお客様がチェックを厳しくしようとするのが結構問題なのだ。

まず、言葉が通じない。
一通り書類を書いたところで、言葉の定義を一つずつ教えていかないとその文書を読むことが出来ていない。普通なら「こんな感じかな~?」っていうニュアンスで乗り切るのだが、”疑いの目で品質チェックをしようとしている”お客様としてはそうはいかない。
もちろん、書き方の問題もある。一言”モジュールテスト”だとか”ユニットテスト”だとか言っても、ソフトウェア業界ですら会社によって言葉が何を指すのかがバラバラな状態であることをよく聞く。
このあたりは、いわゆる製造業だとかその他産業との歴史の差が出ているのかもしれない。ソフトウェアの品質管理においての業界標準となりえるとすれば、国際的にはISTQB規格。日本ではJSTQBになるのだろうか

JSTQB
http://jstqb.jp/

しかし、”ユニット”の定義に関して明確になっているわけでは無いんじゃないだろうか?正直なところJSTQBとろうと思ったことないから分からないのだが…。
ただ、いわゆる目に見える機械の”部品”と、ソフトウェアのプログラム上の”部品”とでは実際に手にすることが出来ない分、考え方を変えていかないといけない。

もっとも、お客様にそこまで疑問視されるようなところまでいっている時点で問題なんだけどね。
ただ、ソフトウェアの場合は目に見えないものであるがゆえに、別業界の人に説明する時、言葉に関しては最新の注意を払わないと余計なコストをひたすらにかけることになってしまうなぁ、と思った。
ただ…気をつけないとって言ったところで、自分がその矢面に立たされた時に乗り切れるだろうか?ちょっと考えてしまうなぁ

IEのToolbarを作ってみたが・・・

あれこれと試行錯誤しながら、IEのツールバーを作成して、そこからIHTMLDocumentClass等を駆使してページの操作が行えることは何とかできた。ActiveXコントロールに対する捜査はまだ試してはいないけど、できないことはないだろうと思う。ただ・・・
考えてみると、Webアプリケーションの場合機能が分かれた時に別ウィンドウを立ち上げることがよくある。。。と思う。少なくとも私がテストしたいアプリケーションはそうだ。
この場合、IE8では特に別のIEインスタンスが起動してしまうためにそちらに対しての操作がうまくいかない。うーん、これはちょっとハードルが高そうだ。

ウィンドウをオープンさせるイベントをフックさせて新規のウィンドウではなく、フレームわけした場所にそのウィンドウをオープンさせることができれば何とかできるかもしれないが、そこからもウィンドウを開くといくつフレームを用意するんだー!って話になってしまう
結局、IEとは別の場所から制御するしかないのか。。。しかし、そうすると操作できることに限界が来てしまいそうだ。。。
あああああ

もう寝る

IEでのテストツール散策

WebApplicationをテストするのに、あれこれとやり方を探している。
最初、PowerShellでIEを操作することでゴリゴリとやってみようかと思ったんだけど、テストしたいアプリケーションが古い作りをしている&ActiveX満載な状態なので、PowerShell上からどう操作していいのかがわからなくなった。
VBAではSendKeysを駆使してActiveXコントロールのボタンを押す事が出来るんだけど、PowerShellからのやり方がよくわからなかったのだ。多分、PowerShellからでもC#を呼び出せるのだからキーを呼び出す事は出来ると思うんだけどなぁ。
既に画面に対する定義情報はあるので、それを元にスクリプトを作成。それを読み込ませることで実現したい。

色々と考えてみたのだが、外部からあれこれするのではなくIEに組み込む事は出来ないだろうか?例えば、ツールバーのようなものを作って、そこに対してスクリプトファイルを読み込ませてテストを実行させる…なんて事が出来ればIEのバージョンが変わっても楽に移行テストが出来ていいんじゃないか??
残念ながら実現するには技術が足りない!ってことで他力本願で調べていたらこんなものが見つかった

WebTester in C# (CodeProject)
http://www.codeproject.com/KB/cs/webtester_in_c_.aspx

すべてではないけど、かなりの私の要望を満たしていると思われる。ここまで出来ているのであれば、見よう見まねでいじる事が出来るのではないか?C#に関しては素人もいいところだが、いい加減覚えたいところではあるのでこれを機にいじってみよう!
と、思ってダウンロードしてみたがリンクのエラーが出まくった上に必死こいて直したらツールバーじゃなかった!
ううむ。

そもそも発送が間違っているのだろうか・・・・
やはりC#を勉強してPowerShellから実行か…。

TEF勉強会

今日はTEFの勉強会で「現場で使えるソフトウェア(Java編)」の著者である町田さんによる本の解説付き勉強会でした。本そのものに関しては前のエントリで書いたので割愛。

テストに関してはいろいろと考えなければいけない。自分自身に関しても、私の所属するチーム全体に関しても。

それにしてもこういった勉強会は面白い。勉強会なので、知識や技術的な勉強になるのはもちろんのことなのだが、それ以上にいろいろな人に会えることは面白いし勉強になる。私自身、大学を卒業してずっと今の会社に居続けているのであまり外の世界というものを知らない。そういう環境にいると、自分がどれほどのものかわからないし、取り残されてしまうのではないかという感じがする。何よりも視野が狭くなる。自分の現在の仕事の関係上、なかなか時間をとることは難しいのではあるが、今日のような機会を有効に活用して自分に生かしていきたい。

出来うることならば、情報を提供するくらいの力を持ちたいものではあるが。

現場で使えるソフトウェアテスト

少し縁があってTEFに参加させていただいています。いや、縁っていうか、参加したいって言って参加しているだけですが

Testing Engineer’s Forum
http://www.swtest.jp/forum.html

ソフトウェア開発を行っていて、自分のテストに対する認識だとか考え方に関して不足を感じていました。その状態を打破しようと参加させていただき、勉強会も時々出させていただいてます。近くでやったときだけですが。。。

そちらのMLにてちょっと話題になっていたので手に取ってみました。ちなみに私自身はJavaでの開発経験はありませんが、Javaという言語に関係なくソフトウェアテストの基本的な教科書として読みやすいものでした。

うん、これはなかなか良書だ。会社の仲間にも広めないといけませんな。

現場で使えるソフトウェアテスト Java編

現場で使えるソフトウェアテスト Java編

SilverLightでのUnitTest

SilverLightでのUnitTestが紹介されている記事があった

Jeff Wilcox
Unit Testing with Silverlight 2
http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/

Video walkthrough of the Silverlight 2 control unit tests
http://www.jeff.wilcox.name/2008/03/20/vid-silverlight-control-ut/

SilverLightに対してのテストを行うにはどうしたらいいのだろうかな~って思っていたところなのでナイスタイミングでありますよ!VideoのほうではおそらくMixで発表された内容だとは思うのですが、実際にSilverLightのUnitTestが動いているのが見れてなかなか面白い。英語は苦手だけど。。。

ソフトウェアを取り巻くテストの手法というのはここのところあれこれ出てきて、正直私はまだまだ勉強が足りない。会社の現場では、それらの潮流に全くと言っていいほど乗れてないのでなおさら取り残されている感じがする。

UnitTestをこういう形で提供されるのであれば、この周りを根つめて勉強してみるのもありなのかもしれない。開発手法もテスト手法も、知れば知るほど自分の無知さに気がつくので面白いですね。それだけまだ私は知ることができるのだ。頑張らねばいけない。

テストの世界

先日、機会あってソフトウェアに対するテストを専門に考えるコミュニティの
勉強会に参加させていただきました。

Software Testing Forum (TEF)
http://www.swtest.jp/forum.html

私は大学を卒業して以来ずっと今の会社にいるので、他の会社の実情は分かりません。でも今の会社でのテストに対する意識の低さは最近ようやくわかるようになりました。かくいう私も、テストに対しての意識は大変低いものでした。

会社という組織に対して、というと大げさですがまずは私の意識を変える必要がある。と思い参加したのですが、思った以上に奥が深くて驚いています。

いわゆる”テストエンジニア”を生業としている集団。そもそものテストに対する意識が低かった私としては勉強会に参加させていただいたものの、テスト手法の話になってしまうとチンプンカンプン。いやー厳しい。

でも、とても勉強になるし面白いです。自分の知らなかった世界を知るというのは。実情を言ってしまうと、私の頭は開発手法を勉強することで結構キャパがあふれてきてしまってい、どこまで食らいついていけるのかが疑問ですが食らいつけるだけ食らいついていきたいと思っています。

がんばれ!俺!