研究の紹介
Overview
高田研究室では,「ソフトウェア工学」を研究のメインの柱にしています. ソフトウェア工学とは,非常に単純に言うと,「よい品質のソフトウェアを効率よく開発するための学問」と言えます. 当研究室では,ソフトウェア開発の様々な場面に対して研究を行っています。
Software Test
ソフトウェアを作る時には,それが正しく動くかどうかをチェックしなければなりません. しかし,とりうる全ての入力の全ての組み合わせについてテストを実行し,その結果を判断することは,ほとんど不可能です. そこで,ソフトウェアのテストを助けたり,自動化したりするための技術をいろいろな側面から研究しています.下記にいくつかあげます.
Androidアプリケーションのテスト
Androidアプリケーションをテストするために,様々な手法を提案しています.近年は,特に機械学習(具体的には,Q学習やDQNといった強化学習)を用いた手法に着目しています.K. Murase, et al: Applying Reinforcement Learning for Automated Testing of Mobile Application Focusing on State Definition, Reward, and Learning Method, Proc. of SEKE 2023 (July 2023)
Y. Moriguchi, et al: Which Factors Affect Q-Learning-based Automated Android Testing - A Study Focusing on Algorithm, Learning Target, and Reward Function -, Proc. of SEKE 2021, pp.522-527 (July 2021).
T. Vuong, et al: Semantic analysis for deep Q-network in Android GUI testing, Proc. of SEKE 2019, pp.123-128 (July 2019).
T. Vuong, et al: A Reinforcement Learning Based Approach to Automated Testing of Android Applications, Proc. of A-Test 2018, pp.31-37, (November 2018).
M. Eala, et al: Applying Combinatorial Strategies in GUI Testing Incorporating Context Events in Android Applications, 日本ソフトウェア科学会第35回大会 (August 2018).
A. Rohella, et al: Testing Android Applications Using Multi-Objective Evolutionary Algorithms with a Stopping Criteria, Proc. of SEKE 2018, pp.308-313 (July 2018).
W. Muangsiri, et al: Random GUI Testing of Android Application Using Behavioral Model, International Journal of Software Engineering and Knowledge Engineering, Vol.27, pp.1603-1612 (2017).
機械学習を用いたソフトウェアにおける公平性に関するテスト
機械学習はデータ依存です.どのようなデータを用いて訓練するかによって結果が変わります.そのため,データに偏りや問題があると,ソフトウェアはきちんと動作しません.有名な話として,米国で利用されているソフトウェアの中で,年齢・性別・年収等が同じであっても,人種だけが異なると結果が異なる,というのがあります.これは公平性が欠けていると言えます.この研究は「公平性」の観点から研究しています.なお,これは上記1と異なり,機械学習を用いたソフトウェアを対象にしたテストです.Shinya Sano, et al: An efficient discrimination discovery method for fairness testing, Proc of SEKE 2022, pp.200-205 (July 2022).
D. Morales, et al: Coverage-Guided Fairness Testing, Computer and Information Science 2021—Summer. ICIS 2021. Studies in Computational Intelligence, Springer, Vol.985, pp.183-199 (June 2021). [Note: Best Student Paper Award受賞]
Webアプリケーションのテスト
最近はAndroidを対象にしたテストの研究が高田研において主流となっていますが,数年前まではWebアプリケーションを対象にしたテストの研究を多く行っていました.A. Hori, et al: Image-Based Approach to Determining Regression Test Results of Dynamic Web Applications, International Journal of Software Engineering and Knowledge Engineering, Vol. 28, No. 07, pp. 1001-1025 (2018).
Code Clone
ソフトウェア開発をしているときに,コードをコピペしたり,似たコードを書いたりすることがあります.このようなコードをほったらかしにすると,例えば保守するときに,同じ修正を複数個所しないといけなくなったりします.この研究は,このようなコードを探そうとしています.
K. Takemoto, et al: Applying Symbolic Execution to Semantic Code Clone Detection, Proc of SEKE 2023 (July 2023).
Y. Hung, et al: CPPCD: A Token-Based Approach to Detecting Potential Clones, Proc. of IWSC2020, pp.26-32 (February 2020).
R. Tajima, et al: Detecting functionally similar code within the same project, Proc. of IWSC 2018, pp.51-57 (March 2018).
Coding Conventions
プログラムを「きれいに」書きたいという願望は,プログラマであれば誰でも持っています.「きれい」の基準として,コーディング規約というものがいくつか世の中に提案されています.この研究は,コーディング規約をいろいろな観点から研究しています.
名倉正剛, 他: コーディング規約違反メトリクスに基づきソフトウェア変更に対して不具合混入を予測する手法, 情報処理学会論文誌61巻4号, pp.895-907 (April 2020). [Note: (NPO法人)ソフトウェアテスト技術振興協会から善吾賞を受賞]
CC2020 (Computing Curricula 2020)
2020年12月末まで高田はCC2020という国際プロジェクトのメンバーとして活動していました.日本では,計算機系または情報系のカリキュラムは概ね一種類しかないと思う方が多いです.しかし,国際的には,Computer Engineering, Computer Science, Information Systems, Information Technology, Software Engineering, Computer Securityといったカリキュラム(2021年にData Scienceが追加)があり,実際それぞれに対するガイドラインが存在します.CC2020プロジェクトはこれらを俯瞰するプロジェクトであり,レポートを発行しています.プロジェクト内で次のような研究発表をしています.
S. Takada, et al: Toward the visual understanding of computing curricula, Education and Information Technologies, Vol. 25, No.5, pp.4231-4270, Springer (April 2020).
A. Clear, et al: CC2020 visualization tool preview and review, Proc. of SIGCSE 2020, pp.169-170 (February 2020).
L. Waguespack, et al: Adopting Competency Mindful of Professionalism in Baccalaureate Computing Curricula, Proc. of EDSIG Conference (November 2019).
Others
上記以外にいろいろな研究を行っています.特に何らかの意味でコードに問題がある(あるかもしれない)状況を扱った研究が多いです.
Yoshitomo Sha, et al: Fault Localization in Server-Side Applications Using Spectrum-Based Fault Localization, Proc. of VST2022, pp.1128-1135,
(March 2022).名倉正剛, 他: Android アプリケーションを対象とした実装漏れメソッドの検出手法, コンピュータソフトウェア, Vol.38, No.2, pp.71-89 (May 2021).
武元憲将, 他: バグ発生の制約条件追加によるコンコリックテストのバグ発見能力の向上, 第83回情報処理学会全国大会, 1K-01, pp.249-250 (March 2021).
C. Iida, et al: Reducing Mutants with Mutant Killable Condition, Proc. of Mutation 2017, pp.128-133 (March 2017).