`

开发自测的原则

    博客分类:
  • Java
阅读更多

我是一名开发

在咱们开发的时间中,其实coding的时间所占比例大概为30%,大部分时间都在自测和改bug

但是许多新人觉得coding才是最重要的,而且把大部分精力花在coding上,其他的(自测,改bug,重构)不太重视

自测和改bug,归根结底就是解决问题.

解决问题的第一步,就是了解问题的现象,这是前提.

所以我们解决bug时,经常提到的一个词就是"重现bug",不能重现的bug,我们是没法改的.

那么重现bug之后,我们应该做些什么呢?

有的人一上来不管三七二十一就去看代码!这太冲动了!

因为有可能根本不是代码的问题!

比如可能是url地址不对,或者传入的参数不对,或者服务器压根没有启动,或者断网了,等等

所以看代码只是最后没办法的行为.看代码是最后一步.

 

那么不马上看代码,我们要做什么呢?

首先,我们要排除最基本的错误:

(a)url 地址是否正确

(b)参数是否正确,是否缺少参数

(c)端口号是否正确

(d)使用的协议是http还是httpS

(e)服务器是否已启动(服务器状态对不对)

(f)运行的git分支是否正确(本来是在develop上修改的,结果运行的是master分支)

(g)网络环境是否正确,是集测,仿真,还是线上

 

然后,猜测可能的原因,把最有可能的原因列出来,然后按照优先顺序验证

 

再次,采用单一项原则,保证只有一个因素是变量,其他因素都排除掉或者定死.

 

还有一个原则:能细粒度测试的就细粒度测试

什么意思呢?

比如在一个项目里面有个bug,然后你也定位了bug相关的代码

那你怎么解决呢?

一般的新人,就会运行整个项目,搭建环境,启动tomcat,从注册开始,一步步执行下去....

其实就为了验证其中一个很小很小的环节.

所以这种方法可行,但是成本非常高.

如果是我,会怎么做呢?

我绝对不会运行整个项目,而是把bug相关的代码摘出来,然后建一个非常简单的页面或非常简单的工程来研究.

这样有3个好处:

(1)避免了不相关模块的影响

(2)速度快,因为我只是一个页面或者一个非常简单的项目(随手创建的)

(3)符合单一项原则

 单一项原则,请参看:

http://hw1287789687.iteye.com/blog/2213879

下面列举几个实际经历的案例 

(a)前几天,测试同学说在IE9中下单页显示有问题,服务项单位没有显示云云.

于是我让静态页面同学去看,我并没有马上去.

过了一会儿,我去了测试同学那里,静态页面同学说,有个样式得改.

我让她起来,我来看下.

我打开IE 的开发者界面(按F12),看浏览器,发现浏览器的文档模式是IE7.

问题解决:咱们压根不支持IE7

 

(b)做T+捆绑时,为了改个东西,给一个DTO增加了有参的构造方法,但是没有加上 无参构造方法,当时觉得没有必要.

然后测试同学就给我报了bug,订单列表报错

后来,我一步步排查,发现是我增加了有参数的构造方法导致的.

因为DTO 反序列化时需要无参构造方法

 

参考:http://www.tuicool.com/articles/nA3aeyn

 

 

 

 

1
0
分享到:
评论

相关推荐

    软件开发的201个原则完整版.pdf

    软件开发的201个原则完整版.pdf 软件开发的201个原则是软件开发领域的重要文献,旨在总结和提炼软件开发的基本原则和最佳实践。本书共分为20章,涵盖了软件开发的各个方面,包括质量管理、开发效率、客户沟通、项目...

    敏捷软件开发原则、模式与实践.pdf

    这本书自出版以来,就被视为敏捷开发领域内的经典之作,对于软件开发人员、项目经理以及软件项目领导者来说,它提供了实用的指导和解决方案,帮助他们应对在预算和实践要求下完成项目的挑战。本书对于极限编程(XP)...

    软件开发的201个原则 -- 中文版.zip

    在软件开发领域,遵循一定的原则和最佳实践是提高效率、保证质量、确保项目成功的关键。《软件开发的201个原则》是一本为程序员、项目经理以及任何参与软件开发过程的人提供指导的宝贵资源。这本书涵盖了从设计到...

    软件开发的201个原则v1.3.pdf

    ### 软件开发的201个原则 #### 一、概述 《软件开发的201个原则》是一本全面阐述软件开发过程中应当遵循的原则性指导书籍。该书内容丰富,覆盖了从项目启动到交付的各个阶段,旨在帮助软件开发团队提高产品质量、...

    dubbo实例—自测好用

    本篇将深入探讨如何利用Dubbo进行服务化改造,并以“dubbo实例—自测好用”为例,分享实际操作中的关键知识点。 1. **Dubbo简介** Dubbo的核心功能包括服务注册与发现、远程调用、负载均衡、容错与隔离等。它通过...

    Vue.js前端开发实战-自测卷.rar

    这个"Vue.js前端开发实战-自测卷.rar"压缩包文件显然是一份教学资料,包含了帮助开发者检验和提升Vue.js技能的自测卷。自测卷通常包括一系列问题和练习,旨在测试和巩固学习者对Vue.js核心概念、组件系统、响应式...

    03小学算数自测系统_项目设计报告 1

    本项目设计报告主要针对“03小学算数自测系统”,旨在构建一个适合K12阶段,特别是小学阶段学生的算数自主学习与测试平台。该系统旨在提高小学生对基本算术运算的理解与应用能力,同时为教师提供教学辅助工具,使...

    软件工程自测题与答案

    这份名为"软件工程自测题与答案"的文档集合提供了一个宝贵的资源,帮助学习者检验自己对软件工程核心概念的掌握程度。以下是对文档中可能包含知识点的详细解读: 1. **名词解释**: - **软件工程**:是应用系统化...

    数据结构自学辅导(自测题及其答案)

    这份"数据结构自学辅导(自测题及其答案)"压缩包文件为学习者提供了全面的资源,帮助深入理解并掌握数据结构的关键概念。 首先,我们要明白数据结构的基本类型,包括数组、链表、栈、队列、树、图等。数组是一种...

    JAVA在线考试自测系统,毕设源码+sql

    这个项目是一个基于Java开发的在线考试自测系统,通常用于毕业设计或教学实践。源码的提供使得学习者可以深入理解系统的实现细节,了解如何构建此类应用。系统可能包含用户管理、试题库管理、考试创建与管理、成绩...

    《数据结构》客观题自测平台的设计与实现.pdf

    了解和掌握JavaWeb技术是开发此类自测平台的基础,尤其对于Web应用的服务器端开发而言,JavaWeb是常用的技术之一。 5. 平台需求分析和功能设计:自测平台需要具备的功能,如题库管理、试卷管理、自动组卷、错题记录...

    敏捷软件开发:原则、模式与实践(带书签+源码)

    《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念和技术的权威著作,由业界知名专家Robert C. Martin(简称Uncle Bob)撰写。这本书不仅提供了丰富的理论知识,还结合实际案例,深入浅出地介绍了如何...

    敏捷软件开发:原则、模式与实践

    《敏捷软件开发:原则、模式与实践》是软件开发领域一本经典的著作,它深入探讨了敏捷开发的方法、理念以及在实际工作中的应用。本书对于新手来说,是一本极佳的入门指南,它不仅介绍了敏捷开发的基本概念,还通过...

    敏捷软件开发原则、模式与实践第19章C++源码

    在本资源中,我们主要探讨的是敏捷软件开发的原则、模式与实践,特别是在C++编程语言中的应用。这一主题源于《敏捷软件开发》一书的第19章,该章节通过一个具体的薪水支付案例来阐述敏捷开发的方法。在这个案例中,...

    敏捷软件开发原则 模式与实践 c#源码

    《敏捷软件开发原则、模式与实践》是一本深入探讨敏捷开发方法论的著作,它强调在快速变化的需求和不确定性中,如何高效地进行软件开发。C#源码的提供为读者提供了实际操作的可能,帮助理解理论在实际项目中的应用。...

    敏捷软件开发:原则、模式与实践(全部)

    《敏捷软件开发:原则、模式与实践》是敏捷开发领域的一部经典著作,全面而深入地探讨了敏捷方法的核心理念、关键原则、实用模式以及实践经验。这本书由Robert C. Martin撰写,他是一位知名的软件工程师和敏捷开发的...

Global site tag (gtag.js) - Google Analytics