问题标签 [software-quality]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
software-quality - 您将如何衡量大型项目中的代码“质量”
我正在一家相当大的公司从事一个相当大的项目,几年前的准备工作,我正在承担推动提高整体代码质量的任务。
我想知道在这种情况下您将使用什么样的指标来衡量质量和复杂性。我不是在寻找绝对的措施,而是一系列随着时间的推移可以改进的项目。鉴于这是对数百个项目的宏观操作(我已经看到一些关于小得多的项目的问题),我正在寻找更自动化和更全面的东西。
到目前为止,我有一个如下所示的列表:
- 全功能测试期间的代码覆盖率
- BVT 故障复发
- 依赖关系图/分数,基于 nDepend 等工具
- 构建警告数
- 发现/抑制的 FxCop/StyleCop 警告数
- “catch”语句的数量
- 手动部署步骤数
- 项目数量
- “死”的代码/项目的百分比,如未在任何地方引用
- 代码审查期间的 WTF 数量
- 总代码行数,可能按层细分
software-quality - 质量保证与开发比率
我是一名软件开发人员,今天我与我们的 QA 团队就以下问题发生了争执:
QA 团队成员应该超过开发同一产品的开发人员的数量?
我知道这不是关于如何编程的问题,但我认为这个问题与软件开发非常相关。所以我希望这个问题不会被关闭。相反,我会从在 SW 开发公司工作经验丰富的专业程序员那里得到答案,这样我就可以做出很好的统计。
java - 在较长时间内监控 Java 中的代码指标
是否有一些工具可以在较长时间内监控 Java 项目的不同指标,最好通过 CVS 中的数据来确定趋势和弱点?这将是持续代码审查和维护代码质量的良好起点。
我对引用的数量、类和方法的大小以及圈复杂度特别感兴趣。
programming-languages - 通往更好程序员的路线图
它总是说,你编程的越多,你就越好。听起来不错,很真实。但我想知道是否有一条经过验证的途径可以成为一名更好的程序员。
就像是:
- 学习一个
- 学习 b
- 学习 c > '现在你可以燃烧引擎了'
- 根据你的学习尝试周围的东西。
答案可能类似于 CS 课程路线图,但我想听听成功的程序员可能想要投入一些值得注意的东西。
谢谢
python - coverage.py:排除文件
如何从coverage.py报告中排除整个文件?
根据文档,您可以通过匹配行来排除代码。我想排除整个文件,以便报告不包括第 3 方库。我错过了什么吗?可以做到吗?
python - 是否可以从 coverage.py 报告中排除测试目录?
我是 python 单元测试的菜鸟,尤其是coverage.py。是否希望覆盖率报告包含实际测试文件的覆盖率?
这是我的HTML 报告的屏幕截图作为示例。
您可以看到报告包括tests/test_credit_card
. 起初我试图tests/
从报告中省略目录,如下所示:
我尝试了该命令的几种变体,但我一生都无法获得测试/排除。接受失败后,我开始怀疑测试文件是否应该包含在报告中。
任何人都可以对此有所了解吗?
software-quality - 代码度量评估
关于代码度量的讨论相当多(例如:代码度量的魅力是什么?)。我(作为一名软件开发人员)对这些指标非常感兴趣,因为我认为它们可以帮助人们编写更好的代码。至少在查找需要重构的代码区域时,它们很有帮助。
但是,我想知道的是以下内容。是否有一些对这些源代码指标的评估证明它们确实与错误率或方法的可维护性相关。例如:圈复杂度非常高的方法真的会比复杂度低的方法引入更多的错误吗?或者高难度的方法(Halstead)真的需要比低难度的方法更多的量来维护它们吗?
也许有人知道这方面的一些可靠研究。
非常感谢!
math - AMN 和数学逻辑符号
我不确定这是否适合stackoverflow,但我不知道还能问哪里。我正在研究 B 方法以证明需求规范的一致性,在指定操作的前提条件时,我遇到了逻辑数学符号的问题。
简化原始问题,我有一个变量,它是FLIGHT_NO x TIME x TIME 之间笛卡尔积的子集航班,其中对于每个成员 (no,td,ta),no 表示航班号,td 表示起飞时间和到达的时间。如何使用数学逻辑符号获得 具有最大 td 值的航班元素?
architecture - 哪些质量属性对电子商务 Web 应用程序至关重要?
这个问题只是出于兴趣,也许对我的论文有用。
Web 应用程序,尤其是当您的企业在财务上依赖它时,需要满足某些要求才能生存。我想听听您认为对 Web 应用程序最重要(仅举几例)的(软件)质量属性。
我给出我的分享: 性能(当访问者必须等待超过 2 秒时,50% 或更多的人会离开您的网站,这意味着可能的销售量减少)。
安全,至少要了解OWASP
可靠性,您的 Web 应用程序必须能够处理错误输入,而且还能够处理大量错误输入。
可维护性,在这个世界上能够快速变化并适应您的用户需要增加销售额对于生存至关重要。
maintainability - 编码实践:你对一个 170 万 LOC 的项目有什么看法?
我正在听一个小组讨论,其中有人提到他们的“引擎”不是 1.3,但现在是 170 万行代码。这让我害怕。我无法想象行数、模块的数量等等。我一直觉得 C++ 处理模块的能力不如其他语言。我觉得大型项目更难管理,更喜欢合理地减少代码行数。当我达到 10k 行时,我感到不舒服。我无法想象 20k、50k、500k 或 100 万的感觉如何。
在开发和维护这种规模的项目时,您有哪些实践?