DevOps and General Developers: Insights from Stack Overflow's 2023 Survey
University of Bahrain(巴林大学)
通过分析 Stack Overflow 2023 年调查数据,比较 DevOps 专家与普通开发者在工具、技术、方法论和人口统计上的差异,发现两者角色互补,工具偏好无显著差异。
2026-06-19 cs.SE
The Developer Experience of LGBTQIA+ People in Agile Teams: a Multivocal Literature Review
本研究通过多声文献综述探讨敏捷团队中LGBTQIA+专业人士的开发者体验,发现隐形、偏见和歧视损害其体验,而包容性环境能提升团队动态和参与度。
2025-04-20 cs.SE
How are identifiers named in open source software? About popularity and consistency
随着软件项目规模和维护成本的快速增长,如何遵循编码标准,特别是如何管理标识符命名,正引起计算机科学教育工作者和软件管理人员的迫切关注。软件开发人员主要使用标识符名称来表示源代码中记录的知识。然而,标识符命名约定的流行性和采用一致性尚未在该领域得到揭示。以48个流行的开源项目为例,开发了一个基于正则表达式匹配的标识符提取工具,该工具使用三种顶级程序设计语言Java、C和C++编写。在随后的调查中,得到了一些有趣的发现。在标识符命名流行度方面,Camel和Pascal命名规范正处于领先地位,而匈牙利符号正在消失。对于标识符命名的一致性,我们发现用Java编写的项目比用C和C++编写的项目具有更好的性能。最后,建议学术界和软件产业界在实践中统一采用最流行的命名规范,使标识符命名走上规范、统一、高质量的道路。
2014-05-31 cs.PL cs.SE
Elevating Software Quality in Agile Environments: The Role of Testing Professionals in Unit Testing
本文采用基于调查的研究方法,探讨了工业背景下测试工程师参与单元测试的情况,发现测试专业人员通过与开发人员合作制定详尽测试用例并培养相互学习文化,有助于提升敏捷环境下软件项目的整体质量。
2024-03-20 cs.SE
From Prompting to Verification: How Experience Shapes Vibe Coding Practices
Massey University(梅西大学);University of Auckland(奥克兰大学)
通过调查162名不同经验水平的Vibe编码者,发现经验选择性影响编码动机、交互方式和质量保证实践,存在感知-行动差距:对AI生成代码风险的认识普遍,但评估、调试和验证能力依赖于经验。
2026-05-23 cs.SE
Professional Software Developers Don't Vibe, They Control: AI Agent Use for Coding in 2025
Cornell University(康奈尔大学)
本文探讨了2025年经验丰富的软件开发人员如何利用AI代理进行编程,发现开发人员通过保持自主权和专业知识来控制代理行为,以确保软件质量。
2026-08-20 cs.AI cs.HC cs.SE
Worse Than Spam: Issues In Sampling Software Developers
背景:接触专业软件开发人员是经验软件工程研究的重要组成部分。调查研究是研究实践状况的重要方法之一。由于随机抽取专业软件开发人员进行调查是不可能的,研究人员依赖于各种抽样策略。目的:在本文中,我们报告了我们的经验与不同的抽样策略,我们采用,突出道德问题,并激励需要保持一个关键的人口统计数据收集软件开发人员,以减轻外部有效性的评估研究。方法:我们的报告是基于我们过去进行的两项研究的数据。结果:通过公共媒体联系开发人员被证明是最有效和高效的抽样策略。然而,我们不仅描述了那些有兴趣达到目标的研究人员的观点,比如大量的参与者或高响应率,而且我们还揭示了不同抽样策略的伦理含义。我们提出了一个具体的道德准则,并指出在其他研究社区的辩论开始在软件工程研究社区的讨论,抽样策略应被视为道德。
2017-07-04 cs.SE
On Designing Better Tools for Learning APIs
现代软件开发需要在学习应用程序编程接口(API)方面进行大量投资。最近的研究发现,学习材料本身往往是不够的:开发人员很难找到简单的使用场景之外的答案。解决这些问题需要在工具和搜索引擎开发方面进行大量投资。为了了解进一步投资在哪些方面最有用,我们与19名专业开发人员进行了一项研究,以了解没有技术限制的解决方案可能是什么样子。在本文中,我们报告了API学习工具的设计含义,基于专业开发人员本身的现实。在参与者的反馈中反复出现的主题是可信度、机密性、信息过载和需要代码示例作为一流的文档工件。
2014-02-05 cs.SE
Investigating the Developer eXperience of LGBTQIAPN+ People in Agile Teams
本研究通过调查40名参与者,探讨了敏捷团队中LGBTQIAPN+人群的开发者体验,发现心理安全和包容性政策至关重要,并指出定制敏捷实践和远程工作能提升满意度与生产力,强调将包容性融入敏捷方法论以支持多样化专业人士。
2025-01-22 cs.SE
Understanding before Naming! Enhancing LLM-based Method Name Prediction with Code Summarization
Faculty of Data Science, City University of Macau(澳门城市大学数据科学学院);School of Cyberspace Security (School of Cryptography), Hainan University(海南大学网络空间安全学院(密码学院));College of Computing and Data Science, Nanyang Technological University(南洋理工大学计算机与数据科学学院);State Key Laboratory for Novel Software Technology, Nanjing University(南京大学软件新技术国家重点实验室)
研究针对方法名预测中现有评估不能反映语义质量、基于LLM的方法与人命名过程不同的问题,通过实证研究比较多种评估器及策略,提出结合摘要和细化的SMNP方法,实验证明该方法在方法名预测上有效且鲁棒。
2026-07-15 cs.SE
The Making of Cloud Applications An Empirical Study on Software Development for the Cloud
云计算作为软件的部署和供应模型正获得越来越多的关注。虽然大量的研究已经涵盖了如何最佳地操作云系统,但我们仍然缺乏对专业软件工程师如何实际使用云以及云如何影响开发实践的见解。本文报告了关于软件开发人员如何在云中构建应用程序的第一次系统性研究。我们进行了一项混合方法研究,包括对25名专业开发人员的定性访谈和对294份回复的定量调查。我们的研究结果表明,采用云计算对整个软件开发过程以及开发人员在日常工作中如何利用工具和数据产生了深远的影响。除其他事项外,我们发现(1)开发人员需要更好的方法来预测运行时问题并严格定义改进故障定位的指标,(2)云提供了丰富的操作数据,然而,开发人员仍然经常依赖他们的经验和直觉,而不是利用指标。从我们的研究结果中,我们提取了一套云开发指南,并确定了研究人员和工具供应商面临的挑战。
2015-03-17 cs.SE
An Experimental Evaluation of a De-biasing Intervention for Professional Software Developers
在我们寻求改进软件项目计划和执行的过程中,专家判断的作用是必不可少的。然而,它的准确性取决于许多因素,尤其是避免判断偏差,例如锚定偏差,这是由于受到初始信息的影响而产生的,即使它具有误导性或不相关。这种强烈的影响被广泛记录。目的:我们的目的是复制这种锚定偏见使用专业人士和新颖的软件工程的背景下,通过增加知识和认识的判断偏差,探索去偏置干预。方法:我们在公司环境中进行了两个系列的实验,共有410名软件开发人员。一些开发人员参加了一个研讨会,以提高他们对一系列认知偏见的认识,包括锚定。之后,锚定偏差是通过呈现低或高的生产力值来诱导的,然后是参与者对自己项目生产力的估计。我们的假设是,研讨会将导致减少偏见,即,作为一种去偏见的干预。结果:锚点在影响估计值方面有很大的影响(稳健的Cohen $d=1.19$)。在参加研讨会的参与者中,这一比例大幅降低(稳健的Cohen $d=0.72$)。偏倚降低主要与高锚点相关。去偏干预也导致估计方差减少三倍。结论:锚钉对判断的影响是巨大的。学习判断偏差似乎确实能够减轻,虽然不能消除,锚定偏差。通过了解偏见来消除偏见的积极效果表明它是有价值的。
2018-04-11 cs.CY cs.SE
Theory of Troubleshooting: The Developer's Cognitive Experience of Overcoming Confusion
University of Victoria(维多利亚大学)
本文提出了一种基于认知科学的调试理论,旨在解释开发者在调试过程中面临挑战及认知疲劳的原因,并通过实证研究为开发者经验研究提供理论基础。
2026-02-16 cs.SE
Analyzing and Calibrating Risk Assessment by Software Developers
在软件项目管理中,风险管理是一个至关重要的因素。项目经理使用现有的风险列表或执行头脑风暴来识别风险。然而,客观地认识所有风险并不容易。因此,有些风险是基于主观印象来感知的,这导致了风险偏差。因此,我们的目标是(i)我们澄清的风险认知的开发人员,以提高头脑风暴的可靠性,(ii)我们校准的风险评估的基础上的数学模型,使更准确的风险列表。在分析中,我们通过问卷调查收集了69名专业软件开发人员的风险感知数据。这些专业人员的平均工作年限为18.3年。使用数据集,我们应用因子分析来阐明影响风险影响评估的因素。该问卷以Slovic的风险知觉理论为基础,其中“恐惧”和“未知”是风险知觉的主要因素。分析结果表明,(一)风险经验(即,开发人员是否实际面临风险)有时会影响风险评估(风险影响的评估),(ii)风险感知被认为是基于未知和可怕的因素,以及(iii)风险评估可以通过数学模型进行校准(平均绝对误差为0.20)。
2022-09-08 cs.SE
Do Open Source Software Developers Listen to Their Users?
在应用软件中,目标用户的满意使软件更容易被接受。开放源码软件(OSS)系统既没有专有软件的物理边界,也没有商业边界,因此世界各地的用户都可以与之互动。这种免费使用是有利的,因为越来越多的用户能够使用开放源码软件;有更多的改进机会。这项研究探讨了OSS开发人员处理用户反馈的方式。在我们的调查中,我们还询问了开放源码软件开发人员是否咨询专业的可用性专家来改进他们的项目。根据结果,大多数OSS开发人员既不将可用性视为他们的首要任务,也不咨询可用性专家。
2015-07-24 cs.SE
CodeFill: Multi-token Code Completion by Jointly Learning from Structure and Naming Sequences
Delft University of Technology(代尔夫特理工大学)
代码完成是IDE的一个基本功能,但当前的自动完成器仅限于基于语法或基于NLP的单个标记完成。这两种方法都有明显的缺点:基于语法的自动完成在动态类型语言环境中受到限制,而基于NLP的自动完成程序很难理解程序设计语言的语义和开发人员的代码上下文。在这项工作中,我们提出了CodeFill,一个语言模型自动完成,结合了学习的结构和命名信息。使用并行Transformer架构和多任务学习,CodeFill使用源代码标记名称序列及其等效的AST标记类型。独特的是,CodeFill针对单标记和多标记(语句)预测进行了训练,这使其能够学习语法和命名元素之间的长期依赖关系。我们在两个数据集上训练CodeFill,分别由29 M和425 M行代码组成。为了使评估更加真实,我们开发了一种方法来自动推断源代码中的完成点。我们将CodeFill与四个基线和两个最先进的模型GPT-C和TravTrans+进行了比较。CodeFill在单令牌预测方面超过了所有基线(MRR:70.9% vs. 66.2%和67.8%),并且在多令牌预测方面优于最先进的模型(ROUGE-L:63.7% vs. 52.4%和59.2%,n=4个令牌)。我们公开发布我们的源代码和数据集。
2022-02-14 cs.LG cs.SE
From Early Adoption to Sustained Use: Understanding GenAI Usage Among Software Developers in Italian SMEs
University of Bari(巴里大学);University of Hamburg(汉堡大学);University of Southampton(南安普顿大学);Pontifícia Universidade do Rio Grande do Sul(南里奥格兰得天主教大学)
本研究基于UTAUT2框架,通过纵向和横截面混合方法调查意大利中小企业开发者持续使用生成式AI工具的意图,发现个体层面因素(如生产力、享受和易用性)是主要驱动力,而社会和组织因素影响不显著。
2026-05-25 cs.SE
Towards Improving the Mental Model of Software Developers through Cartographic Visualization
软件是无形的,关于软件系统的知识通常是隐性的。因此,软件开发人员的心智模型是软件工程中的一个重要因素。我们的愿景是,开发人员应该能够将代码称为“在北方”,“在西方”或“在南方”。我们希望为开发人员和其他参与软件开发的人提供一个 * 共享的 *,空间和稳定的软件项目心理模型。我们的目标是通过在IDE(集成开发环境)中嵌入地图可视化来加强这一点。可视化始终在左下方可见,类似于汽车驾驶员的GPS导航设备。对于每个开发任务,相关信息都显示在地图上。在本文中,我们提出了CODEMAP,Eclipse插件,并报告从正在进行的用户研究与专业开发人员和学生的初步结果。
2010-01-14 cs.SE
Sustaining Research Software via Research Software Engineers and Professional Associations
研究软件是为支持研究而开发的一类软件。今天,世界各地的大学、政府和商业研究企业每天都在创建大量这样的软件。这种软件的可持续性面临着特殊的挑战,至少部分是由于开发它的人的类型。这些研究软件工程师(RSE)在开发和维护软件方面面临的挑战与传统软件开发人员所面临的挑战不同。因此,专业协会已开始为RSE提供支持、宣传和资源。这些好处对于维持RSE至关重要,特别是在他们的贡献往往被低估和没有奖励的环境中。本文重点介绍专业协会,如美国研究软件工程师协会(US-RSE),可以提供这一点。
2021-03-02 cs.SE
Can Developers Prompt? A Controlled Experiment for Code Documentation Generation
本研究通过受控实验发现,开发者在代码文档生成中缺乏提示工程技能,临时提示效果不如预定义提示,需进一步研究其提示偏好与支持需求。
2024-08-01 cs.AI cs.HC cs.SE
PLOS/Mozilla Scientific Code Review Pilot: Summary of Findings
PLOS和Mozilla进行了为期一个月的试点研究,其中专业开发人员对与PLOS计算生物学论文相关的软件进行了代码审查。虽然开发人员认为评论受到(a)缺乏对该领域的熟悉和(b)缺乏与作者的双向联系的限制,但科学家们欣赏评论,双方都热衷于重复实验。
2013-11-11 cs.SE
What Do Developers Discuss in Their Workplace? An Analysis of Workplace StackExchange Discussions
本研究分析Workplace StackExchange的47,368篇帖子,识别出46个主题并归为七类,发现约30%的讨论涉及工作场所冲突,凸显其作为开发者最突出讨论主题的地位。
2024-11-11 cs.SE
A Qualitative Study on the Implementation Design Decisions of Developers
决策是软件工程的关键技能。从需求到实现,开发人员在整个软件开发过程中不断做出选择。虽然之前的工作已经研究了开发人员的决策,但在选择用代码编写什么解决方案时所做的选择仍然没有得到充分的研究。在这个混合方法的研究中,我们研究了开发人员选择一种特定的方式来实现代码中的行为的现象,给出了许多潜在的替代方案。我们称这些决策为实现设计决策。我们的混合方法研究包括46份调查问卷和14份半结构化访谈,内容涉及专业开发人员的决策类型、考虑因素、流程和实施设计决策的专业知识。我们发现,实现设计决策,而不是一个自然的结果,从更高层次的设计,需要不断监测更高层次的设计选择,如需求和架构。我们还表明,开发人员有一个一致的一般结构,他们的实施决策过程,但没有一个单一的过程是完全相同的。我们讨论了我们的研究结果对研究,教育和实践的影响,包括对教学开发人员如何做出实施设计决策的见解。
2023-01-24 cs.SE
2020 State of the Octoverse: Finding Balance Between Work and Play
在过去的一年里,许多开发人员和其他技术专业人员已经过渡到远程第一世界,因为COVID-19迫使组织尽可能支持在家工作。这种转变迅速改变了我们工作和学习的常规和环境,重新划定了个人生活和职业生活之间的界限。这会如何影响我们在工作和开源项目中开发和交付软件的方式?
2021-10-19 cs.SE
A Preliminary Study on the Impact of AI in the Creativity and Collaboration in Software Teams
Universidade Federal de Pernambuco (UFPE)(巴西国立伯南布哥联邦大学);University of Southampton(南安普顿大学)
研究人工智能对软件团队创造力和协作的影响,通过对13名软件专业人员半结构化访谈,发现人工智能拓宽创意范围但缩窄独立构思,削弱同伴学习指导,团队发展出开发者、同事和人工智能共同推理的三方协作模式。
2026-07-21 cs.SE
A survey on test practitioners' awareness of test smells
开发测试代码可能是一项耗时的任务,通常需要大量的工作和成本,特别是在手动完成时。此外,在这个过程中,开发人员和测试人员很可能会采用糟糕的设计选择,这可能会导致在测试代码中引入所谓的测试气味。测试气味是实现或设计测试代码的糟糕解决方案。随着带有测试气味的测试代码的大小增加,这些测试可能会变得更加复杂,因此更难理解和正确地发展。因此,测试气味可能会对测试代码的质量和维护产生负面影响,也可能会损害整个软件测试活动。在此背景下,本研究旨在了解测试专业人员是否无意中插入测试气味。我们进行了一项专家调查,以分析一组测试气味的使用频率。来自不同公司的60名专业人士参加了调查。我们从文献中选择了14种广泛研究的气味,这些气味也在现有的测试气味检测工具中实现。产生的结果表明,有经验的专业人员在日常编程任务中引入测试气味,即使他们使用的是公司的标准化实践,而不仅仅是他们的个人假设。另一个相关的证据是,开发人员的专业经验不能被认为是在测试代码中插入测试气味的根本原因。
2020-03-12 cs.SE
Why Don't Developers Detect Improper Input Validation?'; DROP TABLE Papers; --
输入验证不当(IIV)是一种软件漏洞,当系统无法安全处理输入数据时会发生此漏洞。尽管IIV很容易检测和修复,但在实践中仍然经常发生。在本文中,我们研究在何种程度上开发人员可以检测IIV和调查的根本原因。这些知识对于更好地理解如何支持开发人员创建安全的软件系统至关重要。我们与146名参与者进行了一项在线实验,其中105人至少有三年的专业软件开发经验。我们的研究结果表明,一个可见的攻击场景的存在,有利于检测IIV漏洞,很大一部分的开发人员谁没有发现漏洞最初可以识别它时,警告它的存在。然而,共有60名参与者甚至在警告后也无法检测到漏洞。其他因素,如参与者执行代码审查的频率,影响IIV的检测。数据和材料:https://doi.org/10.5281/zenodo.3996696
2021-02-11 cs.SE
At What Cost? Software Developers' Well-Being in the Age of GenAI
Queen’s University(女王大学);The University of Western Australia(西澳大学);University of Otago(奥塔哥大学);Uppsala University(乌普萨拉大学)
本文探讨了生成人工智能时代软件开发者福祉问题,指出过度关注生产力和性能可能忽视开发者身心健康,提出理论框架以平衡绩效指标与人类体验和社会可持续性。
2026-05-21 cs.SE
Model-Assisted and Human-Guided: Perceptions and Practices of Software Professionals Using LLMs for Coding
基于对131名软件从业者的全球调查,本研究揭示了大语言模型在编码任务中的实际应用、感知益处与风险,并指出开发者普遍将其视为辅助工具,为负责任采纳提供了实践视角。
2025-10-10 cs.SE
How do Developers Test Android Applications?
实现移动应用程序的全自动测试最近已成为研究人员和从业人员的重要研究课题。已经提出了大量的工具和方法,通过增加手动测试实践和自动化测试过程的各个部分来帮助移动开发人员。然而,目前的自动化测试方法无法让开发人员相信它们的好处,导致大多数移动测试都是手动执行的。为了帮助设计支持移动测试方法的研究人员和从业人员了解开发人员的需求,我们分析了来自Android项目的102位开源贡献者关于他们在执行测试时的实践的调查回复。调查的重点是关于开发人员/测试人员在野外的实践和偏好的问题:(i)设计和生成测试用例,(ii)自动化测试实践,以及(iii)对质量度量的看法,例如用于确定测试质量的代码覆盖率。通过分析从这次调查中收集到的信息,我们汇编了一套知识体系,以帮助指导研究人员和专业人员根据不同开源开发人员的需求定制新的自动化测试方法。
2018-01-19 cs.SE
Evolving with AI: A Longitudinal Analysis of Developer Logs
JetBrains Research(JetBrains 研究);University of California, Irvine(加州大学尔湾分校);JetBrains
研究通过纵向数据和调查分析AI对开发者日常编码实践的长期影响,发现AI使用提高了代码产出但也增加了删除量,同时开发者报告生产力提升但其他维度变化不明显。
2026-03-30 cs.HC cs.SE
How Are We Doing With Using AI-Based Programming Assistants For Privacy-Related Code Generation? The Developers' Experience
本文通过调查全球 51 名专业开发者,评估 AI 编程助手生成隐私保护代码的实际表现与挑战,并提出模型、系统改进及未来研究方向。
2025-06-15 cs.SE
A Survey on What Developers Think About Testing
本调查基于284名开发者的回复,探究开发者对测试的真实态度,发现测试动机受质量追求与个人满足感驱动,但被视为单调任务,建议通过更好认可来改善。
2023-09-03 cs.SE
Understanding Flaky Tests: The Developer's Perspective
Flaky测试是在对相同的代码运行时显示出看似随机的结果(通过或失败)的软件测试。以前的工作已经检查了修复的重复测试,并提出了自动化的解决方案,以定位和修复重复测试-我们通过检查软件开发人员对这种现象的性质,相关性和挑战的看法来补充它。我们要求21名专业开发人员对他们之前修复的200个测试进行分类,根据片状的性质,片状的起源和修复工作。我们用有关固定策略的信息来补充这一分析。随后,我们对121名开发人员进行了在线调查,这些开发人员的工业编程经验中位数为5年。我们的研究表明:这种不稳定性是由于几种不同的原因造成的,其中四种以前从未被报道过,尽管这是修复成本最高的;不稳定性被绝大多数开发人员认为是重要的,不管他们的团队的规模和项目的领域如何,它会对资源分配、调度和测试套件的感知可靠性产生影响;开发人员报告面临的挑战主要是复制剥落行为和识别剥落的原因。数据和材料[https://doi.org/10.5281/zenodo.3265785]。
2019-07-02 cs.SE
Software Security during Modern Code Review: The Developer's Perspective
为了避免软件漏洞,组织正在将安全性转移到软件开发的早期阶段,例如在代码评审时。在本文中,我们旨在了解开发人员在代码审查期间评估软件安全性的观点,他们遇到的挑战以及公司和项目提供的支持。为此,我们进行了两步调查:我们采访了10名专业开发人员,并调查了182名从业人员在代码审查期间的软件安全评估。结果是开发人员在代码审查期间如何看待软件安全性以及一组已识别的挑战的概述。我们的研究表明,大多数开发人员在代码审查期间不会立即报告安全问题。只有在被问及软件安全性之后,开发人员才会在审查期间始终考虑它并承认其重要性。大多数公司不提供安全培训,但希望开发人员在审查期间仍然确保安全性。因此,开发人员报告说,缺乏培训和安全知识是他们在检查安全问题时面临的主要挑战。此外,他们还面临着第三方库的挑战,以及识别可能具有安全影响的代码部分之间的交互。此外,由于开发人员对他们开发的应用程序的安全动态的假设,在审查期间可能会忽视安全性。数据和材料:https://doi.org/10.5281/zenodo.6875435
2022-08-08 cs.SE
Improving Semantic Consistency of Variable Names with Use-Flow Graph Analysis
一致性是维护源代码的关键之一,因此是一个成功的软件项目。我们提出了一种新的方法提取程序员的意图从一个大型项目(~ 300 kbps)的源代码和检查其变量名的语义一致性。我们的系统学习一个项目特定的命名约定的变量的基础上,其作用完全从源代码,并建议替代方案时,违反其内部一致性。该系统还可以显示为什么要以特定方式命名某个变量的推理。该系统不依赖任何外部知识。我们将我们的方法应用于12个开源项目,并与人类评审员一起评估其结果。我们的系统为1080个实例中的416个(39%)提出了替代变量名称,这些实例被认为比开发人员最初使用的更好。根据结果,我们创建了补丁来纠正不一致的名称,并将其发送给开发人员。三个开源项目采用了它。
2022-03-18 cs.SE
A Survey on How Test Flakiness Affects Developers and What Support They Need To Address It
非确定性地通过和失败的测试用例,即所谓的非确定性测试,近年来已成为软件工程研究的一个热点领域。虽然这一研究重点已经得到了一些行业的热情认可,但以前的工作主要是通过挖掘软件存储库使用以代码为中心的方法来研究片状。然而,从软件仓库中提取的数据无法告诉我们开发人员如何看待漏洞:测试漏洞在开发人员的日常工作中有多普遍,它如何影响他们,最重要的是:他们希望我们研究人员做些什么?为了回答这些问题,我们调查了335名不同领域的专业软件开发人员和测试人员。调查对象确认,艾滋病毒检测是一个普遍而严重的问题,从而加强了正在进行的艾滋病毒检测研究。开发人员不太担心重新运行测试所导致的计算成本,而更多地担心对测试结果的信任丧失。因此,他们希望有IDE插件来检测测试代码,并对问题进行更好的可视化,特别是显示测试结果的仪表板;他们还希望有更多的培训和关于剥落的信息。这些重要方面需要研究人员和工具开发人员的关注。
2022-04-08 cs.SE
To Copilot and Beyond: 22 AI Systems Developers Want Built
Oregon State University(俄勒冈州立大学);Microsoft Research(微软研究院)
本文通过调研860名微软开发者,识别出22个AI系统需求,涵盖五个任务类别。研究发现开发者希望AI在早期工作流中嵌入质量信号,同时限制其权限和隐私,揭示了AI辅助开发中的'有界委托'模式。
2026-04-09 cs.SE
Blindspots in Python and Java APIs Result in Vulnerable Code
API中的盲点可能会导致软件工程师引入漏洞,但不幸的是,这种盲点很常见。我们通过复制一个109名开发人员,24名Java-API控制实验,研究了具有盲点的API对两种语言开发人员的影响。我们的复制适用于Python,涉及129名新开发人员和22个新API。我们发现,使用带有盲点的API在统计上显著降低了开发人员在两种语言中正确推理API的能力,但这种影响对Python更为明显。有趣的是,对于Java,这种影响随着依赖API的代码的复杂性而增加,而对于Python,情况正好相反。开发人员是否认为API使用更困难,更不清楚,更不熟悉并不影响他们正确推理的能力。具有较好长期记忆的开发人员更有可能正确地推理具有盲点的API,但短期记忆,处理速度,情景记忆和记忆广度没有影响。令人惊讶的是,专业经验和专业知识并没有提高开发人员对两种语言中存在盲点的API进行推理的能力,具有多年经验的长期专业人员和相对新手一样经常犯错误。最后,性格特征并没有显著影响Python开发人员对带有盲点的API的推理能力,但不那么外向和更开放的开发人员更擅长于对带有盲点的Java API进行推理。总的来说,我们的研究结果表明,API中的盲点是跨语言的一个严重问题,仅凭经验和教育并不能克服这个问题,这表明需要工具来帮助开发人员在编写使用这些API的代码时识别API中的盲点。
2021-03-10 cs.CR cs.SE
We Live in a Society: Motivators for Contributions in an OSS Ecosystem
本文通过调查NPM开发者,揭示了开源维护者在维护自身库与为依赖库贡献时存在个人驱动与专业因素驱动的动机差异,并分析了不同角色开发者面临的动机与障碍。
2023-04-12 cs.SE
Development Effort Estimation in Free/Open Source Software from Activity in Version Control Systems
工作量估计模型是软件管理中的一个基本工具,用于预测与软件开发相关的资源、约束和成本。对于自由/开放源码软件(FOSS)项目,工作量估算尤其复杂:专业开发人员与偶尔的志愿开发人员一起工作,因此整体工作量(以人月计)变得非常难以确定。这项工作的目标是根据开发人员工作的历史数据,为自由和开放源码软件项目开发一个简单的工作估算模型。该模型由开发人员直接反馈,以确保其准确性。在从6个大型FOSS项目中提取了数千名开发人员的个人发展概况之后,我们要求他们填写一份问卷,以确定他们是否应该被视为他们所工作的项目的全职开发人员。他们的反馈被用来微调工作阈值的值,超过该阈值的开发人员可以被视为全职。在收到的1,000多份调查问卷的帮助下,我们能够确定样本中每个项目的提交阈值,该阈值将全职开发人员与非全职开发人员区分开来。并且最小化I型和II型错误。我们最终提供了将我们的模型应用于使用版本控制系统的FOSS项目的指南和工具。
2022-03-18 cs.SE
Remote Communication Trends Among Developers and Testers in Post-Pandemic Work Environments
本研究探讨了后疫情时代软件开发者与测试人员远程通信的特征与挑战,发现向远程和混合工作模式的转变显著改变了通信与任务协调,并强调需调整工作流、引入新管理实践和技术投资以保障项目交付质量。
2024-08-22 cs.SE
A Survey-Based Qualitative Study to Characterize Expectations of Software Developers from Five Stakeholders
背景资料:对开发人员生产力和幸福感的研究发现,对软件团队生产力的看法可能是一个社会技术问题。通过管理软件团队的期望,可以更好地处理直觉、问题和挑战。目标:我们的目标是了解软件开发人员的期望是否对软件团队中的不同利益相关者有所不同。方法:我们调查了181名专业软件开发人员,以了解他们对五个不同利益相关者的期望:(1)组织,(2)管理人员,(3)同行,(4)新员工,(5)政府和教育机构。这五个利益相关者是通过对软件开发人员进行半正式访谈确定的。我们提出开放式调查问题,并使用开放式编码分析回答。结果:我们观察到18个多方面的期望类型。虽然有些期望对利益相关者更具体,但其他期望是跨领域的。例如,开发人员期望从他们的组织获得工作利益,但期望从他们的组织、同事和新员工那里采用标准的软件工程(SE)实践。结论:在18个类别中,有三个类别与职业发展有关。这一观察结果支持了先前的研究,即幸福不能仅仅通过提供更多的钱或晋升来保证。在大多数的回应中,我们发现教育机构希望提供相关的教学,政府希望提高工作稳定性,这表明这些组织在帮助软件开发人员方面的作用越来越重要。在COVID-19大流行期间,这一观察结果尤其如此。
2021-07-20 cs.SE
AngularJS Performance: A Survey Study
AngularJS是一个流行的基于JavaScript MVC的框架,用于构建单页Web应用程序。在本文中,我们报告了对95名专业开发人员关于AngularJS应用程序性能问题的调查结果。我们报告了开发人员为避免性能问题而遵循的常见做法(例如,使用第三方或自定义组件),AngularJS应用程序中性能问题的一般原因(例如,AngularJS用户做出的架构决策不足),以及性能问题的技术和具体原因(例如,摘要周期中包含的不必要的处理,这是一种内部计算,它会自动更新模型中检测到的视图变化)。
2017-05-06 cs.SE
An adaptive 3D virtual learning environment for training software developers in scrum
由于其在生产力、质量和客户满意度方面的潜在改进,Sign是敏捷软件开发中最常用的框架之一。学术界还专注于教授STEM实践,以帮助学生面对常见的软件工程挑战,并促进他们在专业环境中的插入。此外,学习技术的进步目前提供了许多虚拟学习环境,以多种方式增强学习。他们考虑个人学习者偏好的能力导致了向更个性化的培训方法的转变,要求环境适应学习者。我们提出了一种自适应的方法来培训开发人员在Sunday,包括一个自适应的虚拟学习环境的基础上费尔德的学习风格理论。虽然仍然是初步的,我们的研究结果表明,学生使用的环境,并收到指令匹配他们的喜好获得更高的学习收益比学生谁收到了不同的指令比他们喜欢的。我们还注意到,那些接受了与自己偏好相匹配的指导的学生,学习成绩的变化较小。这项工作的相关性超出了学习收益的影响,因为它描述了自适应虚拟学习环境可以在软件工程领域中使用。
2021-11-09 cs.SE
Towards Better Comprehension of Breaking Changes in the NPM Ecosystem
针对NPM生态系统破坏性变更带来的高昂维护成本,本文构建了381个项目的数据集,系统分类了语法与行为破坏性变更及其成因,并为自动化检测与重命名技术提供了改进建议。
2024-10-14 cs.SE
User Personas Improve Social Sustainability by Encouraging Software Developers to Deprioritize Antisocial Features
本研究通过针对79名本科生的随机对照实验,验证了persona模型能显著降低开发者对反社会软件功能的优先级排序,为提升软件工程社会可持续性提供了循证干预思路与可行的实验室评估方法。
2024-12-14 cs.SE
The Price of Using Students
在最近的一篇文章中,Falessi等人(2017)呼吁更深入地了解在实验中使用学生和专业人员的利弊。作者说:我们已经观察到太多次我们的论文被拒绝,因为我们使用学生作为主题。在软件工程的研究中,学生的良好实验无疑是一笔宝贵的财富。因此,论文不应仅仅因为主题是学生而被拒绝。然而,学生和专业人员的技能分布是不同的。由于以前的研究表明,技能可能对参与者的待遇有调节作用,我们担心涉及只有低到中等技能的开发人员的研究(即,学生)可能会导致错误的推论,哪种技术,方法或工具是更好的软件行业。因此,我们提供建议,如何与学生的实验可以得到改善,并评论一些所谓的缺点,使用专业人士,Falessi等。
2018-11-28 cs.SE
Assessing Python Style Guides: An Eye-Tracking Study with Novice Developers
本研究通过眼动追踪实验评估了Python PEP8风格指南对32名新手开发者的影响,发现未遵循特定指南会显著增加视觉回视,建议从业者采用有实验支持的指南。
2024-08-26 cs.SE
Are There Functionally Similar Code Clones in Practice?
在软件系统中有类似的代码片段,也称为克隆,可能会导致不必要的理解,审查和更改工作。在实践中经常会遇到语法相似的克隆。对于仅功能相似的克隆(FSC),同样不清楚。我们在开发人员中进行了一项探索性调查,以调查他们在实践中是否遇到功能相似的克隆,以及他们是否倾向于将它们删除为语法相似的克隆。在回答调查的34名开发人员中,31名在其专业工作中经历过FSC,24名经历过FSC造成的问题。我们发现,在删除FSC和语法相似的克隆的倾向和推理没有差异。FSC实际上是存在的,应该进行研究,使克隆检测器达到与语法相似的克隆相同的质量,因为能够检测它们允许开发人员管理并可能删除它们。
2018-03-28 cs.SE
Early Career Developers' Perceptions of Code Understandability. A Study of Complexity Metrics
该研究针对216名1-4年经验的早期职业开发者开展实证研究,探究McCabe圈复杂度与认知复杂度对代码可理解性的预测效果,发现二者预测能力一般且无法预测问题严重度,建议不让早期开发者独立做代码评审。
2024-07-15 cs.SE
How are We Detecting Inconsistent Method Names? An Empirical Study from Code Review Perspective
本研究从代码审查视角构建方法命名基准ReName4J,实证评估前沿技术在方法名不一致检测与推荐上的表现,发现现有技术存在性能不足与评估偏差,为后续研究提供新视角。
2023-08-24 cs.SE
Less is More: Supporting Developers in Vulnerability Detection during Code Review
从安全角度审查源代码已被证明是一项艰巨的任务。事实上,以前的研究表明,开发人员在代码审查期间经常错过甚至流行和易于检测的漏洞。初步证据表明,一个重要的原因可能在于审查员的心理态度和共同的做法。在这项研究中,我们调查是否以及如何明确要求开发人员在代码审查过程中关注安全性影响漏洞的检测。此外,我们还评估了提供安全检查表来指导安全审查的效果。为此,我们进行了一项在线实验,有150名参与者,其中71%报告有三年或三年以上的专业发展经验。我们的研究结果表明,简单地要求审查人员在代码审查期间关注安全性,漏洞检测的概率增加了8倍。安全检查表的存在不会显著地进一步改善结果,即使检查表是针对所审查的变更和变更中现有的漏洞而定制的。这些结果提供了支持心理态度假设的证据,并呼吁进一步的工作,安全检查表的有效性和设计。数据和材料:https://doi.org/10.5281/zenodo.6026291
2022-02-12 cs.SE
Helpful but Fallible: Developer Experiences of AI Tools Under a Coordinated Industrial Roll-out
Lund University(隆德大学);Ericsson AB(爱立信公司);Mälardalen University(马尔默达尔大学);Carleton University(卡尔顿大学);KTH Royal Institute of Technology(皇家理工学院)
本研究通过瑞典电信公司12名开发者的访谈,揭示AI开发工具协调部署中管理层与开发者期望差距及感知风险的重要性,指出工具价值受组织期望、系统规模和技能影响。
2026-09-21 cs.SE