更多课程 选择中心

软件测试培训
达内IT学院

400-111-8989

软件测试老司机10年找Bug,只为重整河山!


软件测试老司机10年找Bug,只为重整河山!

作为一名软件测试工程师,一遍遍地检查Bug,只为将每个软件最完美地呈现给大家,即使是在烂的不能再烂的摊子上也要重整河山,这是每一位软件测试工程师的伟大!但你知道作为一名软件测试工程师要经过码畜、码农、码人、码神四个阶段的历练,才能浴火重生吗?

一.码畜:靠编译器帮自己查语法错误

消灭笔误:编写适合程序猿的键盘练习

if (常量==变量或表达式)

使用goto接力超长的if,switch

连续的if还是if elseif

多个条件的组合:精心的排版

多重括号的匹配

条件编译

各种const:不要纠结各种常量了,这个世界上唯一不变的就是变化。用APIWriteProcessMemory还能改动正执行的其他进程的内存里面的所谓常量呢!

查看宏展开后的.i文件:VC编译选项加/EP /P(项目、属性、配置属性、C/C++、预处理器、预处理到文件:是,预处理取消显示行号:是),又一次编译。查看宏展开后相应的.i文件。gcc加-E

偶遇到莫名其妙的编译错误都是用“每次用/*...*/或#if 0...#endif凝视掉不同部分再又一次编译,直到定位到详细语法出错的位置。”的方法解决的。

附加包括路径、附加库路径、附加依赖库的设置。

二.码农:靠调试器帮自己查逻辑错误

for/while语句后多余的分号

while/do while语句在语义上的歧义

条件断点

消息断点

数据断点

__asm int3或DebugBreak()断点

在内存窗体中观察数据的原始字节形态

Call Stack:崩溃的时候在弹出的对话框按相应button进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的相应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

“给定一个小点的输入。完整单步跟踪(同一时候按Alt+7键查看Call Stack里面从上到下列出的相应从里层到外层的函数调用历史)一遍。

”是理解递归函数工作原理的不二法门!

递归函数关注下面几个因素

· 退出条件

· 參数有哪些

· 返回值是什么

· 局部变量有哪些

· 全局变量有哪些

· 何时输出

· 会不会导致堆栈溢出

语法糖越甜。编译调试查错越苦!

C++的隐藏调用:单步类的实例“构造”或“复制”或“作为函数參数”或“作为函数返回值返回”或“參加各种运算”或“退出作用域”的语句相应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”相应的C/C++源码处。

任务管理器、VMMap、Process Monitor、Process Explorer、GDI泄露检測工具、……

三.码人:靠写日志帮自己查运营错误

CrashDump或Core的无力。

PDB的无力。

线上Debug的无力。

观察复杂数据的无力。

多线程调试的无力。

调试时序高度依赖代码的无力。

调试万年一遇非法数据的无力。

有时不将“调用函数名字+各參数值,进入函数后各參数值,中间变量值,退出函数前准备返回的值,返回函数到调用处后函数名字+各參数值+返回值”这些信息写日志到文件里是不管怎样也发现不了问题在哪里的。包含捕获各种异常、写日志到屏幕、单步或设断点或生成core或dmp文件、……这些方法都不行!

四.码神:靠冥想和顿悟帮自己查不可再现错误

假死的各种原因:

· 控制循环的变量的取值范围有符号/无符号,==/<=

· 控制循环的变量没变

· 控制循环的变量被外部程序改动

· 各种资源泄露

· 死锁

· 网速变慢或网络资源耗尽或网络时通时断

· 权限、UAC、杀毒软件实时防护

· 操作系统或软件自己主动升级

· 以为系统时间不可逆

· 以为系统时间相关变量不会溢出(GetTickCount()约49.7天就归0了!

)

· ……

作为找了10年Bug的软件测试工程师,我也不能优雅的结束每一次测试工作,但无论是多么多的Bug,多么多的问题,我也要将这片河山整理到尽善尽美!也许后生可畏,希望你攀登软件测试的顶峰,到达神一样的级别!听说达内软件测试培训班还不错,想入行、想提升,都是不错的选择,加油吧,少年!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:做软件测试怎么能不知道软件测试的方法有哪些?
下一篇:通过八种软件测试技巧,让你玩转端到端的移动测试

你知道吗?做软件测试不一定需要精通代码!

软件测试人员不需要懂代码,这是一个伪命题!

如何设计登录测试的设计用例?

软件测试必备的数据库知识有哪些?(终)

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

陕西省

湖南省

贵州省

云南省

广西省

海南省