グランドリームは製品の品質に様々な基準を設けています。
パフォーマンス
お客様が気持ちよくアプリケーションを利用するためにパフォーマンスは大事な要素です。
表示が1秒送れるとコンバージョン率が7%下がると言われています。
他にも、パフォーマンスを向上すると様々な効果があります。
高パフォーマンスアプリケーションが与える効果
製品の品質
グランドリームは不具合が少なく安定したアプリケーションをご提供するために様々な施策を実践しています。
単体テスト
単体テストはプログラムを構成する比較的小さな単位が、個々の機能を正しく果たしているかどうかをプログラムを用いて検証するテストです。
単体テストの効果
早期の問題発見
アプリケーションの機能変更を容易にする
テスト仕様書がドキュメント・設計の代わりとなる
システム部品が疎結合になる
アプリケーション機能追加時の実装工数の削減
E2Eテスト
E2E(End to End)テストは、単体テストと異なりシステム全体を実稼働時に近い環境で動作させ、プログラムを用いて検証するテストです。Webアプリケーションでは実際にサーバーとWebブラウザを起動/操作してテストします。
E2Eテストの効果
早期の問題発見
アプリケーションの機能変更を容易にする
テスト仕様書がドキュメント・設計の代わりとなる
部品を結合させた動作を確認できる
テスト人件費の削減
カバレッジ分析
カバレッジ(網羅率)分析は単体テスト実行結果を元に、所定の網羅条件がテストによってどれだけ実行されたかを割合で表したものです。
カバレッジ分析の効果
システム仕様の条件網羅性の可視化
プログラミングの条件網羅で問題の早期発見
静的解析
静的解析はアプリケーションを実際に動作させることなく、ソースコード自体の動作や構造を解析する品質検証の手法です。
静的解析の効果
コーディングスタイルの統一
レビュー負荷の軽減(コスト削減効果)
エラーが発生しやすいパターンの検知
脆弱性混入の検知
複雑な実装の検知
遅延処理の検知
CI
CI(Continuous Integration, 継続的インテグレーション)は、開発者が部品の開発を終える度に自動化したテストとビルドを実行する手法です。
CIの効果
静的解析・E2Eテスト・静的解析・脆弱性検知の自動化
単体テスト・E2Eテストでエラーが発生しているプログラムの早期検知
静的解析で不正が検出されているプログラムの早期検知
ビルド不可状態の早期検知
CD
CD(Continuous Delivery, 継続的デリバリー)は、CIだけでなくリリースプロセス全体を自動化します。
CDの効果
製品リリースの自動化
製品リリース作業の属人性排除
製品リリースサイクルの短期化
セキュリティ
機密情報の暗号化
メールアドレス・パスワードや個人情報等の機密情報が漏洩した場合、漏洩た情報が実社会の個人と関連付けされた上で拡散される恐れがあるため、結果として企業活動や個人の私生活にも重大な影響が及ぶ場合があります。
機密情報を暗号化することで、万一漏洩した場合の被害を抑えることができます。
脆弱性検知
脆弱性とは、プログラムの不具合や設計上のミスが原因となって発生したセキュリティ上の欠陥です。脆弱性が残された状態でアプリケーションを稼働していると、不正アクセスに利用されたり、お客様の情報が流出してしまう危険性があります。
脆弱性は、アプリケーションが利用しているライブラリにも存在します。ライブラリの脆弱性をなるべく早く検知できるようにCIに組み込み、定期的に脆弱性検知プログラムを実行します。
OWASP ZAPを利用してアプリケーション全体の脆弱性をスキャンすることも可能です。