機能要件は、ソフトウェアやシステム開発において必要となる大切な工程です。制作するシステムに盛り込みたい機能をクライアントから適切に聞き出し、どのような機能が必要なのかを明確に定義します。また、機能要件と反する言葉に、「非機能要件」があります。 非機能要件は、クライアントから提示された機能ではなく、レスポンススピードやセキュリティといった機能要件以外の要件を指します。今回は、システム開発・制作工程において重要な機能要件と非機能要件についてご紹介します。 目次 機能要件と非機能要件の違い 機能要件は、「ソフトウェアやシステム開発において、クライアントから求められる『機能』のこと」です。一方、非機能要件とは『機能以外』のユーザービリティ、性能、拡張性、セキュリティなどの品質的に関連するもの全般を指します。 ソフトウェアやシステムなどにおいて、クライアントからの要望としてある『機能』を満たすことは
これから書く項目がテスト計画時に定義されていなかった(検討されていなかった)ために、炎上してしまったプロジェクトをよく見かけました。 「何で定義しなかったの?」と担当PLに聞きましたが、「定義が必要だと思っていなかった。。」といった答えが返ってきたので、意外と重要だと気付かれていない項目もあるかもしれない。と思い、まとめてみることにしました。 ※以下結合テスト、システムテストの機能テストフェーズのテスト計画書に記載することを前提にしています。 1.テストの種類と目的 大体のテスト計画書には「どのようなテストをするか」は記載されているのですが、「何を目的としたテストなのか」を明記していないテスト計画書をたまに見かけます。 大切なのは、目的を明確化し、ステークホルダー間で「今回のテストは大体このような内容のテストをするのだな」という認識をあわせる事です。 2.参考資料 今回のテスト計画を立てる
テストと呼んではいるものの、曖昧で抜けだらけの発注先の仕様をなぞるだけの、意図の分からない単純労働に膨大な時間を費やしていませんか。 品質保証と呼びながら、一体どんな品質を保証しているかの全体像すら誰にも説明できない苦境に陥ってはいませんか。 こうした質の低いテストから脱却するためのチャレンジの場として、NPO法人ASTERではテスト設計コンテストを開催しています。 このチュートリアルでは、過去のコンテストの応募作を基にして、意図がきちんと分かり全体像を説明できる質の高いテストを設計するための考え方を解説します。 なお、昨年度のテスト設計コンテストの応募作の解析も取り入れた内容になっておりますので、過去に聴講したことのある方でも参考になるものと思います。多くの方々のご参加をお待ちしています。 本チュートリアルは、昨年までテスト設計コンテスト OPENクラスチュートリアルとして実施していたも
ソフトウェアの欠陥は、リリース後に大きな損失として返ってくる場合があります。 そのため、ソフトウェア開発において、テストはとても重要な役割を担っています。 そこで今回は、ソフトウェア開発でのテストがどのようにおこなわれているのかを解説します。 ■テスト計画の立て方 ソフトウェアの開発者の中には、テストは開発者が同時並行でおこなえば良いと考えている人がいます。 しかし、テストは製品の最後の砦、いわばゴールキーパーのような存在です。 テストには以下のようなプロセスがあります。 ①テスト計画を立てる ②テストの分析と設計 ③テストの実装と実行 ④テストの終了基準と評価 ⑤テストの報告 まずは「テスト計画を立てる」について解説していきます。テスト計画を立てるためには、まずテストの目的を定める必要があります。 この場合の目的は、ソフトウェア自体の目的や、プロジェクトのスケジュール、テストにかけられる
実務未経験でプログラマとして入社して半年以上が経った。 コードレビューで指摘されたことを備忘録としてまとめておく。 自分なりにまとめたものなので、レビュアーが言いたかったこととニュアンスや解釈がずれている可能性はある。 初歩的な内容ばかりで我ながらうんざりする。 せっかく優秀な同僚ばかりなのだからもっと高度なことを学びたいが、こういう初歩的なことが出来ないのが俺の現状なのだから、仕方ない。 そもそもPullRequestを送ったこともなかったわけだし。入社初日は、一人でPullRequestの出し方を練習していた。 それを考えればまあ、こんなものだろうか。 当たり前のことをちゃんと当たり前に出来るようになって、早く、次のステージに進みたい。 PullRequest(PR) PRのタイトルは分かりやすいものに。必要に応じてチケットの番号なども入れる。 コミットやPRは出来るだけ粒度を細かくす
例えば同じリンゴの絵を描いても、幼児のそれと高名な画家の絵はまったく違う。システム開発も、最初に具体的なイメージを固めておくことが重要だ。できればこうした話題は、コーヒータイムや酒の肴の話題とした方が良い結果が生み出せる。 最初にイメージを描くことの重要性 5歳の幼児が描いたリンゴの絵も、印象派のセザンヌが描いたリンゴの絵も、ともにリンゴの絵には違いない。着手のハードルは低いが、人による結果の出来映えに大きな違いがあることはソフトウェアの特徴である。 情報システムというソフトウェアについてもこの特性が当てはまる。ある程度の規模のシステムまでなら、頼む方は丸投げ、受ける方はプログラムの細かい部分からダラダラ書き始めるようなやり方でも作業を進めることができてしまう。 客観的に見れば、使い物にならず、いつどんなものに出来上がるのか分からないような代物でも、やっている当人たちにとっては“リンゴ”以
Assert.Equal(0, Add(0, 0)); Assert.Equal(1, Add(0, 1)); Assert.Equal(2, Add(1, 1)); テスト用のライブラリ xUnit.net を利用した例 関数 Add は2つの整数の引数を取り、その和を返す関数 関数 Assert.Equal は二つの引数が異なる(同じではない)と異常をだす 1つ目の引数が期待される答え(expected) 2つ目の引数が実際の値(actual) これらのコードを実行すれば、関数の戻り値の整合性の確認がとれる 前提となる条件、状況が必要な場合には、それらもコードで与えてやることになる テストコードを書くメリット 検証作業を自動化できる テストコードを走らせれば、検証できるので、検証作業を自動化することが出来る テストコードを自動で走らせるソフトを利用する Jenkins CircleCI
テスト駆動開発は誰もが重要と考えているのに、現場ではあまり普及していない。 その原因の一つは、テストプログラムを書く技術として、ドライバやスタブという概念が普及していないことと、ドライバやスタブを実際に利用する方法のノウハウが不足しているからではないかと思っている。 考えたことをラフなメモ書き。 【元ネタ】 スタブとは 【stub】 - 意味/解説/説明/定義 : IT用語辞典 ドライバとは 【driver】 〔ドライバー〕 - 意味/解説/説明/定義 : IT用語辞典 トップダウンテストとは 【top down test】 - 意味/解説/説明/定義 : IT用語辞典 ボトムアップテストとは 【bottom up test】 - 意味/解説/説明/定義 : IT用語辞典 ビッグバンテストとは 【big bang test】 - 意味/解説/説明/定義 : IT用語辞典 アジャイル開発が重
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く