今回は弊社というか今参加しているプロジェクトの品質確保のための取り組みについて話したいと思います。
――どうしてそのテーマを?
品質確保は開発姿勢が現れる部分かなと思いまして。あとは開発環境・開発ツールについてもご紹介したいと思っていたので、品質確保に絡めて環境やツールについても取り上げられればと。
――わかりました。では、よろしくお願いします。
取り組んでいること
まずはざっと、どんな取り組みをしているのかを。主に以下の取り組みを行っています。
- 仕様レビュー
- テストコード
- 静的解析ツール
- コードレビュー
- 第三者テスト
- フリーテスト
- 受け入れテスト
- 品証検査
受け入れテストはいつも行うわけではなく、社内で使うツールを作成した場合に、その利用者に実施してもらっています。
――こんなにあるんですか。
そうですね。書き出してみて私も意外と多いなと思いました。35年の歴史があるソフトウェアなので、それだけ品質管理には力を注いでいるということですね。この中から今回はテストコード、静的解析ツール、コードレビューの3つを取り上げたいと思います。
テストコード
まずはテストコードです。
――テストコード。今ではもう当たり前になっているのでは?
ネット上でテストコードの情報が溢れているのでそう感じるかもしれませんが、意外とそうでもないんですよ。今でも開発系のコミュニティなどで他社の方と話をするとテストコードが無いという話を聞くことがしばしばあります。その上、これだけ歴史の長いプロダクトで、テストコードを書いてテストの自動化を進めているものは他ではあまりないのではないでしょうか。
――歴史が長いほど新しいものを取り入れて変えていくのは難しそうですね。
そうなんです。まだまだカバーできていない箇所や、書き方を見直したりはしないといけませんが、それは終わりがない活動ですし。このあたり、テスト自動化に詳しい方にはぜひ参加していただきたいですし、逆に経験がない人はスキルを磨くことができると思います。
静的解析ツール
――次は何でしょうか?
静的解析ツールです。静的解析ツールとは、例えば、埋め込みがちな不具合として null 参照があると思います。編集したメソッドやクラス内では問題なくても、その呼び出し元やさらに向こうの呼び出し元では問題になっていたりします。他にも型が同じ引数の渡す順番を間違えているなど、いろいろと問題を埋め込んでしまうことがありますが、コードを解析することで「ここにこんな問題がありますよ」と教えてくれるツールです。
人が目で見ても問題があることは分かるのですが、人の場合はどうしても見逃してしまったりします。それをこのツールが見つけてくれるので非常に助かっています。
――たしかに、人はどうしてもミスしてしまいますね。
はい。不具合を埋め込んでしまうのもそうですが、チェックする側も見逃してしまうことがあります。両方のミスが重なると不具合が出荷されてしまいます。ツールがあれば完璧というわけにはいきませんが、それでも確実に不具合の減少に効果を発揮しています。
コードレビュー
そして最後はコードレビューです。
――コードレビューこそどの会社でもやっていそうですが。
コードレビューはここ数年で実施するようになりました。それ以前にも取り組んでいたようですが止めたようです。私の推測になってしまいますが、以前はベテランメンバーの比率が非常に高かったからだと思います。20年以上も一緒に同じプロダクト開発に携わってきたメンバー同士であれば、それこそ阿吽の呼吸でコミュニケーションが取れていたでしょうし、プロダクトの知識も豊富だったでしょう。でも今は新規メンバーがどんどん入っているので、そういうわけにいきません。コードレビューをすることでコードの品質を保つことはもちろんですが、ベテランメンバーから新規メンバーへ知識の受け渡しができるようになっていると感じます。
――なるほど。コードレビューは品質確保の他に、技術・知識の継承の面があるということですね。
はい、そうです。当然、コードレビューよりも前の段階で分からないことはどんどん質問して確認できます。ただそれは新人側が起点になるので、そもそも疑問にも思わない部分は漏れてしまいます。そこはコードレビューでベテラン側が起点になってカバーしている感じでしょうか。
最後に
以上3つだけの紹介でしたが、こういった取り組みを通して品質確保を行っています。先程も述べたようにテスト自動化だけでなく品質確保に詳しい方、また、まだ詳しくはないけれどもそういったことに興味がある・スキルを磨きたい方はぜひ入社して、その力を発揮・成長していただければと思います。
――ありがとうございました。