大家好,我是IT修真院北京总院第21期的学员杨梦桐,今天这篇文章主要总结如何验证程序是否完成,测试以及修复bug
1. 背景介绍
在日常中,我们码代码都是按照需求来的,为了验证我们验证我们的工作成果符合我们的项目需求,那么验证程序是否完成、测试以及修复bug就成了我们工作中非常重要的流程。
2. 知识剖析
在实际的开发中,最重要的一点是,首先,确定程序是否完成,关于判断程序已经完成,经过讨论,我们想到了如下几点
a. 从需求的角度看:满足用户的全部需求。这是最基本的一点,如果开始了一个项目开发,对整个项目进行架构和逻辑梳理之后,需要将所有的需求都完成。
b. 从程序的角度看:代码不存在明显bug,结构明晰,逻辑通顺,有一定的优化。用户使用时的优化是必须要进行考虑的,比如懒加载的应用等。
c. 从UI图的角度看:较为完美的还原了UI图的设计。
d. 从后期版本维护迭代的角度看:注释完备,稳定性好,不加班的代码就是好代码。代码稳定性好,加班的情况就会显著降低,注释完备,一方面是为了让自己返回过来看原来的代码时可以快速的梳理思路,另一方面也是给合作开发增添了很多助力。
验证代码完成,接下来的部分就是测试
测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
总结常用软件测试的方法如下
a. 按照测试范围,可以分为模块测试和整体联调。
b. 按照测试条件,可以分为正常操作情况测试和异常情况测试。
c. 按照测试的输入范围,可以分为全覆盖测试和抽样测试。
接下来我们来具体分析测试方式之间的区别
a. 模块测试:针对设计中的一个一个模块来进行测试的,目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又被称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。
b. 整体联调:测试模块间接口的正确性、各模块间的数据流和控制流是否按照设计实现其功能、以及集成后整体功能的正确性。
除此之外,还有正常操作情况测试和异常情况测试。
a. 正常操作情况测试:根据正确的操作流程对单独的模块或整体进行测试,确定被测对象可以良好运行。
b. 异常情况测试:异常情况,可能会包括数据库异常,系统异常,用户异常操作等情况。它具有如下几个特性。
aa. 成熟性:软件产品要避免由软件中错误而导致失效的能力。
bb. 容错性:在软件失效或者违反规定的接口的情况下,软件产品维持规定的性能级别的能力。
cc. 易恢复性:在发生故障的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力。
dd. 可靠性依从性:软件产品依附于同可靠性相关的标准、约定或规定的能力
最后,还可区分为全覆盖测试和抽样测试。
a. 全覆盖测试:对于被测对象全面,整体,多维度的测试,受限于时间和人力成本,除非被测对象级别很高,不然不会采用这种测试方式。
b. 抽样测试:针对功能及模块随机抽取被测对象。
3. 常见问题及解决方案
经过这么多测试方法,接下来需要面对的问题就是,如何debug。
而一个常用的方式就是:断点调试。
用chrome浏览器打开页面 → 按f12打开开发者工具 → 打开Sources → 打开你要调试的js代码文件 → 在行号上单击一下,这就是断点调试。
打好断点,刷新页面,点击下一步,就可以很明确的看出来实际上的运行过程,这是调试js代码的一个十分明确的方式。
4. 扩展思考
在这些问题之后,就是“如何尽量减少代码bug。”
减少代码的bug,最主要的是在敲代码之前就明确自己编程的思路,捋顺逻辑。
ppt :https://ptteng.github.io/PPT/PPT/js5http.html#/
视频:https://v.qq.com/x/page/x0529cdyacs.html
问题讨论
1. 有chrome自动断点调试jquery代码的现象
传入的参数不合法,可能到导致 jquery 中的代码执行异常,如果开启了“异常时自动断点”,就有可能自动跳到jquery里,可以设置blackbox script 的功能来忽略 jquery 中的断点。
2. 抽样测试的概念还是不够理解
对整体项目随机抽取任意模块进行功能和代码的测试
3. 代码的容错性是什么意思?
比如sessionstorage,localstorage,cookie的具体应用,要考虑它们实际上在什么情况下进行应用,如何清除这几种缓存
网友评论