ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changes between Version 5 and Version 6 of pne-book-9-4


Ignore:
Timestamp:
Feb 29, 2008, 7:55:08 PM (12 years ago)
Author:
imoto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • pne-book-9-4

    v5 v6  
    9494 1. バグ再現(酒井)
    9595 1. 開発(海老原)
    96  1. リリース(小川)
     96 1. 動作テスト(酒井)
    9797
    9898
     
    327327 (再現待ちのスクリーンショット)
    328328 
    329  また、収集したバグの中には環境に依存するものや、情報不足なものもありバグの再現が難しい場合もあります。そのような場合は、なるべくバグ情報をもとに直接コミュニティで聞いたり日記でコメントしてどのような状況でそのバグが発生したかなどの原因を追究するようにしています。
    330  
    331 
    332  === 実際のバグ再現方法 ===
    333 それでは実際にバグ再現の方法を見てきましょう。[[BR]]
    334 ただ、バグはそのバグによってその再現方法が違うので、今回はツールを紹介しながらバグの再現方法を解説していこうと思います。[[BR]]
    335 バグによって使うツールはさまざまですが、私が多く使っているのが、「Selenium IDE」「Web Developer」を主に使っています。数多くある中から今回はOpenPNEに良く使うこの2つのツールを紹介したいと思います。[[BR]]
    336 この2つのツールはどちらもFirefoxのアドオンです。[[BR]]
    337 Selenium IDEは主に繰り返し処理を行うときに使っています。特にOpenPNEはページングの処理が日記、コミュニティ、管理画面などに多く使われています。このように繰り返しの処理でバグなどが発見された場合には、このSelenium IDEを使って自動化しています。
    338 
    339 (Selenium IDE の使用スクリーンショット)
    340 
    341 次に、Web Developerですが、これは主にフォームの値チェックやバリデーション関係のバグ再現で使用しています。OpenPNEには日記やコミュニティトピックなどフォーム入力が多くあります。そのようなフォーム入力でのバグなどにはこのWeb Developerを使用します。[[BR]]
    342 
    343 (Web Developer の使用スクリーンショット)
    344 
    345 
    346 {{{
    347   ツール紹介
    348  
    349   Selenium IDE :: Firefox Add-ons
    350   https://addons.mozilla.org/ja/firefox/addon/2079
    351  
    352   (スクリーンショット)
    353  
    354   OpenPNEでは主にバグ再現やテストツールとして使用しています。
    355   このSelenium IDEはFirefoxのアドオンとして提供されているため、非常に簡単に導入できるという特徴もあります。
    356   OpenPNEのバグ再現にはあまりしない機能ですが、テストケースをHTMLやPHPなどさまざまな形式でエクスポートできるのも特徴です。
    357 
    358 }}}
    359 
    360 {{{
    361   ツール紹介
    362  
    363   Web Developer :: Firefox Add-ons
    364   https://addons.mozilla.org/ja/firefox/addon/60
    365  
    366   (スクリーンショット)
    367  
    368   このWeb Developerは普通はCSSの編集やテーブル表示などに使うことが多いと思いますが、OpenPNEのバグ再現やテストをするときにはではフォーム関連の機能を使うことが多いです。その他にもWEBページを作っていく上で便利な機能が満載です。
    369  
    370 
    371 }}}
     329 また、収集したバグの中には環境に依存するものや、情報不足なものもありバグの再現が難しい場合もあります。そのような場合は、なるべくバグ情報をもとに直接コミュニティで聞いたり日記でコメントしてどのような状況でそのバグが発生したかなどの原因を追究するようにしています。[[BR]]
     330
     331
     332 === バグ再現方法 ===
     333 バグの再現方法はバグによってさまざまです。[[BR]]
     334 実際に、動作してみてすぐにバグだと分かるものもあれば、どの様な環境が使われていてそのようなバグが発生しているのかなどです。[[BR]]
     335
     336
     337■■■■■■■■■あとで■■■■■■■■■■■
     338
    372339
    373340
     
    389356 1.コーディング[[BR]]
    390357 1.コードの確認[[BR]]
    391  1.テスト[[BR]]
     358 1.動作テスト[[BR]]
    392359
    393360
     
    488455 
    489456  OpenPNE開発者はローカル環境にVMwareを使う人とcoLinuxがいます。
    490   どちらを使うかは開発者好みで判断しています。
     457  どちらを使うかは開発者好みで判断しています。
    491458  ただ、初めてOpenPNEのローカル環境を作る場合は、VM4PNEが公開されているので、VMwareの方が比較的簡単にローカル環境を作ることが出来ると思います。
    492459 
     
    494461 
    495462  {{{
     463  ツール紹介
     464   
    496465  PuTTY
    497466 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 
     
    514483  このソースコードの確認は小川さんにお願いします。[[BR]]
    515484 
     485  このソースコードの確認ではコードが正常に動作するかなど基本的な確認はもちろん、コードの設計やセキュリティ面での抜け漏れなども確認してもらっています。 
     486 
    516487  確認してソースに不具合があった場合などは確認中のkeywordsが削除され、またバグの修正をします。[[BR]]
    517488 
    518   そして、良いと判断されたものはテストkeywordsがテスト待ちにされ、testing defect (テスト待ちの不具合)の一覧に入テストされます。[[BR]]
     489  そして、良いと判断されたものはテストkeywordsがテスト待ちにされ、testing defect (テスト待ちの不具合)の一覧に入った後に動作テストされます。[[BR]]
    519490 
    520491  (testing defect 画像)
    521492 
    522493 
    523   ==== テスト ====
    524   最後に、テストをして正常に動作すれば、resolveをfixedにします。[[BR]]
    525  
    526   この一連の流れをレポートのチケットがなくなるまで続けます。[[BR]]
    527  
    528 
    529494 === まとめ ===
    530  このような形で、OpenPNEのバグは修正されています。[[BR]]
    531  以前はバグを修正するのもすごく時間がかかっていたり、小さなミスがありました。しかし、SVNを使ったり、バグをチケットで管理することで効率が上がったりミスがなくなりつつあります。[[BR]]
    532  また、開発ツールも今後のOpenPNE3を見越してコンソールで開発する人も増えています。[[BR]]
    533  
    534  
    535  
    536  
    537 
    538 == リリース ==
     495 このような流れで、OpenPNEのバグは修正されています。[[BR]]
     496 以前はバグを修正するのもすごく時間がかかったり、小さなミスがありました。しかし、SVNを使ったり、バグをチケットで管理することで効率が上がると共にミスが少なくなくなりつつあります。[[BR]]
     497 また、開発ツールも今後のOpenPNE3を見越してCUIで開発する人も増えています。[[BR]]
     498
     499== 動作テスト ==
     500 === 概要 ===
     501 それでは最後に、動作テストを酒井が解説します。[[BR]]
     502 先ほどのバグ修正で実際にバグが修正されているかをテスト環境を使って動作テストをしていきます。[[BR]]
     503 この動作テストのポイントとしては、実際にユーザー側の視点で動作テストをすることです。[[BR]]
     504 コードを見ただけで修正されたかどうかを判断するのではなく、実際にユーザー視点で動作テストをすることが大切だと考えています。もちろん、開発の段階で開発者はテストをしていますが、あらゆる視点からテストをしてバグの修正抜けや修正漏れを防ぐためにこのように開発が終わった後に開発者以外の人が動作テストをしています。[[BR]]
     505 それでは、実際にOpenPNEがどの様に動作テストが行われてみているか確認していきましょう。
     506 
     507 
     508 === 流れ ===
     509 1.テスト表作成[[BR]]
     510 1.動作テスト[[BR]]
     511 
     512 
     513  ==== テスト表作成 ====
     514  動作テストをする前に、テストする項目についてテスト表を作成します。[[BR]]
     515  以前はエクセルでこのテスト表を作っていました。しかし、現在はこのテスト表をGoogleSpreadsheetsで管理しています。この理由としては、テスト表を見たい時に一度ダウンロードしてエクセルで開くという動作が必要でしたが、このGoogleSpreadsheetsにテスト表を移行したことで、その手間を省くことが出来ました。[[BR]]
     516  また、このGoogleSpreadsheetsは共有することが出来るので2人同時に編集することも可能なので作業効率が上がるというメリットがあります。
     517 
     518  (テスト表 スクリーンショット)
     519 
     520  テスト表は決まったフォーマットを用意し、テスト表を作成していきます。[[BR]]
     521  現在OpenPNEのテスト表には以下のような項目でテスト表を作成しています。[[BR]]
     522  詳しくは、OpenPNEテスト表の一覧を参照してください。[[BR]]
     523 
     524  {{{
     525ID       1からの連番
     526ticket  チケットのURL
     527Summary         チケットのSummary
     528module  テストする画面のモジュールを(admin,pc,ktai,biz,ktai_biz)
     529type    テストする画面のタイプ(page,do)
     530action  テストする画面のアクション名
     531動作      テストの動作
     532入力値・設定値         フォームの入力値、設定値などの条件
     533結果      テスト動作から期待される結果
     534テスト結果   期待される結果が得えられたかどうか
     535テスト備考   テスト結果の補足
     536}}}
     537
     538  {{{
     539  OpenPNE テスト表一覧
     540  http://docs.google.com/a/openpne.jp/
     541  }}}
     542 
     543
     544
     545 
     546  テスト項目を作る上で注意している点としてはテスト漏れがないかどうかという点です。[[BR]]
     547  このテスト項目を作った後にテスト項目を作成する人以外の人に確認してもらうということを行っています。この作業をすることで、テスト項目の漏れを防いでいます。[[BR]]
     548 
     549  現在は、このGoogleSpreadsheetsを使用していますが、今後テスト表をマインドマップへと移行させていく予定です。[[BR]]
     550  マインドマップでテスト表を管理するメリットとしては、マインドマップの持つ一覧性と関連性がテストに向いているからです。[[BR]]
     551  テストはあらゆることを想定して、どの様な動作が起きても対応出来る様にテストする必要があります。マインドマップを使って、あらゆる動作に気づくことでより多くのテストをして、OpenPNEのバグを発見し、信頼性を高めていきたいと考えています。
     552 
     553  現在、手嶋屋ではマインドマップを議事録など日常の業務の中でも使用しており、マインドマップに慣れているという点で、今後テスト表をマインドマップに移行させるときもある程度スムーズに移行できると考えています。手嶋屋ではFreeMindというマインドマップを作成するツールを使っています。 
     554 
     555 
     556  {{{
     557  ツール紹介
     558 
     559  Google ドキュメント
     560  http://docs.google.com/
     561 
     562    (スクリーンショット)
     563 
     564  OpenPNEではGoogleドキュメントをテスト表などあらゆる場面で使っています。
     565  メリットとしては、共有することが出来るという点と同時に編集することが出来るという点です。
     566 
     567  }}}
     568 
     569 
     570  {{{
     571  ツール紹介
     572   
     573  FreeMind
     574  http://freemind.sourceforge.net/
     575 
     576  (スクリーンショット)
     577 
     578  手嶋屋ではこのFreeMindを使ってマインドマップを作成しています。
     579  用途としては、何かアイデアを出すとき、考えをまとめるとき、会議の議事録など幅広くマインドマップを活用しています。
     580  今後OpenPNEのテスト表もこのFreeMindを使ってつくることになるでしょう。
     581 
     582 
     583  }}}
     584 
     585 
     586 
     587  ==== 動作テスト ====
     588
     589  それでは実際に動作テストの方法を見てきましょう。[[BR]]
     590  ただ、動作テストはその動作テストによってそのテスト方法が違うので、今回はツールを紹介しながら動作テストの方法を解説していこうと思います。[[BR]]
     591  動作テストによって使うツールはさまざまですが、私が多く使用しているのが、「Selenium IDE」「Web Developer」「User Agent Switcher」です。数多くあるツールの中から今回はOpenPNEの動作テストに良く使うこの3つのツールを紹介したいと思います。[[BR]]
     592  この3つのツールはどれもFirefoxのアドオンです。[[BR]]
     593Selenium IDEは主に繰り返し処理を行うときに使っています。特にOpenPNEはページングの処理が日記、コミュニティ、管理画面などに多く使われています。このように繰り返しの処理の動作テストには、このSelenium IDEを使って自動化しています。[[BR]]
     594
     595  (Selenium IDE の使用スクリーンショット)
     596
     597  次に、Web Developerですが、これは主にフォームの値チェックやバリデーション関係のバグ再現で使用しています。OpenPNEには日記やコミュニティトピックなどフォーム入力が多くあります。そのようなフォーム入力のテストなどにはこのWeb Developerを使用しています。[[BR]]
     598  Web Developerの「フォーム」メニューの中にある「フォームの詳細情報を表示する」というというのにチェックをすると、そのフォームの詳細情報を表示させることが出来ます。例えば日記投稿の確認画面などでフォームの詳細情報を表示させると、実際にそのフォームの値を表示させると共に、書き換えることも出来ます。
     599  そこで、フォームのセッションIDを偽装したときにエラー画面がちゃんと表示されるかなどのテストをWeb Developerでしています。
     600 
     601  最後にUser Agent Switcherですが、このUser Agent Switcherは携帯でのテストに使用します。[[BR]]
     602  このUser Agent Switcherは簡単にUser Agent名を変更することができます。しかし、携帯でのテストはこのUser Agent Switcherだけに頼ることなく、実機でのテストが必要な場合は実機でのテストもしています。[[BR]]
     603 
     604 
     605  このように、実際にテストをするときは効率よくテストをするためにあらゆるツールを使ってテストをしています。ただ、テストツールだけに頼ってテストしていくのではなく、携帯のように実機のでのテストが必要な時は実機でテストしていくことが大切だと考えています。[[BR]]
     606 
     607
     608  (Web Developer の使用スクリーンショット)
     609
     610
     611  {{{
     612  ツール紹介
     613 
     614  Selenium IDE :: Firefox Add-ons
     615  https://addons.mozilla.org/ja/firefox/addon/2079
     616 
     617  (スクリーンショット)
     618 
     619  OpenPNEでは主にバグ再現やテストツールとして使用しています。
     620  このSelenium IDEはFirefoxのアドオンとして提供されているため、非常に簡単に導入できるという特徴もあります。
     621  OpenPNEのバグ再現にはあまりしない機能ですが、テストケースをHTMLやPHPなどさまざまな形式でエクスポートできるのも特徴です。
     622
     623}}}
     624
     625
     626  {{{
     627  ツール紹介
     628 
     629  Web Developer :: Firefox Add-ons
     630  https://addons.mozilla.org/ja/firefox/addon/60
     631 
     632  (スクリーンショット)
     633 
     634  このWeb Developerは普通はCSSの編集やテーブル表示などに使うことが多いと思いますが、OpenPNEのバグ再現やテストをするときにはではフォーム関連の機能を使うことが多くあります。その他にもWEBページを作っていく上で便利な機能が満載です。
     635
     636}}}
     637
     638  {{{
     639  ツール紹介
     640 
     641  User Agent Switcher :: Firefox Add-ons
     642  https://addons.mozilla.org/ja/firefox/addon/59
     643 
     644  (スクリーンショット)
     645 
     646  このUser Agent Switcherは簡単にUser Agent名を偽装することが出来るツールです。
     647  主に、携帯でのテストやバグ再現などに利用します。携帯のテストするときには携帯シミュレータなどを使うこともありますが、このUser Agent SwitcherはFireFoxのアドオンなので比較的簡単に携帯のテストを行うことが出来ます。
     648
     649}}}
     650
     651
    539652
    540653
     
    542655
    543656== OpenPNEチーム開発まとめ ==
    544 
    545 
    546 
     657では最後にOpenPNEのチーム開発について小川がまとめます。
     658
     659 === チーム開発 ===
     660 現在OpenPNEではチーム開発をしていますが、開発をする上でいくつか大切にしているポイントがあります。
     661 
     662 
     663 1.開発者の主体性を重視こと[[BR]]
     664 1.違う視点を大切にすること[[BR]]
     665 1.コミュニティの中で作り上げていくこと[[BR]]
     666 
     667 
     668 ==== 開発者の主体性を重視こと ====
     669 OpenPNEを開発していく上で、いかに開発者のモチベーションを上げるかどいうことは大切な要素だと考えています。[[BR]]
     670 そのモチベーションを高めるために、この開発者の主体性を重視するということを考えてチーム開発を行っています。[[BR]]
     671 例えば、バグを改善するのもOpenPNEでは基本的に優先順位の高いチケットからバグの修正をしていきますが、その優先順位の高いものの中からどのチケットからバグの修正を始めるのかなどは開発者に任せています。[[BR]]
     672 それは、開発者のモチベーションが開発スピードに依存することを分かっているからです。自分の得意なものや、やりたいことを自ら選択することで開発スピードが上がると考えています。[[BR]]
     673 また、開発ツールも開発者の主体性を重視しています。もちろん、推奨しているツールなども紹介していますが、使い勝手で開発効率を下げるよりも主体性に任せて開発ツールを選択してもらっています。[[BR]]
     674 
     675 このように、OpenPNEでは基本的に開発者の主体性を重視して開発を進めています。
     676 もちろん方向性を間違えたりチームとして機能しなくなれば改善はしていきますが、開発者の主体性を重視して開発効率が上がりOpenPNEの品質が向上すればいいと考えています。[[BR]]
     677 
     678 
     679 ==== 違う視点を大切にすること ====
     680 OpenPNEを開発する上で違う視点を大切にすることも大切だと考えています。[[BR]]
     681 特に、テストやバグ再現などの時は違う視点を大切にしています。[[BR]]
     682 開発者とテスターの違いを考えてみましょう。[[BR]]
     683 開発者は開発する上で開発効率の良し悪しを常に考えています。いくつもの機能を修正する際に一箇所修正してあとは同じ箇所を一括で変換すれば他のファイルも適用されて正常に動作するだろうという風に考えます。[[BR]]
     684 しかし、テスターというのはそのような考え方であってはならないと考えています。[[BR]]
     685 常にどこかに穴がないか探りながら慎重に見て実際に検証する必要があります。すべてを信頼しきってしまうことは良くありません。[[BR]]
     686 また、開発者というのは同じ視点を持っている場合や、当たり前という共通意識があったりします。その当たりの視点を変えるという点でテスターは開発者ではない方が良いと考えています。[[BR]]
     687 チーム開発をする上で人の役割分担は非常に重要なことであると考えています。[[BR]]
     688 
     689 また、違う視点を大切にすることはテストやバグ再現だけではありません。実際に開発を行うときも、ペアプログラミングを行い違う視点を大切にしています。[[BR]]
     690 ペアプログラミングとは2人で一緒にプログラミングをすることです。ただし、一人がプログラムを書きもう一人はその書いているソースを見るという手法です。この2人の役割を変えながらソースコードを書いていきます。[[BR]]
     691 このペアプログラミングも違う視点を大切にしています。実際にコードを書いている人は自分がソースを書くことに集中しているのでソースの間違えに気づかないことが良くあります。[[BR]]
     692 そこで、もう一人の人が客観的にそのソースコードを見ることで違う視点で物事を見ることができ、ソースの間違えにも気づきます。[[BR]]
     693 この様に開発を進めることでソースコードの品質が高まります。[[BR]]
     694 
     695 この違う視点を大切にすることというのは一つのことに対して多くの人手を必要とするので一見無駄な様に見えますが、その無駄だと思えることが結果的には品質を上げるために必要な要素であると分かります。[[BR]]
     696 
     697 
     698 
     699 
     700 
     701 ==== コミュニティの中で作り上げていくこと ====
     702 
     703 
     704 
     705 
     706 
     707 
     708 === 今後のOpenPNE ===
     709 
     710 私がOpenPNEを語る時、OpenPNEは常に発展途上だという話をします。[[BR]]
     711 OpenPNEにはまだまだ改善する所はたくさんあります。それは常にOpenPNEの開発者は認識していることで、これからも変わらないことだと考えています。[[BR]]
     712 
     713 これまでOpenPNE開発をしてきて良かったと思う点はOpenPNEの開発者全員が常にOpenPNEをより良いものにしたいという気持ちだけで開発をしてきたことにあると思っています。[[BR]]
     714 この様に常により良いものを追い求めて発展をし続けてきたことで、現在のOpenPNEがあると思っています。ただ、やはりOpenPNEがまだまだ発展途上だと考えています。それはOpenPNE開発には終わりはないということも表しています。[[BR]]
     715 
     716 今回、この様にチーム開発としてOpenPNE開発のことを紹介したのはOpenPNEは多くのこと公開していますということを伝えたかったというのもあります。[[BR]]
     717 OpenPNEはソースコードがオープンなだけではなく、開発体制なども公開しています。[[BR]]
     718 OpenPNEっていろいろなことを公開してるんだなと思ってもらえるキッカケになればと思い、今回この本の中にOpenPNEの開発体制を紹介しました。[[BR]]
     719 また、公開することによってOpenPNEの開発体制などを知ってもらい、OpenPNEをより良いものにしたいと考えている方がいれば一緒にOpenPNEを育てていけたらいいなと考えています。[[BR]]
     720 実際に今後は積極的にソースコードの受け入れをしていきたいとも考えています。[[BR]]
     721 OpenPNEは手嶋屋の中だけで開発しているのではなく、OpenPNEコミュニティでOpenPNEを育てていきたいと考えています。[[BR]]
     722 
     723 OpenPNEをより良いものにするためには、もちろんソースコードの質も大切だと思います。しかし、ソースコードだけではなくOpenPNEの開発体制などももっと改善していきたいと考えています。現在のOpenPNEのチームもまだまだ発展途上で不完全です。[[BR]]
     724 もっと多くの人と関わり合いながらコミュニティの中でOpenPNEをより良いものにしていきたいと考えています。[[BR]]
     725 私たちOpenPNE開発者はOpenPNEをより良いものにしたいという思いだけでOpenPNEを開発しているので、ぜひそういう思いがあれば一緒にOpenPNEを育てていけたらいいなと考えています。
     726