读大学时候,很少coding,更不习惯调试,嫌麻烦
工作后其实大部分都在调试,最近看了些书,所讲的软件调试过程大同小异
发现bug
记录
->重现bug->调查->提出修正方案->修改代码->测试验证->结束
跟瀑布模型一样,各阶段之间会迭代
发现和记录不是调试人员的工作
整个调查和解决过程才是软件调试的生命周期,关于调试,有些有趣的观点耐人寻味
“一旦我们开始编程,就会惊讶地发现让程序正常没想象中那么简单。调试不可避免。那一刻我认记忆犹新,当时我就意识到,从今往后我生活的大部分时间都要花在寻找自己程序的错误上面了。”
(莫里斯•威尔克斯 调试探索, 1949)
“调试难度本来就是写代码的两倍。因此,如果你写代码的时候聪明用尽,根据定义,你就没有能耐去调试它了。”
(Brian Kernighan,《C 程序设计语言》的作者之一)
“如果调试是除虫的过程,那么编程就一定是把臭虫放进来的过程。”
(Edsger W. Dijkstra)
1)bug发现的越晚,成本越高
2)花10%的时间coding,花90%的时间debugging
3)修bug跟补衣服差不多,越补越难看
4)越是后期发现的bug,越是难修
5)调试的时候会发现新的bug,修改代码后又带来了新的bug
还有些头疼的地方
6)test and debug,不停的测试与调试,却发现bug修不完
7) 如果用户描述的bug不能再现怎么办
8) bug不是很严重,但是要调试和测试,在环境搭建方面很困难,该不该修
9)修一个bug,不论简单与否,都要有白盒测试,黑盒测试,功能测试,回归测试,这么麻烦
10)如果bug修不了或者风险太大,有回避方法还好,如果没有怎么办?
......
分享到:
相关推荐
软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。每个阶段都要有定义、工作、审查、形成文档以供交流或备查...
"软件开发过程和软件开发生命周期" 软件开发过程是指从软件概念到软件交付的整个过程,包括软件生命周期中的各个阶段。软件生命周期是指软件从提出开发到最终灭亡所经历的时期。软件开发过程模型是软件开发全过程、...
"软件生命周期和开发模型" 软件生命周期是指软件从提出开发到最终灭亡所经历的时期,包括可行性研究、需求分析、概要设计、详细设计、实现、测试、维护等阶段。软件生命周期表示图可行性研究、需求分析、概要设计、...
软件工程-项目生命周期 软件生命周期是软件从定义开始,经过开发、使用和维护,直到最终退役的全过程。软件生命周期由软件定义、软件开发、运行、维护及退役五个时期。而每个时期又可以进一步划分成若干阶段。 ...
### 软件工程中的软件生命周期管理 #### 第一章:软件工程概述 **软件工程定义**:软件工程是一门研究如何有效地构建、管理和维护软件系统的学科。它不仅关注技术层面的问题,还涵盖项目的管理、成本估算以及人员...
在软件开发生命周期的每个阶段,都可能出现需要调试的问题,这使得提高软件工程师的调试效率成为提高团队工作效率的关键。 本书分为多个章节,系统性地介绍了软件调试的各个方面。在第1章中,作者详细介绍了软件...
1. 调试基础:了解什么是软件调试,调试的目的和作用,它与测试的区别以及它在软件开发生命周期中的位置。 2. 调试过程:掌握调试过程包括哪些步骤,通常从错误的重现开始,然后定位问题,分析原因,最后解决问题。...
### 软件工程与软件开发生命周期 #### 第1章 软件工程概述 **软件工程定义:** 软件工程是一门集成了计算机科学、管理学和工程学原理的多学科领域,专注于软件产品的开发、维护和管理。其核心目标在于通过系统化的...
本项目是一个开源的React生命周期方法实时可视化工具,它可以帮助开发者更好地理解和调试React组件的生命周期。 这个工具的主要功能是显示React组件在实际运行时如何通过其生命周期方法进行交互。React生命周期可以...
主要工作为硬件软件安装调试、验收测试等。 5. **工程验收阶段**:自试运行开始至工程验收完成。包括工程转资、结算审计等环节。 6. **审计归档阶段**:从竣工决算审计申请至项目关闭。此阶段涉及竣工决算审计、...
软件生命周期是软件开发过程的核心,它涵盖了从软件的构思到最终淘汰的全部阶段。这个周期包括问题定义、可行性分析、需求分析、系统设计、编码、调试与测试、验收与运行以及维护升级。软件生命周期旨在确保每个阶段...
在VB6(Visual Basic 6)环境中,计算和图形显示生命周期是编程中一个重要的概念,尤其是在软件工程领域。生命周期管理是软件开发过程中不可或缺的一部分,它涵盖了软件从诞生到消亡的整个过程。在这个过程中,软件...
**JMDA平台详解:全生命周期的软件开发支撑** JMDA平台是一个全面的软件开发解决方案,旨在为开发者提供从应用设计、开发、调试、部署到运行、维护、管控和治理的全程支持。这个强大的平台旨在提升软件开发的效率,...
《软件调试修炼之道》一书,以其深入浅出、高屋建瓴的风格,引领我们从软件编写的初步阶段,到设计的深思熟虑,直至调试的精雕细琢,全方位解构了软件生命周期中的这一关键环节。 ### 软件编写:从概念到现实的桥梁...
综上所述,"Visual Studio 2010软件生命周期管理 源码(chap05)"可能涵盖了源码管理、团队协作、项目管理、测试和调试等SLIM的关键要素,对于理解和实践软件开发的生命周期具有很高的价值。通过深入研究这个章节的...
在产品详细解决方案部分,NC资产管理着重于设备的全生命周期管理,从设备的规划、采购、安装调试、使用、维修、报废等各个阶段进行跟踪。它采用PDCA循环(Plan-Do-Check-Act)来构建资产管理全生命周期管理体系,...
智慧交通全生命周期信号控制系统建设方案是一项旨在通过先进的信息技术提升城市交通管理效率和安全性的项目。这个方案涵盖了从前期规划到后期评估的全过程,旨在打造一个高效、智能且适应性强的交通管理系统。 首先...
在探讨“嵌入式系统软件开发环境中调试器的设计与实现”的过程中,我们深入解析了嵌入式系统软件开发的关键组成部分——调试器,及其在软件生命周期中的重要作用。嵌入式系统的软件开发不仅涉及到复杂的硬件交互,还...
根据bug出现在软件生命周期的不同阶段,可以将其大致分为以下几类: **1. 需求阶段的bug** - 这类bug是最难发现和修复的类型之一。 - 原因包括需求被忽略、需求之间存在冲突或者需求描述模糊不清。 **2. 设计...