(翻译)编写优秀Bug报告的艺术及案例分析

简介:   前言 在99年的Quality week上的一次演讲中,微软的一个测试经理,Roger Sherman指出了由于“不可重现”导致bug关闭的主要原因。这是一个非常可惜的情况,因为这样的bug report浪费了紧张的开发计划中的宝贵时间,增加了对产品质量完全是无关紧要的事情,同时导致了在开发人员和测试之间的挫败感和差的感觉。有时,bug report是由于短暂的或随机的事件,测试和开
 
前言
99 年的 Quality week 上的一次演讲中,微软的一个测试经理, Roger Sherman 指出了由于“不可重现”导致 bug 关闭的主要原因。这是一个非常可惜的情况,因为这样的 bug report 浪费了紧张的开发计划中的宝贵时间,增加了对产品质量完全是无关紧要的事情,同时导致了在开发人员和测试之间的挫败感和差的感觉。有时, bug report 是由于短暂的或随机的事件,测试和开发之间不一致的工具和配置,或者在测试的环境下对正确的行为的模糊定义而产生的,但是许多的由于不可重现而被关闭的测试报告是因为描述不清晰,被误解,或者只是文字的错误。
 
幸运的是,我学习到一些能够引起管理层注意,更清楚的和开发人员沟通并得到修复的编写优秀 bug report 的诀窍。这些技巧不仅仅提供了是在被修复的问题的比例方面得到了可靠的回报,而且在同开发人员和管理层的通过中也得到了回报。在我管理的项目中使用这种方法编写 bug report 8 bug report 中大约只有一个没有被修复。
 
这 篇文章的思想只有当你的报告针对的测试执行过程是专业的质量工作才可以发挥作用。聪明地执行完整的测试包是产生可靠的测试状况信息的基础的其中一个因素。 在许多的测试文献中广泛地介绍了多种多样的关于如何构建这样的测试包的方法。选择和你质量风险管理需求相一致的技术并且使之适应你的具体情况,敏捷地监督 已计划的测试的执行过程,这样你就可以拥有可靠的测试执行过程。
 
另外一个关键的因素-bug report,却没有得到太多的关注。这是非常令人遗憾的,因为优秀的bug report对反映测试小组真实的和可理解的工作质量同测试本身一样都是非常重要的。试想一下:如果你不能用开发人员能够理解的术语和能够用于调试的方法 给开发人员解释一个错误,他怎么能够修复问题呢?如果你不能够在bug report中提出象“保险杆标签”(bumper sticker)一样的错误总结来引起管理层的注意,你又如何让他们关心你们发现的问题呢?
 
Bug report的核心是对错误的描述。表格1中是一个关于好和差的错误描述的例子。编写好的bug report是一种好的艺术形式。采用以下的10条技巧可以帮助你的小组提高编写bug report的质量:
  1. 组织Structure:测试人员应该采用深思熟虑的,小心谨慎的方法执行测试,并且做详尽的记录。这样可以促使他们对测试下的系统有很好的认识。当错误发生的时候,一个有组织的测试人员能够知道最早出现问题的地方。
  2. 重现Reproduce:测试人员在编写bug report之前必须在检查问题是否可重现。如果错误不可再重现,仍然应该写下来,但是必须说明问题的偶然性。一个好的处理原则就是在编写bug report之前反复尝试3次。
  3. 隔离Isolate:在尝试编写bug report之前,必须试着隔离错误。可以采用改变一些变量的方法,如系统的配置,它可能可以改变错误的症状。这些信息可以为开发人员着手调试提供思路。
  4. 归纳Generalize:在测试人员发现了一个已隔离的,可重现的问题后,应该对问题进行归纳。同一个问题是否出现在其他的模块或其他的地方?同一个故障是否有更加严重的问题?
  5. 对比Compare: 如果测试人员以前曾经验证过现在出错的测试用例,那么他就应该检查以前的测试结果以检查相同的条件是否通过以前的测试。如果是的话,那么这个问题就象是一 个回归的错误。注意由于同一测试条件有可能出现在多个测试用例中,这个步骤就不仅仅只是检查一个测试用例在以前的多个结果。
  6. 总结Summarize:在bug report的第一行写上错误的总结是非常关键的。测试人员要花些时间思考已发现的错误对客户有何影响。这不仅仅要求测试人员编写的报告要能够吸引读者,使和管理层的沟通清晰,还要能够帮助设置错误修复的优先级别。
  7. 精简Condense:在bug report的初稿完成后,测试人员应该反复阅读它,集中剔除那些没有关系的步骤或词语。隐含的或模糊的说明和那些由于对没有任何关系的细节或者那些在重现错误过程中不需要的步骤而消磨报告欢迎程度的无穷唠叨都不是bug report的目标。
  8. 消除歧义Disambiguate:测试人员在精简空话的同时或其之后随即应该再仔细检查报告是否有会产生误解的地方。测试人员应该尽量避免使用模糊的,会产生歧义的和主观的词语。目标是使用能够表述事实,清楚的,不会产生争执的词语。
  9. 中立Neutralize: 如文中所述,作为坏消息的传递人,和善地提交消息是一个挑战。如同所有的错误总结一样,独立的bug report在措辞方面应该保持公正。攻击开发人员,指责潜在的错误,企图诙谐或使用挖苦将引起开发人员的憎恶,并且使注意力从“提高产品质量”这个大的 目标上转移开了。谨慎的测试人员只用Bug report来描述事实。
  10. 检查Review:一旦测试人员感 觉bug report是他能够编写的最好版本,他应该将报告再给一个或多个同行进行检查。他的同事们也应该给出一些建议,为了澄清问题不断地提问,如果适当的话, 甚至可以挑战“错误成灾”的结论。在允许的时间里,测试小组应该尽可能提交最好的bug report。
 
以 上10条技巧可以帮助你和你的小组提交准确简洁的,彻底校订的,精心构思的,高质量的技术文档。测试小组应该集中编写bug report的任务,测试组长和经理应该让测试组成员清楚地认识到编写优秀的bug report是一项首要的工作任务。衡量优秀的bug report的质量指标应该包括如下:
o        对管理层来说,是清晰明了的,特别是在概要这一级;
o        对于开发部门是有用的,主要是给出能够让开发人员高效地调试问题的相关信息
o        可以很快的将bug从“Opened”状态转变成“Closed”状态,减少为得到更多的信息从开发人员打回的差的bug report并导致测试人员返工的时间。
 
改 进bug报告的流程是需要花费一些时间的,但是也给予了效果显著的回报。首先,简单的流程改进了测试小组和高层、平行管理层之间的沟通,增强小组的信任 度,名望和鼓励管理层给测试投资更多的资源。第二,平稳地递交报告给开发人员促进了测试和开发人员之间积极的关系。第三,更短的bug生命周期是更加有效 的,在时间上之前花费在编写优秀bug report上的时间和后期由于返工差的bug report花费的时间相抵消。这些回报帮助开发流程通过有效的沟通和高效率的流程获得更好的产品质量。
 

Good

Bad

概要(Summary
Arial, Wingdings和 Symbol字体破坏了新文件。
重现问题的步骤(Steps to Reproduce
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 所有的文字转变成了控制字符,数字和其他一些二进制的数据.
5. 尝试了3次,每次都可以重现这个问题。
隔离(Isolation
这个问题是新出现在build 1.1.018;相同的测试用例是在builds 1.1.007 (System Test entry) 和 1.1.017中通过测试的.
使用Wingdings和Symbol字体也可以重现这个问题,但Times-Roman, Courier New和Webdings字体都没有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。 
在格式一些文字成Arial字体时,我创建的新文件中所有的内容被毁坏了。
                                                                                                     Table1
案例分析: SpeedyWriter
SpeedyWriter --
·         用Java开发的字处理器(word processor)
·         支持常见的字处理器功能
·         在案例分析中,用“italics”字体突出显示内容的描述上有差异
 
步骤 1 、组织 Structure
 
·         采用深思熟虑的,仔细的方法进行测试
·         遵循编写好的或者运行由编写好的和标准化的流程自动化的测试用例
·         做仔细的记录
 
步骤 2 、重现 Reproduce
 

Good

Bad

· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2. 然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
在格式一些文字成Arial字体时,讨厌的bug捣毁了我创建的新文件中所有的内容,浪费了我的时间。
 
 
步骤3、隔离Isolate
 

Better

Good

· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2. 然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题在Solaris下没有出现。
 
步骤4、归纳Generalize
 

Better

Good

· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
 
步骤5、对比Compare
 

Better

Good

· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试.
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
 
步骤6、总结Summarize
 

Better

Good

概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
 
步骤7、精简Condense
 

Better

Good

概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
 
步骤8、消除歧义Disambiguate
 

Better

Good

概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,包括控制字符,数字和其他一些二进制的垃圾数据,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
 
步骤9、中立Neutralize
 

Better

Good

概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 所有的文字转变成控制字符,数字和其他一些二进制的数据.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,包括控制字符,数字和其他一些二进制的垃圾数据,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
 
步骤 10 、检查 Review
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
为什么大型语言模型都在使用 SwiGLU 作为激活函数?
SwiGLU可以说是在大语言模型中最常用到的激活函数,我们本篇文章就来对他进行详细的介绍。
2020 9
|
5月前
|
机器学习/深度学习 自然语言处理 算法
基于NLP与深度学习的智能面试训练系统深度解析:技术架构与核心算法
本文深入解析AI驱动的智能面试系统,涵盖基于NLP与深度学习的架构设计、核心算法及工程优化。从简历解析、多模态情感分析到行为预测,揭示技术落地细节,助力开发者构建高效、精准的招聘面试解决方案。
|
数据可视化 算法 JavaScript
【Python数据挖掘】数据可视化及数据对象的相似性度量算法详解(超详细 附源码)
【Python数据挖掘】数据可视化及数据对象的相似性度量算法详解(超详细 附源码)
718 0
|
域名解析 缓存 网络协议
提升你的外国服务器网站国内访问速度~
由于众所周知的原因,国内访问国外的服务器速度较慢。在没有特殊线路(直连、CN2GIA等)的加持下,路由线路左绕右绕,严重影响国内访问速度。 能使用国内服务器当然是最好的,但是高昂的流量&带宽价格以及域名备案门槛让人劝退。所以,本文章提供的加速方案是针对线路一般的海外服务器网站访问速度慢的问题。
8842 0
提升你的外国服务器网站国内访问速度~
|
Linux 开发工具
Linux配置软件仓库
Linux配置软件仓库。配置光盘内容为yum/dnf命令的软件仓库。
1693 0
|
6月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
845 8
|
8月前
|
人工智能 数据可视化 API
2025大语言模型部署实战指南:从个人笔记本到企业级服务的全栈方案
本文深度解析四大主流大模型部署框架,覆盖个人开发、边缘设备与高并发生产场景。从Ollama、llama.cpp到vLLM与LM Studio,助你精准匹配技术方案,实现高效部署。
|
存储 人工智能 监控
新手小白购买阿里云服务器省钱策略、配置选型与注意事项
针对初次使用阿里云服务器的用户,本文提供系统化的指导方案以优化成本并满足业务需求。首先介绍配置选型,包括实例类型(通用型、计算型、内存型)与基础配置建议;其次阐述省钱策略,如企业认证、合理选择计费模式及批量购买;最后提醒注意事项,涵盖带宽存储规划、地域网络优化及安全管理。新手可通过明确需求、选择配置、优化购买和持续监控四步快速上手,实现高效稳定的云端部署。 注:推荐配置基于2025年阿里云产品体系,具体信息请参考官网。
|
存储 C语言
用加法器实现补码的加/减运算
用加法器实现补码的加/减运算
985 0