2013年 社長賞をいただきました

2013年度、弊社社長賞をいただきました。

表彰理由は

  • 新規営業先の開拓
  • 人材情報の提供
  • 売上への貢献
  • 業務外活動の提案

とのこと。

ありがとうございます!!

去年の夏、井の中の蛙と化していた私は初めてWACATEという井戸の外に飛び出し、大海原で活動を始めました。それら活動は月次の会議で社員全員の前で報告もしていましたが、去年は賞をいただけませんでした(2012年度は該当者なし。残念な1年でした。)。私にとっては去年の1歩がとても大きなものだったので、会社から評価してもらえるのではないかと淡い期待を抱いていたのですが、そう甘くはありませんでした。

今年は、社外活動で会社名を出して活動したこともありますが、10月には社内で勉強会を企画し、社長を始め、会社の半数の方に参加していただきました。他にも、随時展開していた案件情報がたまたま契約に繋がったというのもありますが、売上げに直結し、社員を動かした点が大きく評価されたのだと思います。

社外での活動は去年からの継続ですが、フィードバックの仕方によって相手への影響が大きく変わるということを実感しました。勉強会やワークを企画することで、自分自身の理解がより深まるというwin-winの関係でもあります。今後も積極的に機会を作り、フィードバックしていきたいと思います。

広告

WACATE2013冬 ポジションペーパー

テスト自動化研究会での活動もあり、自動化を武器に切り開きたいと思っていたところで立ちはだかった壁。自動化は手段でしかないのですよね、やはり。晒します。


「Approach run for the high jump」

高跳びというのは、バーを越える瞬間に注目しがちだが、助走も重要である。高く飛ぶためには力が必要で、力の素となるのはスピードだからだ。もちろん、バネと呼ばれる膝の柔らかさや強さも重要だが、それだけでは垂直跳びとなんら変わらない。より高く跳ぶには、助走が必要なのだ。スタート位置が悪く踏み切り位置を誤ると、一番高いところでバーを越えられなかったり、バーにぶつかって落としてしまったりする。high-jumperは、何度もスタート位置を変え、練習を繰り返し、自分のベストなスタート位置とコースを見つけ出す。

私は中学3年の時、高跳びの選手だった。正確には三種競技という競技種目の中で、高跳びもやったという程度だが、三種競技ではその年の県の10傑で1位を取ったのはちょっとした自慢だ。しかし年間1位というだけで大会成績は県大会止まり。高校時代は幅跳びをやったが、県7位が最高で、ぱっとしないまま終わってしまった。それから10年以上が経ち、デスクワークに慣れた体は運動不足の塊でしかないが、今でも、ステップのリズム、足を入れる角度、視線などが頭に浮かんでくる。

助走のパワーを高さに変えるのが踏み切りの役目。そのあとは、ベリーロールでもいいし、背面跳びでもいい。目標は少しでも高いバーを跳び越えることだ。私は社会人になって7年近く、テストの自動化を担当していた。それは、手動テストがベリーロールであれば、背面跳びでテストに挑んでいたということなのだろうと思う。背面跳びは一般に、ベリーロールに比べて高く跳べると言われているが、助走がうまくいかなければ、跳躍法がどうであろうと高くは跳ぶことができない。当時私は大規模プロジェクトに参画しており、ベストな助走からバトンを受け取っていたからこそうまく動いていた。だが、自分一人ではそれができないということに気づいたのが一昨年の夏であった。そして昨年夏に初めてWACATEに参加し、今はその縁でテスト自動化研究会の仲間に入れてもらいながら、業務ではシステムテストを担当している。業務をこなしながら考えさせられるのは、やはり、助走:Approach runの大切さだった。

高跳びは「高く跳ぶため」に助走をし、踏み切り、ジャンプをするが、テストは一概に何のためとは言えない。「品質を守るため」かもしれないし「バグを出すため」かもしれない。テストは、全員が高跳びで挑む必要はないし、100mと砲丸投げで挑んでも構わない。何の道具や技術を使って挑むかは、そのテストが「何のために」テストをする必要があるのか次第だ。しかし、「何のために」という部分が明確になっていないことが多いから厄介だ。分析し、戦略:Approachを立てる。それもテスト活動の一つだ。戦略:Approachが明確なテストは、実施、報告まで、迷いがなく筋が通る。あとはそれを実現するための技術が必要だ。

それに対して私はまだ、テスト要求分析やテスト設計がうまくいかないし、自動化経験が長い割にはへなちょこプログラムしか書けず、自動化システムの構築も一苦労二苦労してようやくできあがる始末だ。技術者としては未熟この上ないが、このWACATEでたくさんの仲間に出会い、たくさんのチャンスと夢をもらった。それ以来、挑戦の日々を送っている。最善の助走:Approach runを見つけ、それが実現できるエンジニアになれるよう、これからも努力していきたいと思う。

Visual StudioでKDTは実現できるのか(2)

「Visual Studio×Excel、できたらいいな。他にも何かできないかな。」と、調べてみました。Visual Studioでもキャプチャ&リプレイの機能があるんですね。対応しているバージョン等の情報はこちらから。職場で使用しているのはVisual Studio 2012 Premiumですが、自宅にあるのは無償のExpress版。残念ながら対応していませんでした。うまくいかなくて困っていたので、家から画像つきでUPしようと思っていましたが、できないので、記憶を頼りに書きたいと思います。

Visual Studioのキャプチャ&リプレイ機能「Coded UI Test(CUIT)」。日本語では「コード化されたテスト」と呼ぶようですが、名詞っぽくないのでCUITと呼ぶことにします。記録できるのはwebだけでなくWindowsアプリケーションももちろん操作可能。おそらくそちらの方が相性がいいかもしれません。webの場合、上に貼ったMSDNのドキュメントには、サポートはIE系のみとありますが、MSエバンジェリストの長沢さんの記事によると、VS2012のUpdate 1でchromeでの実行も可能になったようです。

クロスブラウザでの自動UIテスト~Visual Studio 2012 Update 1

私が担当しているものはブラウザ間のテストは不要なので、ひとまず動作を確認していきます。上の記事に、記録と実行の手順がありましたので、真似てやっていきました。
「コード化された UI テスト ビルダー」がとってもシンプルです。記録するとビルダーの上部に「ボタン1クリック」などの情報が出ますので、操作が記録されている感があります。よくあるキャプチャ&リプレイの罠に「操作が速すぎて記録できない」という問題(現在はもう、大丈夫なのかな?CUITは怪しそうな感じがありました)がありますので、ゆっくり操作するのが吉かと思います。おまじない程度で。ビルダーの表示方法を変えれば、取得したコントローラー情報と、記録一覧が表示されます。アサーションの入れ方もビルダーで楽々のようですが、まずは実行できなければ確認もなにもできないので、コード化して実行してみます。

コードの生成ボタンを押すと、C#のコードがばーーっとできあがります。ビルダーを消すとVSが立ち上がり、できあがったテストコードをビルド、テスト実行すれば、ブラウザが立ち上がり記録した操作を実行してくれる…という手順です。(Visual Studioに不慣れ、開発経験、単体テスト経験のない私にはこれがかなりハードルが高かった…orz)

テスト実行ポチっ。待つこと暫し…エラーになってしまいました。。

記録したのは、ログイン画面での以下の操作です。

  1. ID入力
  2. パスワード入力
  3. ログインボタン押下

1の時点で、Editが操作できない、というエラーをはいているようでした。記録させたのを実行しただけなのに。。
おそらく、オブジェクトのマッピングがうまくいっていないのだろうと予測を立て、できあがったソースコードをひっくり返しました。UIMAPでオブジェクトマッピングが管理されており、エディターで編集ができました。

コード化された UI テスト エディターを使用したコード化された UI テストの編集

こちらのドキュメントにもあるのですが、「UI コントロールの検索」というボタンがあり、それを押すと保持されている情報をもとに、コントロールを特定し赤枠で囲って表示してくれます。エラーを返したEditを検索してみたところ、案の定、おかしなところを指し示しました。そして、パスワード入力用のEditerも同一のものと認識している…階層もおかしいし、編集や追加をしなければ…。

Seleniumだと位置の特定はid属性、name属性、Xpathなどでできますが、Visual Studioでは何で特定しているのかわかりませんでした。とりあえずnameを引っ張って指定してみましたが、「ないよ!」と怒られてしまいました。では、改めてオブジェクトを認識させてはどうでしょう。QTPではエディターから直接オブジェクトを認識させるボタンがあるのですが、見当たりませんでした。ネットで検索してみたところ、以下のリンクが見つかりました。

方法: コード化された UI テスト ビルダーを使用して UI コントロールと検証コードを追加する

アサーションを入れるときの操作ですね。これでオブジェクトの追加ができるようです。ビルダーの方向キーで親子関係にあるコントローラーも取得できるようなので、あっちこっち操作をして認識させてみました。
しかし、結果は変わらず。ボタンの認識はうまくいっていそうなので、ボタンクリックのみの操作を記録し実行したところ、これは成功。しかし、Editだけでなく、同じ画像が使われたボタンも、同一オブジェクトとして認識されてしまいました。階層の編集はいくら調べても見つからずでした(英語が読めないので日本語サイトしか検索していませんが…)
サンプルでwebが紹介されているくらいだし、そんなに梃子摺るところじゃないと思うんだけどな…と思いながらも、すっかりはまってしまったので、諦めて帰宅したのでした。

で、書いていて気が付いたのです。完全サポートしているのはIEだということに。ついSelenium感覚でFirefoxで記録させていました…。月曜日朝一で、IEで確認してみます 。。

Visual StudioでKDTは実現できるのか(1)

Visual Studioと出してMS属性の方を釣る作戦。
どうも。夏はおだんご。Mayです。

webアプリケーションのシステムテストを自動化できないか、ということでテスト仕様書作成からツール選定、自動化フレームワークの作成などなど格闘しているところです。なかなか思うように進まないのですが、そんな試行錯誤の記録が残せたらと思っています。
テスト仕様書からというのがミソで、そのまま読み込ませて自動化しちゃったらいいんじゃない?という思想の元、キーワード駆動テスト(KDT:Keyword Driven Testing)の形を目指しています。どんなフォーマットがよいのか、まだ確定はしていませんが、できあがったら結構自慢できるかもしれません。これはまた今度。

さて、webのUIテストならオープンソースのSeleniumがありますが、Visual Studioを使用しているので有効活用したいところ。調べてみると、手元にあるツールの選択肢としては、以下の3つがありそうです。

  • SeleniumIDE+RC
  • Selenium2+NUnit
  • Coded UI Test(CUIT)

SeleniumIDEは「操作」「対象」「値」の3つを指定すれば操作が可能なので、TABOKで言えばKeyword Driven Frameworkにあたるツールですが、1キーワードが1オペレーションになるので、粒度が細かくなっています。なので、KDTかと言うと微妙ではあります。その辺の概念がまとまるのは、もう少し先の話になりそうですが、今回私が考えているのは、スプレッドシートに書いたビジネスレベルの操作を元にテストを行うというもの。例えば、「申込み」「変更」とか大雑把な操作レベルです。
ですので、SeleniumIDE用のテストケースにしろ、Selenium2にしろCUITにしろ、スプレッドシートからキーワードを読み取って、UI操作するツールを動作させるための仲介役のプログラムが必要になります。SeleniumIDEなら、スプレッドシートからHTMLの形に変換をかけます。Selenium2はJavaやC#のコードに落とす必要があります。
この時、私が期待しているのは、現在使用している統合開発環境がVisual Studioという点です。Visual Studioと言えばMicrosoftの製品ですから、Excelとの相性が抜群。

Visual Studioで作るデータドリブンテスト

など様々な記事で紹介されている通り、単体テストでExcelを読み込みデータ駆動のテストを実現することができるようです。UIのテストでも同様に使うことができれば、コードに落とす手間が省けます。

さらに、Team Foundation Serverに登録しておけば

TFS 2012 プロジェクトのはじめ方 ~新TFSスクラム プロセステンプレート紹介つき [1/2]

で紹介されている

テスト作業) PBI → テスト スイート → テスト ケース → (テスト結果) → バグ → (ソースコード) → (ビルド) → (デプロイ)

の良いサイクルにも乗せられる…???

なんて夢を見ている次第。

夢かどうかは調査中なのですが、参考にできそうな事例が転がっていなくて、のろのろ亀さんのペース。そんなに悠長に過ごしてはいられないんですけどね…。ご存知の方がいましたら、コメントいただけると助かります。

今日はCUITを試しに使ってみていたのですが、そちらも悪戦苦闘。長くなってしまったので、次の記事であげようと思います。

WACATE2013夏 ポジションペーパー

3回目のWACATE。JaSST東北で登壇の機会をいただいたのもWACATEがきっかけ。感謝の気持ちも込めて書きました。晒します。


「Road of the Test Automator」

■   Hop! WACATE2012夏 初参加☆

弱小独立系ソフトハウスに所属している9年生、うち7年近くはテストの自動化に携わっています。昨年初めてWACATEに参加し、たくさんの技術や仲間に出会いました。それまで外に出たことがなく、スキル不足の一因だと思いこんでいた自動化経験も、この1年で初めて長所であることに気づくことができました。今はSTAR(テスト自動化研究会)にも参加しています。

■   Step! JaSST’13 Tokyo 初登壇☆

WACATEに参加するまで、シンポジウムなんて縁がないと思い一度も行ったことがありませんでした。それがなんと、初参加で初登壇。STARのセッションのパネラーに抜擢されたのです。というのも偶然で、基調講演をMrs.Dorothy Grahamが担当されるとのことで、STARでも女性を表に出すことになったのです。方針は理解できたものの、機会をいただけたことに幸運を感じながらも内心は複雑でした。

とはいえ、決まったからには真剣勝負です。年末年始もお構いなし、登壇者の3名を中心に週に1~2回のミーティングをしながら作り上げました。たくさんのレビューと、リハーサルを重ねての当日。STARの看板と、200人を越える聴衆のSTARへの期待を背負っての発表です。人前で話す経験が少なく、不安でいっぱいでした。それでも、みんなで完成させた内容には自信がありました。あとは堂々と発表するだけです。

STARメンバーの応援にも後押しされ、壇上に上がります。女性3人、1人15分のリレー形式。堅さは抜けきれませんでしたが、もらったバトンを繋げることができ、STARのセッションは無事に成功することができました。貢献できた嬉しさと、達成感でいっぱいでした。この経験は大きな自信にもつながりました。

■   Jump! JaSST’13 Tohoku 初LT☆

WACATEの輪はさらに東北へとつながりました。WACATEが縁で知り合った仙台の根本さんから、東北出身&東北LOVEの私に、JaSST’13Tohokuでのテストの自動化をテーマにLT枠を用意していただけたのです。大喜びで取り掛かりましたが、5分という短い時間をどのように使うか悪戦苦闘しました。ドメインやスキルの異なる人たちに、どうしたら共通の理解をしてもらえるか、自身の中で暗黙知となっていた自動化の構造をいかに説明するかが鍵でした。説明しにくい部分はアニメーションを多用した結果、発表の途中で聞き手から意図した反応があり、こっそりガッツポーズ。終わってからもたくさんのフィードバックがあり、またひとつ、自信がつきました。

■   2本目!!

昨年のWACATE初参加から多くのの支援とチャンスをいただき、加速してきました。自動化以外のテストに関するスキルも、業務やテスト設計コンテストへの挑戦などで、去年に比べて向上していると自負していますが、広く深いソフトウェアテストの世界ではまだまだひよっこ。経験不足は否めません。まだまだこれからも加速を続け、背中を押してくださった皆さんの期待に応えられるようがんばっていきます。

 次の目標: 「テスト自動化エンジニア」を名乗れるようになる!! 

WACATE2012冬 ポジションペーパー

WACATE2012冬の申込み時に提出したポジションペーパー。外に出て半年の成果をまとめました。晒します。


「目指せ上級テストエンジニア!1年目終了」

■  WACATE参加という一歩

お客様先に常駐してのテストのお仕事を8年、うち、テスト自動化に7年携わってきました。今後のキャリアパスを考えたときに「テストエンジニア」という職業があることを知り、この道に進むことを決意してから丁度1年が経ちました。JSTQBという資格を知り取得、ぐーぐる先生に聞いてたどり着いたWACATEに参加したのが前回でした。自己分析と熱意を込めただけのポジペで思いがけずBPP`賞をいただいてしまい、この半年はたくさんの応援をいただきながら「できることはやる!」をモットーに精力的に過ごしてきました(`・ω・´)

■  WACATE参加からの半年で、これだけできました!

☆ テスト自動化研究会への参加。TABOKを読みながらテスト自動化エンジニア像を作り上げる。

☆ WACATEの成果を自社で報告。反応は良好。後に続く人は現れるのか?!

☆ ドリル本の読書会に参加。組合せテストの章の担当を、復習を兼ねて挙手!簡単ながら説明に挑戦。

☆ WACATEを振り返りながら悩んでいたら、秋山さんがラーメンラルフチャートを描いてくれた!

☆ BPP賞の副賞だったGihyo.jp へのWACATE参加レポートを寄稿。プロフ写真へのつっこみが多々。

☆ ASTER、智美塾、SqiP、ツールWGなどの存在を知る。JaSSTは未だに行ったことない。

☆ 業務でのラルフチャートの活用…テスト対象の分析に自分なりに使ってみた。

☆ そぞろにコミケに向かうテストコミュな皆様。コミケや同人誌への誤解が解けた。冬デビューか?!

☆ 名前だけは知っていたマインドマップというものを書いてみた。テーマは「働く私」。

☆ TABOKを購入。初めての海外サイトで通販は、英語での問い合わせメールまで届いてあたふた。

☆ 組込システムのテスト設計と実施。今まで見たことがない一連の仕様書の山。初めての仕様書作成。

☆ テスト設計コンテストにWACATE新人メンバーで挑む。名前は「しなてす」。四苦八苦。

☆ テスト自動化研究会の出力をセミナー開催にしようという話に。テーマを議論。着々と準備が進む。

☆ TEF に登録(承認待ち)。新人の頃にTEFを見つけて、恐れをなして引き返したあの日が懐かしい。

☆ てすバナ語るっcha!に初参戦。技術的な話に盛り上がるパジャマパーティが新鮮!

☆ フルーツバー、ビアガーデン、仙台の海の幸に参鶏湯、焼肉…テストコミュの皆様と懇親会も多々♪

☆ 手動テストならでは?効率化もままならぬ残業の日々。マネジメントの大切さを痛感。

☆ テスト設計コンテストは見事玉砕でまた来年!テスト計画を一から立てて、経験値は大幅UP!

☆ 切磋琢磨。勉強会で得た知識を展開しあう。対立解消図(クラウド)なるものを学ぶ。

☆ テスト自動化研究会の発表として「JaSST東京の枠が取れたからよろしく!」と言われる(・д・;)

■  次の一歩へ!

この半年の自分の成長に驚きながらも、まだまだ未熟なことだらけ。たくさんのチャンスを逃さぬよう積極的に勉強を続け、次の半年は自分の将来像が見えるようになることが目標です!!

WACATE2012夏 ポジションペーパー

初めて社外に飛び出した、WACATE2012夏の申込み時に提出したポジションペーパー。はじめの一歩、晒します。


「目指せ上級テストエンジニア!1年目」

■ テストの自動化に携わって私、上級テストエンジニア目指します!

出向のエンジニアとして7年。これまで、統合テスト以降での自動テストツールの導入・運用(QTP6年、Selenium1年)に携わってきました。漠然とテストの仕事をしていましたが、ちょうど1年ほど前、今後どんな仕事をしていきたいかを考えたときに「テストエンジニア」という名乗り方があると知り、「よし、この道を更に歩もう!」そう決意をしました。

経験年数としてはそれなりにあるのですが、自動化だけやってきたので問題がいくつかあります。

○ できます(・ω・)

  • ŸQTP、Selenium使えます!Ÿ   ドキュメント作れます!
  • Ÿツールの使い方など、教育できます!
  • Ÿ数人なら面倒みれます!
  • Ÿコミュニケーション取れます!
  • Ÿエビデンス書けます!

△ できると言うには躊躇う(´へ`)

  • テスト設計→自動化向きの試験書作成or完成した試験書の実施ばかり。技法ナニソレ?!
  • プログラミング→VBA、VBScript、Java等、ツールを使ったり作ったりするのに触りましたが、世に出さないテスト用ツールのプログラミングだから動けばよし…?

× できませぬ(TへT)

  • テスト計画→今までテスト計画は専属のリーダーがおりました
  • 各種技法、特にホワイトボックステスト→UI側しか触ったことありません…
  • 世の中のいろんな標準→ただの勉強不足です

2つのプロジェクトにしか参画したことがないのも響き、知識は偏り、勉強すべきことが山ほど!

自動化はテスト実施のための手段の一つ。それだけを見ていたら、テストの本質を見失ってしまいます。さっそくJSTQBの勉強をして(2月のFL合格しましたv)、経験も積んで、最終的には効率のよく質の高いテストを実現できるリーダーになりたい!そんな夢を膨らませています。

■ 思いがけない敵の登場…大きいような小さいような直近の目標

決意を固め、前に進んでいたこの春。Selenium導入の仕事が終わってから大きな敵が現れました。お恥ずかしながら、なんと自分の会社ですorz 開発業務の請負ばかりやっているので、希望に合う仕事がないと言うのです。JSTQBを取ったと言っても「それってすごいの?」と言われ…ちゃぶ台ひっくり返す勢いで辞表を突きつけようかと思いましたが、自分の道を自分で決められる制度が魅力で入社したこの会社、そう簡単に辞めるわけにはいきません。愛着もあるし、何より悔しいのでw

だからといって社内で独立するにはスキル不足。「プログラミングやDBを身につけて仕事の幅を広げてほしい」という会社の指針におとなしく従い、目下プログラミングの勉強中です。そうしておけば、単体に近いテストも分かるようになるし、テストのお仕事の中でちょこっとしたツールも簡単に作れるようになる。これならWin-Win。あとはワークショップや勉強会にも積極的に参加してスキルを磨き、会社に新しい風を吹き込む!それが私の当面の目標です!!