文档章节

程序自测

山野痞夫
 山野痞夫
发布于 2015/12/23 11:36
字数 846
阅读 15
收藏 0

程序自测

1.程序自测的目的

开发自测和测试的侧重点是不一样的,开发自测不是为了替代测试的工作,而是在提交测试之前,尽可能找到可能存在的bug,从而降低修复成本

2.开发之前需要做的

  • 首先对业务场景一定要弄清楚,有哪些场景会调用将要编写的这段代码;
  • 其次对上面的业务场景哪些没有把握,这个是后面要重点自测的;
  • 最后需要从代码上考虑各种分支、异常情况,做到一切都在我的掌控中。

可以做个List,等开发完成时,重点测试开发时的问题

3.代码审查

开发之后要对自己的代码进行审查(用bug的分级模式标注)

  1. 常规项(Major)
    • 代码有没有报错?
    • 代码能够工作么?有没有实现预期的功能,逻辑是否正确等。
    • 所有的代码是否简单易懂?
    • 代码符合你所遵循的编程规范么?这通常包括大括号的位置,变量名和函数名,行的长度,缩进,格式和注释。
    • 是否存在多余的或是重复的代码?
    • 代码是否尽可能的模块化了?
    • 是否有可以被替换的全局变量?
    • 是否有被注释掉的代码?
    • 循环是否设置了长度和正确的终止条件?
    • 是否有可以删除的日志或调试代码?(删除之前一定确认,是否存在依赖关系)
  2. 安全项(Major)
    • 检测是否存在编码问题(检查是否存在乱码)?
    • 无效的参数值是否能够处理?
    • 检查数据输入不合法或者边界值的情况,对程序的影响(检测正确的类型,长度,格式和范围)?
    • 检查一起执行的方法是否包含在同一个事务?包含分布式的事务?
    • 考虑是否存在并发的问题?
    • 在哪里使用了第三方工具,返回的错误是否被捕获?
  3. 代码规范(Trivial)
    • 是否有注释,并且描述了代码的意图?
    • 所有的函数都有注释吗?
    • 对非常规行为和边界情况处理是否有描述?
    • 第三方库的使用和函数是否有文档?
    • 是否有未完成的代码?如果是的话,是不是应该移除,或者用合适的标记进行标记比如‘TODO’?
  4. 代码优化(Trivial)
    • 性能方面的考虑
    • 重复代码方面的考虑

4.功能测试

可以在测试的测试用例中选取正常流程的测试用例,测试当前功能是否正常工作,输出值是否符合预期

开发阶段的时间毕竟是很有限的,特别是做小需求和升级版的时候更是如此,开发同学不可能也不能像测试那样先列出用例,再一个个执行。开发自测要做的是从代码角度有重点地测试,有所测,有所不测。

资料搜集于网络

© 著作权归作者所有

共有 人打赏支持
山野痞夫

山野痞夫

粉丝 9
博文 15
码字总数 16947
作品 0
昌平
高级程序员
关于微信小程序开发的一些细节

自张小龙推出一种新的应用号形态——微信小程序,业内一片哗然。英趣科技作为微信小程序开发公司,下面为大家分析一下微信小程序从内测到正式对外公测中的一些细节: 一、微信小程序为什么箭...

英趣科技
2016/12/09
19
0
beSTORM网络协议之Fuzz入门教程

  本文将以SNMP协议为例介绍如何使用beSTORM进行网络协议Fuzz。   实验环境   Windows 7 X64 (IP:192.168.0.123)   beSTORM 3.7   被测机器:Centos (IP:192.168.0.120)   ...

FreeBuf
06/05
0
0
叫板微信小程序?支付宝小程序可以申请公测啦

今天极乐君在支付宝开放平台发现一个重磅消息:支付宝小程序可以申请公测啦! 接下来极乐君带大家一起体验如何申请公测资格。 一、进入支付宝开放平台 https://open.alipay.com/channel/mini...

rolanly
2017/08/18
1K
19
微信小程序开放公测,企业、政府及媒体可申请

11 月 3 日晚间,微信团队对外宣布,微信小程序开放公测,开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间暂不能发布。 根据微信团队的介绍,开放注册范围为企业、政府、媒...

局长
2016/11/03
3.4K
15
性能测试概念

性能测试:在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求。负载测试:通过测试喜用现在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。压力测试:指被...

327051661
2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

gson1.7.1线程并发导致空指针问题

java.lang.NullPointerExceptionat com.google.gson.FieldAttributes.getAnnotationFromArray(FieldAttributes.java:231)at com.google.gson.FieldAttributes.getAnnotation(FieldAttribut......

东风125
34分钟前
1
0
以太坊RPC接口使用

以太坊RPC接口文档: https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversion 使用方式: 比如我要调用某个合约的balanceOf(address _owner)方法。 因为没有改变合约的状态,所以...

王坤charlie
今天
2
0
C#下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

sxtwl_cpp是寿星天文历的C++版本实现。支持多种语言的绑定 代码首页 懒人包 懒人包使用方法 1、右链工程中的引用-》添加引用-》浏览-》选中dotnet目录下的sxtwl.net.dll 2、生成解决方案-》找...

元谷
今天
1
0
C++基础知识

链接:https://zhuanlan.zhihu.com/p/38399566 本文主要提一下以下三个区别: 引用必须初始化,而指针可以不初始化。 我们在定义一个引用的时候必须为其指定一个初始值,但是指针却不需要。 ...

悲催的古灵武士
今天
1
0
Oracle备份脚本,保留10天数据

@echo off echo 删除10天前的备分文件和日志forfiles /p "D:\oracleback\backfile" /m *.dmp /d -10 /c "cmd /c del @path" forfiles /p "D:\oracleback\backfile" /m *.log /d -10......

lyle_luo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部