論文小メモ

July 18, 2021

気になったものの備忘録

An Empirical Analysis of UI-based Flaky Tests

GitHub上の25個のWebアプリケーションと37個のAndroidアプリケーションにある235個のUIのFlaky Tests(何度も実行すると成功する不安定なテスト)を調査し、原因と修正のパターンを求めた。

大きく原因を、非同期処理の待機、環境依存の動作、DOMのセレクタやテストライブラリの誤用、テスト対象の事前条件を満たせていないテストスクリプトの4つに大別した。 具体例をあげると、環境依存の動作には、IE固有のバグや予期していないレイアウトで画面が表示される場合、テストの事前条件については、テストの実行順序次第で誤ったテストデータになる場合がある。 最も問題が多いのは、Flaky testの45%が分類された非同期処理の待機方法だった。

修正のパターンには、待機時間の追加、テスト用APIの誤用の修正やAPIのアップグレード、テストスクリプトのリファクタリング、アニメーションの削除、テストの削除がある。

A Case Study of Onboarding in Software Teams: Tasks and Strategies

マイクロソフトのエンジニアとマネージャへのインタビューを通じて、オンボーディングのためのタスクの選び方とタスクの効果を調査した。 まず、新しいチームに入った32人のエンジニアとエンジニアを迎えた15人のマネージャにインタビューし、特に、チームについての学習、担当する役割を果たせる自信、メンバーとの交流の3つを重視し、これらに対するタスクの影響を調査した。 タスクの選び方は、大きく3つ、少しずつ割り当てるタスクを複雑にする、優先度の高いものを選ぶ、曖昧なタスクを選ぶ、があった。 オンボーディングするエンジニアがジュニアであれば最初の選び方、シニアであれば最後の選び方がよく、アジャイルを採用するチーム、新しいチーム、納期の厳しいチームは優先度でタスクが選ばえる。 以上の調査結果を189名のエンジニアと37名のマネージャに評価してもらい、妥当性を確認した。

A Differential Testing Approach for Evaluating Abstract Syntax Tree Mapping Algorithms

AST mappingは、コードの変更前後のASTを比べてノードの対応関係を見つける手法であり、変更差分検出に使われる。 現状、対応関係の精度を自動で評価する有効な方法はなく、評価には人手による手間がかかる。 多くのノードに1対1の対応関係があることに着目し、異なる2つのAST mappingを同じ変更に適用した結果を比べ、個別の文やトークンごとに、より正確な方を推定するアルゴリズムを提案した。 これを応用し、複数のAST mappingアルゴリズムに同じファイルの変更差分を入力し、アルゴリズムごとの不正確に検出した箇所を自動で推定できることを示した。 特定性能は、Precisionが0.98-1.00, Recallは0.65-0.75だった。

“Ignorance and Prejudice” in Software Fairness

特徴の種類を増やすと、機械学習の予測の公平性と精度を改善できることを5つのデータセットで例示した。 データセットのタスク内容は、性別、人種、年齢を特徴に含み、経済的な裕福さや再犯率を予測するもの。 他方、教師データの数を増やしても公平性は改善されなかった。