氏など、一部のテック企業トップが語るように、すべての企業が事実上のソフトウェア企業になる時代が急速に近づきつつある。その一端を担っているのが、開発者をサポートするツールへの多額の投資だ。75億米ドルで買収した。ビッグネームから巨額の資金を調達している。ソフトウェアの量やコードのボリュームが増えれば、それだけチェックやテスト、デバッグにかかる手間も増えることになる。DevOps(開発チームと運用チームの連携)の自動テストツールが投資家の注目を集めているのもそのためだ。いった企業は、この1年で多額の資金を調達している。実際、2018年のソフトウェアテスト自動化の市場規模は85億米ドルと推定されており、今後5年間で約200億米ドルに達する見込みもある。8月6日、コードチェック用機械学習システムを拡張するため400万米ドルのシードラウンドを発表した。コードのチェックコードの結合前や展開前にバグや脆弱性、スタイル違反などをソフトウェア開発の初期段階で見つけるのが、コードチェックプロセスの大まかな流れで、通常はソフトウェアのテストを実施する前に行われる。内側から見ることができます。通常、コードをチェックする際は、元のコードの作成者やその同僚、マネージャーと協力して、次の段階に進む前に明らかなエラーを見つけていく。プロジェクトの規模が大きくなるほど、チェックするコードの量も増え、それだけ時間もかかることになる。ような静的解析ツールでソースコードを解析してエラーを見つけることもできるが、チェックできる範囲が限られている。インジェクションといった脆弱性など、より広範な問題を見つけられるという強みがある。単純な構文ミスを見つけるのではなく、コードの意図を理解することもできる。これを支えるのが機械学習(ML)システムだ。公開オープンソースプロジェクトのコードを数十億行も使ってトレーニングされたこのシステムは、自身の知識ベースを継続的に学習・更新させている。リポジトリのものであるという。オープンソースソフトウェアから得られた知識は、開発者がこれまでよりも短い時間ですっきりとした安全なコードを書けるようにするために役立てられます。DeepCode既存のソフトウェアプロジェクトを使った機械学習では、過去のバージョンのコードや後で加えられた変更などが参照される。ここからパターンを学習し、コードの特定の部分から意図を読み取って、バグの場所やバグの修正方法を特定する。したプロセスによって、既知のバグとそれに対応するための適切な解決策に関する生きた知識ベースができあがります。この知識ベースはバグが実際に発生する前にそれを特定するために使われるのです。エンジンは、対象のソフトウェアコードに最適なソリューションを瞬時に特定・提案することができます。様々な予測・推測アルゴリズムも使って、既知の問題に関する知識を拡張し、オリジナルのサンプルプロジェクトでは修正されなかったであろうコードの問題にまで切り込むことができる。作成済みのコードをチェックして、疑わしいと思われる問題を提示する。本来の目的は、必要な情報を必要とする大規模企業が使うためのものだ。ここで1つ疑問が浮かんでくる。自動コードレビューの性能はどれだけ信頼に値するのかということだ。精度が100%でない限り、開発者は目視でコードをチェックし続けなければならない。よってどれだけの時間が節約できるのだろうか。使えばバグのチェックに使っている時間を現状から50%程度削減できるという。平均すると、開発者はバグの特定と修正に全体の30%の時間を使っています。使えばそれにかかっている時間を今より半分にでき、将来的にはもっと短い時間にすることができます。世界中の開発コミュニティから学習し、個人やチェッカーのグループではこれまで見つけることのできなかった問題をより多く見つけられるのです。Zurich(スイス連邦工科大学チューリッヒ校)のスピンオフ企業だ。Zurichはヨーロッパ版マサチューセッツ工科大学(MIT)とたとえられることもある。同社は3人の人物によって共同設立された。