程序员面试金典——解题总结: 9.12测试 12.2如何定位一个随机位置奔溃的应用
2017-01-15 17:46
399 查看
问题:有个应用程序一运行就崩溃,现在你拿到了源码。在调试器中运行10次之后,你发现该应用每次崩溃的位置都不一样。这个应用只有
一个县城,并且只调用C标准库函数。究竟是什么样的变成错误导致程序崩溃?该如何逐一测试每种错误?
分析:可能是没有内存了,任意地方都会崩溃。采用二分法,先把断点打在程序代码一半位置处,如果在前半段崩溃,就在前半段中取中间位置继续打断点;
否则,在后半段继续取后半段中间位置,打印断点。不断缩小奔溃范围。
关键:
1 此题目的头脑风暴,给出有条理的建议和处理。
2 可能是:随机变量,未初始化变量,内存泄漏等,通过消除法尝试,关闭其他应用,逐一排查是否其他原因。
运行时工具检查未初始化变量
一个县城,并且只调用C标准库函数。究竟是什么样的变成错误导致程序崩溃?该如何逐一测试每种错误?
分析:可能是没有内存了,任意地方都会崩溃。采用二分法,先把断点打在程序代码一半位置处,如果在前半段崩溃,就在前半段中取中间位置继续打断点;
否则,在后半段继续取后半段中间位置,打印断点。不断缩小奔溃范围。
关键:
1 此题目的头脑风暴,给出有条理的建议和处理。
2 可能是:随机变量,未初始化变量,内存泄漏等,通过消除法尝试,关闭其他应用,逐一排查是否其他原因。
运行时工具检查未初始化变量
相关文章推荐
- 程序员面试金典——解题总结: 9.12测试 12.6在一个分布式银行系统中,该如何测试一台ATM机?
- 程序员面试金典——解题总结: 9.12测试 12.3如何测试国际象棋程序中的移动方法?
- 程序员面试金典——解题总结: 9.12测试 12.5如何测试一支笔?
- 程序员面试金典——解题总结: 9.12测试 12.4不借助任何测试工具,该如何对网页进行负载测试。
- 程序员面试金典——解题总结: 9.18高难度题 18.9随机生成一些数字并传入某个方法。编写一个程序,每当收到新数字时,找出并记录中位数。
- 程序员面试金典——解题总结: 9.18高难度题 18.3编写一个方法,从大小为n的数组中随机选出m个整数。要求每个元素被选中的概率相同。
- 程序员面试金典——解题总结: 9.17中等难题 17.9设计一个方法,找出任意指定单词在一本书中的出现频率
- 程序员面试金典——解题总结: 9.18高难度题 18.4编写一个方法,数出0到n(含)中数字2出现了几次
- 性能测试新手常犯错误总结(五):如何提出一个好的性能问题
- MAC应用 如何连续在一个文件里面追加字符串( NSFileHandle定位到文件末尾)
- 程序员面试金典——解题总结: 9.18高难度题 18.6设计一个算法,给定10亿数字,找出最小的100万个数字。假定计算机内存足以容纳全部10亿个数字。
- 程序员面试金典——解题总结: 9.17中等难题 17.6给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n - m越小越好,也就是说,找出
- 程序员面试金典——解题总结: 9.17中等难题 17.12设计一个算法,找出数组中两数之和为指定值的所有整数对。
- 程序员面试金典——解题总结: 9.17中等难题 17.3设计一个算法,算出n阶乘有多少个尾随0
- 空间管理 您的位置: 51Testing软件测试网 » lilisx2006的个人空间 » 日志 在一个没有测试经理的小公司如何做好测试
- 程序员面试金典——解题总结: 9.18高难度题 18.2编写一个方法,洗一副牌。要求做到完美洗牌,换言之,这副牌52!种排列组合出现的概率相同
- 程序员面试金典——解题总结: 9.18高难度题 18.7给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成。
- 程序员面试金典——解题总结: 9.17中等难题 17.4编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。
- flash与游戏笔记:如何定位一个资源位置?
- 《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--一个WEB应用的目录结构以及如何发布WEB应用