问题标签 [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.
unit-testing - 测试代码的测试用例.....有什么界限?
因此,我最近被一家打印机公司聘为 QA/固件开发人员,我的很多工作都涉及编写小部件/测试应用程序以放置在打印机本身上进行测试,以确保一切正常。在你把它转移到职业交流和程序员等之前......我实际上在这里谈论源代码......
但是,由于我刚从大学毕业并获得 CS 学士学位,因此我对专业领域非常陌生……尤其是 QA。
无论如何,我很难掌握一个非常好的“方法”来给出一个好的测试用例结果。
就像让我们说你从键盘输入数字(0-9)......所以要测试你会测试接受的范围(比如 1-100)但是我问自己我应该在那个范围内测试多少(保持请记住,其中一些是不可能自动化的,因为我们必须偶尔用手按压它们)
然后你会明显地测试超出范围(但是多少次?)
例如输入不属于 * $ % 的 ASCII 字符或字符。我对如何为有界/无界案例提供一个好的测试案例感到有点困惑?
有任何想法吗?
spring - 需要有关提高可测试性的建议
我开发了一组基于以下内容的 Web 服务:
- 带有 jaxb2 maven 插件的 Spring ws 2.0(以减轻痛苦)。
- 休眠。
- PostgResql。
我们正在使用以下内容进行测试:
- 使用 Mockito 进行 Junit 测试。
- Dao 和服务层的 Spring 测试。
- 新的 Spring ws 测试和 Smock api。
- SoapUi Api 用于使用他们的 maven 插件进行测试。
我们有 wiki 方面的 TracWiki。
在使用 Hudson 的 maven 构建中,一切都是完全自动化的,甚至在远程服务器上部署带有货物的 webapp。我们在 Debian 上的一台机器上有 5 个虚拟服务器(使用 vserver)。
我们没有单一的性能测试,也没有任何 webapp 工具可以监控。
你有什么建议可以更进一步?
我真的在寻找新的方法和/或工具来改进一切。
sql-server - SQL Server 数据库设计静态分析有什么好的工具吗?
我对是否存在任何可以对 SQL Server 数据库执行静态分析的工具感兴趣。本质上,我正在寻找相当于 FxCop 或 NDepend 的数据库;可以检查数据层并围绕设计、命名和任何其他与质量相关的可衡量属性等指标提出建议的东西。
过去有没有人使用过可以提供一些设计反馈的工具?谢谢。
java - IntelliJ IDEA 调试配置:限制 cpu/带宽的 bash 脚本
我需要在开发过程中限制应用程序的 CPU 和带宽以进行测试,并围绕 java 命令编写了一个小型 bash 脚本包装器,但我不确定如何将这种方法与 IDEA 的运行/调试配置集成。
我第一个失败的 IDEA 集成方法是
静态设置 cpu/down/up,移除 shift
将我的 java 文件夹复制到一个新文件夹,重命名 java 命令,将我的脚本符号链接到 bin/java
告诉 IDEA 使用这个 JRE 配置 - 崩溃
任何有关解决此问题的更好方法的见解将不胜感激!
software-quality - 应该如何测量缺陷密度?
是否有测量缺陷密度的标准方法?大多数在线网站声明它应该被衡量为:
我的问题是:
- 是否应该从发现的缺陷中减去在此期间“修复”的缺陷?
- 由于时间不够,决定在下一个版本中修复的缺陷应该怎么办?是否应该将这些积压缺陷添加到下一个版本的密度中?
- 如果已经证明代码由于大量重复而不必要地膨胀,那么分母中的 KLOC 可能不是一个好的衡量标准。应该如何考虑其中的一个因素?
- 是否可以将特定时间段内的流失以及特定模块的现有缺陷积压与由于流失而创建/发现的缺陷数量相关联
我们的最终目标是能够 (a) 将我们的缺陷密度与行业标准进行比较 (b) 识别易碎且有更多错误并值得更多关注的模块 (c) 使用一致的指标来绘制趋势线来展示随着时间的推移,模块质量的提高
language-agnostic - 为什么用析取范式表达代码很重要?
在我工作的公司,最近有一项要求,所有“高度可见的”布尔逻辑必须以析取范式表示。
例如(尽管这个概念与语言无关),
必须替换为:
强制要求必须以这种方式表达代码的动机是什么?有什么优势?
security - 开源安全测试方法 (OSSTMM)
开源安全测试方法(OSSTMM)能否将此测试方法应用于软件应用程序以测试其安全问题?
software-quality - 寻找软件质量的客观指标
可以在软件产品中测量各种类型的质量,例如适合用途(例如最终用途)、可维护性、效率。其中一些是主观的或特定领域的(例如,良好的 GUI 设计原则可能因文化而异或取决于使用环境,想想军事与消费者使用)。
我感兴趣的是与类型的网络(或图形)及其相互关联性相关的更深层次的质量形式,即每种类型指的是什么类型,是否有明确可识别的互连集群与适当的分层架构,或者相反,是否存在类型引用的大“球”(“单片”代码)。此外,每种类型和/或方法的大小(例如,以 Java 字节码或 .Net IL 的数量衡量)应该给出一些指示,表明大型复杂算法已作为整体代码块实现,而不是被分解成更易于管理/可维护的块。
基于这些想法的分析可能能够计算出至少代表质量的指标。我怀疑高质量和低质量之间的确切阈值/决策点是主观的,例如,因为可维护性是指人类程序员的可维护性,因此功能分解必须与人类思维的工作方式兼容。因此,我想知道在所有可能的场景中是否存在超越所有可能软件的软件质量的数学纯定义。
我还想知道这是否是一个危险的想法,如果质量的客观代理变得流行,那么业务压力将导致开发人员以牺牲整体质量为代价来追求这些指标(代理无法衡量的那些质量方面)。
附录:另一种思考质量的方式是从熵的角度。熵是系统从有序状态恢复到无序状态的趋势。任何曾经在现实世界中工作过的大中型软件项目都会意识到代码库的质量会随着时间的推移而下降的程度。业务压力通常会导致专注于新功能的变化(除非质量本身是主要卖点,例如在航空电子软件中),以及通过回归问题和“鞋拔”功能侵蚀质量质量和维护的角度。那么,我们可以测量软件的熵吗?如果是这样,怎么办?
python - Realtime serial data logging with Python - design advice
I am having to design a small program that reads the GPRMC sentence from a GPS logging device on a laptop computer. I am reading the raw values over serial connection. Once I read the raw value I will parse the GPRMC sentence (12 comma delimited values) and put them into a sqllite database so that another application can read them.
I was wanting some professional advice and some tips on implementation. The parts of the program I am wanting the most advice about are:
- Performance (does this seem like a very cpu intensive process?)
- Error checking (Need to think of all possible error states)
- Ease of updating (If I make a change to the code tree will it be easy to update the program)
testing - 应用于自由软件的质量审计软件
我正在做一项调查,寻找适用于免费软件的质量审计软件,但到目前为止还没有多少运气。我已经找到了进行质量审计的软件信息http://en.wikipedia.org/wiki/Computer-aided_audit_tools但不知道这些是否也适用于免费软件。
在这件事上的任何想法或信息都将非常有用。
先谢谢了。