- 失敗に慣れる:間違っていたことの方が分析・検証がしやすい為
- インプット・アウトプット・フィードバックのサイクルのスピードを出来る限り速くするために学習の仕方自体もアップデートしていく
- インプット
- web
- 本
- アウトプット
- ブログ
- インプット
- Qiita
https://appkitbox.com/testkit/knowledge/test/20121112-105
https://teratail.com/questions/127312
- 全publicメソッドについて、正常系異常系ともに全てテストを書くことでユニットテストの効果が最大限に発揮される
- 静的テスト
- ソースコードをレビューし、設計仕様書と矛盾はないか、バグは無いかなどをチェック
- 静的解析ツールを使用して、コーディング規約の違反はないか、リスクやバグはないか、メトリクスは妥当か、といった診断を行う
- 動的テスト
- ユニットテスティングフレームワークを使用して、テスト対象であるユニットを動かし、その動作結果を検証する
- ユニットテストの目的
- 何に対して(名詞(notes,members))何を行うか(動詞(新規作成、編集等))をURLで示す
- アンダースコア「_」はよくない。ダッシュ「-」を使う
- 短く一般的で省略していない周知のワードを使う(わかりやすくする
- .phpなどの拡張子をつけない(攻撃者のための判断材料になる、ユーザにとって不要な情報を入力させない
https://coliss.com/articles/build-websites/architectonics/usability/url-design-by-warpspire.html
Laravelでの開発で気になった点や、メモをざっと書き出しています。
DBスキーマ設計例(Railsですが):
https://techblog.lclco.com/entry/2018/02/09/093000
- Railsの規約に寄り添う
- 主キーは「id」(フレームワークで自動的に主キーに「id」が割り振られる為)
実際にやったDBの自動テスト方法
https://needtec.exblog.jp/19090632/
データベースを使った自動テストについて
https://gist.github.com/taichi/3834450
開発・テスト用DB環境の管理と自動テストの考察
https://qiita.com/mima_ita/items/45205cdbce3deeee89c6
PHPUnit マニュアル:
https://phpunit.readthedocs.io/ja/latest/index.html
- ユニットテストを書く目的
- バグの発見と修正、コードのリファクタをしやすくする為
- テスト対象のソフトウェアのドキュメントとしての役割を果たすこと
- これらの目的を達成するためには、 ユニットテストがプログラム内のすべてのルートをカバーしていることが理想
- ひとつのユニットテストがカバーするのは、 通常はひとつの関数やメソッド内の特定のルートだけ
- PHPUnit は、テストメソッド間の依存性の明示的な宣言をサポート
ヤフー社内でやってるMySQLチューニングセミナー大公開 https://www.slideshare.net/techblogyahoo/mysql-58540246
- 処理量をなるべく減らす(INよりEXISTS等)
- 中間テーブル作らない(サブクエリ減らす)
- 暗黙ソートを回避する
「気をつけよう」とか心構えの問題で片付けてしまうのか、 実際のルール作りまでするかの違いを言っているんじゃない? https://srad.jp/story/13/03/08/0313213/
ストアドプロシージャ: DB上での一連処理に, 名前をつけて関数のように, 呼び出して使用できるもの https://qiita.com/setsuna82001/items/e742338eb93e3a48ba46