:::info 作者:
:::
摘要
1 引言
2 原始研究:研究問題和方法論
3 原始研究:有效性威脅
4 原始研究:結果
5 重複研究:研究問題和方法論
6 重複研究:有效性威脅
7 重複研究:結果
8 討論
9 相關工作
10 結論與參考文獻
軟體開發中一個反覆出現的問題是對使用的技術、方法和工具做出錯誤的決策。大多數情況下,這些決策是基於開發人員對它們的感知。影響人們感知的一個因素是過去的經驗,但這不是唯一的因素。在這項研究中,我們旨在發現在沒有先前經驗的情況下,對不同技術的缺陷檢測有效性的感知與其實際有效性的匹配程度。
\ 為此,我們進行了一項實證研究及其重複實驗。在原始研究中,我們進行了一個受控實驗,讓學生應用兩種測試技術和一種程式碼審查技術。在實驗結束時,他們參與了一項調查,以了解他們認為哪種技術最有效。結果表明,參與者的感知是錯誤的,而且這種不匹配在質量方面代價高昂。
\ 為了更深入地了解結果,我們重複了這個受控實驗,並擴展了調查,包括關於參與者對技術和程式的意見的問題。重複研究的結果證實了原始研究的發現,並表明參與者的感知可能不是基於他們對複雜性的意見或對技術的偏好,而是基於他們認為自己應用技術的好壞程度。
如今,軟體開發公司讓開發人員選擇自己的技術環境已成為越來越流行的做法。這意味著不同的開發人員可能使用不同的生產力工具(程式語言、IDE等)。然而,軟體工程(SE)是一個人力密集型學科,錯誤的決策可能會危及最終軟體的質量。在SE中,關於在軟體開發中使用哪些方法、技術和工具的決策通常基於開發人員的感知和/或意見,而非證據,正如Dyb˚a等人[19]和Zelkowitz等人[55]所建議的。
\ 然而,實證證據可能無法獲得,因為某些方法、技術或工具可能尚未在特定環境中甚至完全未被研究過。或者,根據Vegas和Basili[49]的說法,開發人員可能根本不熟悉這些研究。基於此,重要的是要發現開發人員的感知(信念)與現實的匹配程度,如果不匹配,找出這種不匹配背後的原因,正如Devanbu等人[14]所指出的。根據心理學,經驗在人們的感知中扮演著重要角色。Devanbu等人[14]在SE中也觀察到了這一點。
\ 然而,本研究旨在發現在沒有使用技術的先前經驗的情況下,感知與現實的匹配程度。這有幾個原因:1)經驗不是影響開發人員感知的唯一因素;2)開發團隊通常由有經驗和沒有經驗的人混合組成;3)不清楚哪種類型的經驗會影響感知。例如,Dieste等人[17]得出結論,學術經驗而非專業經驗可能會影響開發人員在應用測試驅動開發時生成的程式碼的外部質量。
\ 我們旨在研究關於三種缺陷檢測技術有效性的感知是否與現實相符,如果不符,這些感知背後的原因是什麼。據我們所知,這是第一篇實證評估這個問題的論文。為此,我們與學生進行了一項實證研究及其重複實驗。在原始研究中,我們測量了(作為受控實驗的一部分)參與者應用兩種測試技術和一種程式碼審查技術時的有效性。然後,我們將感知最有效的技術(通過調查收集)與實際最有效的技術進行了比較。
\ 此外,我們分析了感知與現實之間不匹配的成本,以有效性損失來衡量。主要發現包括:
– 不同的人認為不同的技術更有效。沒有一種技術被認為比其他技術更有效。– 50%的參與者(23人中的11人)的感知是錯誤的。
– 對技術的錯誤感知平均可以降低了31個百分點的有效性。
\ 這些發現促使我們在重複實驗中擴展研究目標,以調查參與者感知背後可能的原因。為此,我們在重複受控實驗中檢查了他們對所應用技術和測試程式的意見。主要發現包括:
– 重複實驗的結果證實了原始研究的發現。
– 參與者認為技術有效性完全取決於他們的表現,而不是技術本身可能的弱點。– 關於技術複雜性的意見和對技術的偏好似乎在感知有效性中不起作用。這些結果對開發人員和研究人員都有用。它們建議:
– 開發人員應該意識到他們判斷的局限性。
– 應該設計能夠向開發人員提供技術有效性反饋的工具。
– 應該確定最佳技術組合,既容易應用又有效。– 應該開發工具,使實證結果可供開發人員使用。
\ 與此處呈現的研究相關的材料可在https://github.com/GRISE-UPM/Misperceptions找到。本文的組織如下。第2節描述了原始研究。第3節介紹了其有效性威脅。第4節討論了結果。第5節描述了基於對原始研究所做修改的重複研究。第6節介紹了其有效性威脅。第7節報告了這項重複研究的結果。第8節討論了我們的發現及其含義。第9節展示了相關工作。最後,第10節概述了本工作的結論。
\ \
:::info 本論文可在arxiv上獲取,採用CC BY-NC-ND 4.0許可證。
:::
\

