宮崎大学 工学部工学科 情報通信工学プログラム 教授 片山 徹郎 先生
30分のミニ講義を聴講しよう!ソフトウェア開発を支えるテスト効率化技術
ソフトウェア開発の大部分は人間が手作業で行っているので、ミスや勘違いが原因でソフトウェアにバグが残ってしまいます。バグのないソフトウェアを提供するため、多くの時間をかけてテストしています。このテストを、効率的に行う技術について講義します。
ソフトウェアのバグが実社会に与える影響
実際に必要なコード量
コードを確認するために?
ソフトウェア開発を支えるテスト効率化技術
先生からのメッセージ
夢ナビ講義も読んでみようアプリの多機能・高機能化を陰で支える、「テスト効率化」の技術
「バグ」が使い勝手を悪くするスマホやタブレットを使っていて、「このアプリでこの操作をすると、いつもフリーズしたり勝手に終了したりする」といった経験はありますか? それはきっと、ソフトウェアに潜むプログラミングのミス「バグ」のせいです。 ソフトウェア開発作業の大部分は人間が手作業で行っているので、ミスや勘違いを完全にゼロにすることは極めて困難です。しかもソフトウェアは製品としての形が目に見えないので、ソースコードの記述中に何らかの誤記があっても、実際に動かしてみるまではバグがあることに気づきにくいのです。自動化・可視化で、テストを効率的にバグのない信頼性の高いソフトウェアを提供するため、ベンダー(製造・販売元)側もかなり綿密なテストを行っています。ただ、あらゆるユーザーのすべての操作を再現することは不可能ですから、十分なテストを行ったつもりでも、想定外のミスが潜んでいるのです。そこで現在、ソフトウェアのテストを自動化したり可視化したりすることで、効率的にバグを発見する技術が研究されています。 主に行われているのは、プログラム言語を機械語に変換する「コンパイラ」の技術を利用して、テストしたいプログラムのコードに、テストを自動化したり可視化したりできる機能を持った別のコードを埋め込んで、プログラムを実行する方法です。この埋め込んだコードを利用して、テストの自動化や可視化を可能にします。多機能になるほど重要なテストの効率化スケジュール管理アプリにリマインダーの機能を持たせたり、写真管理アプリに複雑なフォトレタッチ機能を持たせたりと、ソフトウェアの多機能・高機能化が急速に進んでいます。機能を増やせば記述すべきコードも増え、作成時にミスが発生する確率も高くなりますから、テストを効率的に行う技術はますます重要になります。 この分野の研究が進み、テストに費やす時間や人件費が大幅にカットできれば、信頼性の高いソフトウェアを短期間に完成させることができ、その分、安価に提供できるようにもなるのです。先生からのメッセージ
- このTALKも見てみようは英語字幕あり