Skip to main content
QUICK REVIEW

[論文レビュー] Fluid Intelligence Doesn't Matter! Effects of Code Examples on the Usability of Crypto APIs

Kai Mindermann, Stefan Wagner|arXiv (Cornell University)|Apr 8, 2020
Neuroscience, Education and Cognitive Function参考文献 6被引用数 3
ひとこと要約

本研究は、初心者開発者が暗号APIを使用する際の使いやすさとセキュリティに、コード例の手順的類似性がどのように影響するかを調査する。76名の学生を対象とした制御実験の結果、手順的類似性が高い例は、効果性、効率性、満足度を著しく向上させるとともに、セキュリティバグを減少させる。一方、流動知能(Gf)の影響はほとんどなく、これはより優れた例が個人の問題解決能力の差を補う可能性を示唆する。

ABSTRACT

Context: Programmers frequently look for the code of previously solved problems that they can adapt for their own problem. Despite existing example code on the web, on sites like Stack Overflow, cryptographic Application Programming Interfaces (APIs) are co monly misused. There is little known about what makes examples helpful for developers in using crypto APIs. Analogical problem solving is a psychological theory that investigates how people use known solutions to solve new problems. There is evidence that the capacity to reason and solve novel problems a.k.a Fluid Intelligence (Gf ) and structurally and procedurally similar solutions support problem solving. Aim: Our goal is to understand whether similarity and Gf also have an effect in the context of using cryptographic APIs with the help of code examples. Method: We conducted a controlled experiment with 76 student participants developing with or without procedurally similar examples, one of two Java crypto libraries and measured the Gf of the participants as well as the effect on usability (effectiveness, efficiency, satisfaction) and security bugs. Results: We observed a strong effect of code examples with a high procedural similarity on all dependent variables. Fluid intelligence Gf had no effect. It also made no difference which library the participants used. Conclusions: Example code must be more highly similar to a concrete solution, not very abstract and generic to have a positive effect in a development task.

研究の動機と目的

  • コード例の手順的類似性が、暗号APIの使用における使いやすさとセキュリティを向上させるかどうかを調査すること。
  • 例の支援を受けて暗号APIタスクを遂行する際、流動知能(Gf)が果たす役割を評価すること。
  • JDKとGoogle Tinkの2つの暗号ライブラリにおける使いやすさとセキュリティの結果を比較すること。
  • 実世界の例(例:Stack Overflowからのもの)が、高類似性の例に代わって誤りを低減し、パフォーマンスを向上させるために十分かどうかを評価すること。

提案手法

  • 初心者開発者として76名の学部生を対象とした制御実験を実施した。
  • 2つの独立変数(暗号ライブラリ:JDK 対 Tink、例の種別:CryptoExamples 対 Web検索例)を操作した。
  • 最終実装における効果性、効率性、満足度(SUSによる測定)、静的セキュリティバグを測定した。
  • 流動知能(Gf)は、ボーチュマー成熟知能検査(BOMAT)の短縮版を用いて評価した。
  • 回帰分析を用いて、Gfと例の類似性が結果に与える影響を分離した。
  • コントロール群が高類似性の代替例を使用していないことを確認するため、Web検索例を分類・比較した。

実験結果

リサーチクエスチョン

  • RQ1手順的類似性が高いコード例を提供することで、暗号APIの使用における効果性、効率性、満足度が向上するか?
  • RQ2流動知能(Gf)は、例の支援を受けて暗号APIを効果的に使用する際に、どの程度影響を及ぼすか?
  • RQ3暗号ライブラリの選択(JDK 対 Tink)は、高類似性の例の有無に関わらず、使いやすさとセキュリティの結果に影響を及ぼすか?
  • RQ4Web検索例は、高手順的類似性の例と同等の効果を発揮できるか、それとも顕著な差異があるか?

主な発見

  • 高手順的類似性の例(CryptoExamples)を使用した参加者は、平均で0.841の効果性を達成したのに対し、例なしグループは0.376であった。
  • 例を使用したグループは、269%高い効率性を示し、1時間あたり1.287タスクを完了した。これに対し、コントロールグループは0.298タスクであった。
  • 満足度スコア(SUS)は、例を使用したグループ(STM = 61.6)が、例を使用しないグループ(SJO = 39.7)よりも顕著に高かった。
  • セキュリティバグの平均数は、コントロールグループで3.28であったのに対し、例グループでは0.33に低下した。特に「整合性なしの暗号」および「ECBモード」が最も一般的な問題であった。
  • 流動知能(Gf)の影響はほとんどなく、回帰係数(β)はほぼゼロであり、結果に意味的な影響を及ぼさないことが示された。
  • JDKとTinkのライブラリ間で、効果性、効率性、セキュリティの結果に有意差は認められず、ライブラリ選択が決定要因ではなかったことが示唆された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。