タグ 千里霧中
人気順 5 users 50 users 100 users 500 users 1000 usersリファクタリングすべきか・してよいかの判断基準 - 千里霧中
リファクタリングは、設計やコードを綺麗に保つという普遍的に求められる活動の一要素です。常識的な習慣として推進すべき活動です。 ただ、有効性の理解を得られないままリファクタリングを行って物議を醸す場面も存在します(例えばここのはてなブックマーク等で巻き起こった議論などです)。 実際、リファクタリング... 続きを読む
品質保証部門の老害化。そして老害化した品質保証は品質を悪化させる - 千里霧中
※品質保証のエンジニアが自省・戒めのために書いた記事になります 品質管理(Quality Control)、品質マネジメントは国内では製造業を中心に発展し、プロダクトの競争力向上に貢献してきました。 JTCと呼ばれる旧来からのメーカーでは、その実績・年功の蓄積に応じて品質管理・品質保証部門が権威を獲得し、今でもソフト... 続きを読む
CI/CD方針、テスト・QA方針と連動する三分類ブランチ管理方針で、開発での高品質と高スピードの両立を支える - 千里霧中
最近の開発では、CI/CD、自動テスト、継続的テストが当たり前となっていますが、その影響で、それらのCI/CD方針、テスト方針と、Git等のバージョン管理のブランチ方針をどう連携させるかが、定番の課題になっていると感じています。 今回は、このブランチ方針、CI/CD方針、テスト方針を連携させて、開発の品質とスピード... 続きを読む
品質保証(QA)とは。定義の三大流派と定義揺れの弊害 - 千里霧中
近年のソフトウェア業界では、テスト関連活動を担うエンジニアを「QAエンジニア」と呼ぶようになっています。ただQA(品質保証)という言葉は、旧来から二つの定義が共存しているほか、業界内の通例で更に別の意味付けが行われた結果、定義が曖昧になり誤解を生みがちな状態となっています。 そこで今回は、日本語圏で、... 続きを読む
モダンなテストレベル設計(ユニットテスト~システムテスト等をどう設計するか)の原則 - 千里霧中
プロジェクト全体のテストを組み立てる際に重要な課題になるのが、テストレベル設計です。テストレベル設計は、ユニットテスト、結合テスト、システムテストといったテストレベルを、どのような責務・段取りで行うか分析・設計する活動です。 このテストレベル設計ですが、ここ10年程度の間に望ましいアプローチが変わっ... 続きを読む
TDDはゆるく実践しても大丈夫 - 千里霧中
最近、TDDのテストコードは捨てても良いかみたいな議論を見ました。 これに対する自分個人の経験上の意見ですが、TDDは雑多にテストコードを使い捨てても効果を出せると思います。 もちろん、TDDで保守性が高く価値あるテストを書いて、捨てすにCIや中長期的なリファクタリングで再利用していくと、TDDの効果を増幅でき... 続きを読む
Classification Tree法について - 千里霧中
2014-05-26 Classification Tree法について ソフトウェアテストの分野では、日本語圏と英語圏で話題や志向が違うことが結構ある。 その違いの代表例の一つとして、テスト技法であるClassification Tree法がある。この技法は、海外ではISO/IEC 29119が代表的なテスト技法として挙げているなどそれなりの知名度を持っているそうだが、日本国内では知名度がかなり低... 続きを読む
C/C++でのユニットテストによるメモリリーク検出 - 千里霧中
2014-03-31 C/C++でのユニットテストによるメモリリーク検出 CやC++の開発ではメモリリークに悩まされることが多い。メモリ管理はスマートポインタに限定するなど自分たちが注意しても、外部で開発されたコードやレガシーコードによって結局逃れられないことがしばしばある。 さらに組み込み開発などコードの実行環境に制約が多い場合は、検出や再現がやりにくいことから、メモリリークのデバッグやテストが... 続きを読む
データの品質モデル(ISO/IEC 25012)について - 千里霧中
2013-12-19 データの品質モデル(ISO/IEC 25012)について ソフトウェア品質モデルの国際的な標準規格としては、長らくISO/IEC 9126が一般的でした。ただ規格が置換されたこともあり、最近はISO/IEC 25000シリーズ(通称SQuaRE)が使われるようになっています。 ISO/IEC 25000シリーズでは、ISO/IEC 9126と比べていろいろ変更や拡張が行われて... 続きを読む
TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中の犀
開発者のいう品質保証の定義 まずTDD談義で開発者が「品質保証のためのテスト」「品質管理のためのテスト」などと呼んでいるテストの定義は、乱れや不統一感も多少あるけど、基本的にKent Beckや和田さんが使われているQAテストの定義によるもの(http://gihyo.jp/dev/serial/01/tdd/0003)。 この定義で「品質保証のための単体テスト」といえば、かなり大雑把だが例えば... 続きを読む
テスト自動化の目的 - 千里霧中
最近あるMLでテスト自動化の目的について考える機会があったのですが、今回はそこで考えたことの整理として、テスト自動化の目的をまとめたいと思います。色々な目的 よく言及されていますが、テスト自動化の目的は単に「人がやっていることをツールにやらせて楽をする」といったものに限りません。思いつくものでも、例えば以下があります。繰り返し作業を効率化する 何度も繰り返し実行する作業を自動化して、繰り返しによる... 続きを読む
続・テストコードのリファクタリング - 千里霧中
「テストコードのリファクタリング - 千里霧中」の続きです。 テストコードを対象としたリファクタリングの回帰テストについてですが、粗悪なレガシー・テストコードに対しては、ミューテーション分析やロギングの活用によって、ある程度「テストのあるリファクタリング」と呼べる水準を確保できると思います。 ただそれ以外では、 前回でも軽く触れましたが、やはり使い勝手が良くかつ信頼できる決定的な手段はありません。... 続きを読む
テストコードのリファクタリング - 千里霧中
ユニットテストの再利用や継続的利用を行おうとすると、テストコードにも保守性等に優れた良い設計が求められるようになります。そこで出番が増えてくるのがテストコードのリファクタリングです。 ただ現状、テストコードのリファクタリングはいくつか課題を抱えています。今回はその課題の1つである「リファクタリング前後でテストコードの振る舞いが変わっていないかチェックするテスト」(以下リファクタリングの回帰テスト)... 続きを読む