0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

システムを壊すことの重要性とその方法

0
Posted at

はじめに

 先日、Jasst'2026 Tokyo に参加させて頂いた際に聞いた「あなたのシステムの壊し方」という講演がとても印象的だったので、感じたことや調べたこと等を、この記事で共有させて頂こうと思う。

 講演の概要としては、Unknown-Unknown(考慮していていない、壊してみて初めて気づく領域)、もしくはKnown-Unknown(壊れうることは知っているが、壊れたとき何が起きるかわからない領域)の事象を、様々なツールや手法を用いて、わざとシステムを破壊することで、Known-Knownとしてきちんと対策を講じることで、システムの品質を高めることができる、というような内容だった。

 私はこの講演を聞いて、Known-UnknownやUnknown-Unknown領域に対しての考慮が全くなかったことに気づき、「正常系ばかりテストして安心している」自分がいることを認識した(システムを壊す重要性を、知らないことを知らない状態から、知っている、という状態へレベルアップできたとも言える(Unknown-Unknown⇒Known-Knownへの変換))。

 では、どうやってシステムを壊せばいいのか、フロントエンドの開発者にとっても最も身近で気軽に実践できる、開発者ツールを用いたシステムの壊し方、を色々調べたので紹介しようと思う。

システムの壊し方

① 通信をオフラインにする

やり方

DevTools → Network → Offline を選択

image.png

壊れるポイント

  • API通信がすべて失敗する
  • ローディングが止まらない場合がある
  • エラーメッセージが表示されないことがある
  • 再試行処理が実装されていないと操作不能になる

② 通信速度を落とす

やり方

DevTools → Network → Slow 4G

image.png

壊れるポイント

  • ローディング時間が極端に長くなる
  • 非同期処理のタイミングずれで表示崩れが発生する

③ リクエストをブロックする

やり方

DevTools → Network → 該当のリクエストを右クリック → Block requests → Block request URL

image.png

壊れるポイント

  • 特定APIのみ失敗することで画面の一部だけが壊れる
  • 依存している外部リソース(CDN等)が読み込めなくなる
  • 一部データが欠損した状態でUIが表示される
  • 想定外のnull/undefinedによりエラーが発生する

④ レスポンスを改ざんする

やり方

DevTools → Network → 該当のリクエストを右クリック → Override content → ファイル保存先が開くので編集して改ざん

image.png

壊れるポイント

  • 想定外のレスポンスでUIが崩れる
  • フロント側が正常レスポンスに依存している場合、処理が停止する

⑤ Cookie を壊す

やり方

DevTools → Application → Cookies → 表示されるクッキーの値を修正

image.png

壊れるポイント

  • セッションが切れた状態になる
  • ログイン状態の不整合が発生する
  • 認証エラーが適切に処理されない
  • ユーザー状態が中途半端な状態で画面が表示される

⑥ css を無効化する

やり方

DevTools → Elements → Styles → 該当のチェックボックスのチェックを外す

image.png

壊れるポイント

  • レイアウトが崩壊する
  • 見た目に依存した設計の弱さが露呈する

おわりに

 これまでテストは、「正しく動くこと」を確認するものでした。しかし、実際のユーザーが体験し、そして品質が著しく低下するのは「壊れる瞬間」だと思っています。

だからこそ重要なのは、

壊れないシステムを作ることではなく、壊れても安心できるシステムを作ること、なのかなと思い、その第一歩が、「意図的に壊してみること」だと思いました。

ということで、どんどん壊していきましょう!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?