首页 > 其他分享 >《代码大全》阅读笔记04

《代码大全》阅读笔记04

时间:2023-10-30 21:45:59浏览次数:30  
标签:错误 04 代码 笔记 开发者 测试 缺陷 调试 大全

六、代码改善
1.软件质量的普遍原理就是改善质量以降低开发成本。

2.提高生产效率和改善质量的最佳途径就是减少花在代码返工上的时间,无论返工是由需求、设计改变还是调试引起的。

3.结对编程,通过复查可以快速地将所有开发者的水平提高到最高优秀的开发者的高度。

七.开发者测试
1.白盒测试指的是测试者清楚对象内部工作机制的测试,测试自己开发的程序应该使用这种测试方式。

2 测试的特性:

测试的目标与其他测试活动背道而驰,测试的目的是找出错误。
测试永远不可能证明程序中彻底没有错误。
测试的结果是软件质量的一个指示器,但是测试本身并不能改善软件质量,这种妄想就像天天通过称体重来减肥一样。假如希望改进你的软件质量,仅用更多的测试是没用的,你需要的是更高质量的开发。
3 推荐开发者的测试方式

对每一项相关的需求进行测试,以确保需求都已经被实现;
基础测试和数据流测试;
使用一个检查表,记录你在本项目中迄今为止所犯的,以及在过去的项目中中所犯的错误类型,这有助于“猜测错误”的准确性;
推荐测试先行。
4 测试技巧锦囊

结构化的基础测试
需要去测试程序中的每行代码至少一次。
所需基础测试最少用例数量的计算方式:
对通过子程序的直路,开始记为1;

遇到以下关键字时,加1,比如:if,and,or,while,repeat,for;

遇到每个case语句,加1,如果case语句没有默认语句,再加1.

5.测试数据生成器

为了系统的对程序的某些部分进行测试,你可能会写一些代码。
正确设计的测试数据生成器能产生意想不到的、不寻常的测试用例;
比起手工构造测试数据,数据生成器能够更加彻底地对程序进行测试。
八、调试
①关于调试

理解你正在编写的程序;
明确你犯了那种类型的错误;
从代码阅读者的角度分析代码质量;
审视自己解决问题的方法,花点时间来分析并改善你的调试方法,可能就是减少程序开发时间的最好方法;
审视自己修改正缺陷的方法。
②寻找缺陷步骤

把错误状态稳定下来,也就是能让缺陷稳定的重现,这几乎是最有挑战的工作之一;
确定错误的来源;
修补缺陷;
对修补的缺陷进行测试;
查找是否还有类似的错误。
③修复缺陷

在动手之前先要理解问题,知道你能真正理解问题,每次都能正确地预测结果为止;
理解程序本身,而不仅仅是问题;
验证对错误的分析;
放松一下;
保存最初的源代码,至少你能对新旧代码进行比较,看到底改了哪些地方;
治本,而不是治标;
修改代码时一定要有恰当的理由;
一次只做一个改动;
检查自己的改动;
增加暴露问题的单元测试;
搜索类似的缺陷,如果你想不出如何查找类似缺陷,这就意味着你还没有完全理解问题。
④调试工具

源代码比较工具;
编译器的警告信息,把编译器的警告级别设置为最严格;
增强的语法检查和逻辑检查;
执行性能剖测器;
测试框架;
调试器;

————————————————
版权声明:本文为CSDN博主「Peter_Gao_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42672770/article/details/111027944

标签:错误,04,代码,笔记,开发者,测试,缺陷,调试,大全
From: https://www.cnblogs.com/2351920019xin/p/17798922.html

相关文章

  • 阅读笔记1
    《代码整洁之道》读书笔记第一章:整洁代码整洁的代码读起来令人愉悦;糟糕的代码引发混乱!别修改糟糕的代码时,往往会越改越烂;完善错误处理代码,在细节上话心思;整洁的代码只做好一件事,糟糕的代码想做太多事,它意图混乱,目的含混。GradyBooch观点:整洁代码简单直接,整洁的代码如同优美......
  • 阅读笔记2
    第二章:有意义的命名名副其实:选一个好名字要花时间,但省下来的时间比花掉的多。注意命名,而且一旦发现有其他更好的名称,就换掉旧的。避免误导:必须避免留下掩藏代码本意的错误线索。应当避免使用与本意相悖的词。做有意义的区分:不要定义,没有提供正确信息,没有提供导向作者意图的线......
  • 实验三 计算机九班周天意202383290419
    一、实验目的1.能正确使用c语法规则定义、声明、调用函数2.能正确编写递归函数3.针对具体问题场景,能合理抽象出独立的功能模块,正确定义函数并使用,使得代码更具可读性、可维护性4.针对具体问题场景,能正确、合理使用全局变量和局部static变量,解决实际问题二、实验准备实验前......
  • mall学习笔记(7)
    1.使用mybatis插入失败了,开个log:application.ymllogging:level:com.example.demo.mbg.mapper:trace观察log,发现手动输入的json格式有问题,那没事了。2. @PathVariable映射URL绑定的占位符通过@PathVariable可以将URL中参数传到处理方法的中 小程序端:换......
  • 学习笔记8
    第5章定时器及时钟服务1.个人计算机定时器定时器原理定时器是一种硬件或软件设备,用于在指定的时间间隔内产生时间戳或触发事件。在个人计算机中,定时器分为两类:实时定时器和普通定时器。实时定时器用于精确地控制实时任务,而普通定时器则用于一般性的事件控制。定时器驱动程序......
  • 第二章读书笔记
    03运行超市抹零结账行为a=float(input("商品的价格:"))print("商品总金额:",int(a))print("学号后四位:3022")   运行结果:   04计算学生成绩的分差和平均分A=96B=92C=88D=A-CE=(A+B+C)/3print("A科目和B科目的分数之差为:"+str(C)+"分\n")print("三门科......
  • 第二章读书笔记
    22信计1班廖晟崴学号2022310143023 03运行超市抹零行为a=float(input('扫描的第一个商品价格:'))b=float(input('扫描的第二个商品价格:'))c=float(input('扫描的第三个商品价格:'))d=a+b+cprint('总计:',int(d))运行结果  04计算学生成绩的分差和平均分#输入......
  • Ubuntu18.04安装mysql5.7.27
    步骤如下:1.获取mysql-apt-config工具wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.11-1_all.deb2.安装config工具第一项点进去选择5.7(默认是8.0)dpkg-imysql-apt-config_0.8.11-1_all.deb3.更新源sudoapt-getupdate4.安装mysqksudoapt-getinstallmysql-server......
  • openGauss学习笔记-110 openGauss 数据库管理-管理用户及权限-Schema
    openGauss学习笔记-110openGauss数据库管理-管理用户及权限-SchemaSchema又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的Schema下而不引起冲突。每个数据库包含一个或多个Schema。......
  • [学习笔记]扩展域并查集
    扩展域并查集可以维护类似于P1892[BOI2003]团伙的题目。题目中有两种关系:朋友和敌人,并规定一个人的朋友的朋友是朋友一个人的敌人的敌人是朋友引入反集的概念,例如有三个人\(a,b,c\),他们的反集为\(a',b',c'\)。如果\(a,b\)为敌人,连接\(a,b'\)和\(a',b\);如果\(a,......