文档章节

程序自测

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

程序自测

1.程序自测的目的

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

2.开发之前需要做的

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

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

3.代码审查

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

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

4.功能测试

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

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

资料搜集于网络

© 著作权归作者所有

共有 人打赏支持
山野痞夫

山野痞夫

粉丝 9
博文 15
码字总数 16947
作品 0
昌平
高级程序员
私信 提问
叫板微信小程序?支付宝小程序可以申请公测啦

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

rolanly
2017/08/18
1K
19
关于微信小程序开发的一些细节

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

英趣科技
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
微信小程序开放公测,企业、政府及媒体可申请

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

局长
2016/11/03
3.5K
15
支付宝小程序正式上线公测 附开发者工具和开发文档

支付宝小程序正式进入公测阶段,开发者可以申请公测了。支付宝小程序是一种全新的开放模式,它运行在支付宝客户端,可以被便捷地获取和传播,为终端用户提供更优的用户体验。小程序开放给开发...

ytkahcom
2017/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【Flutter教程】从零构建电商应用(一)

在这个系列中,我们将学习如何使用google的移动开发框架flutter创建一个电商应用。本文是flutter框架系列教程的第一部分,将学习如何安装Flutter开发环境并创建第一个Flutter应用,并学习Flu...

笔阁
15分钟前
1
0
什么是以太坊DAO?(三)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 投票支付合约的所有费用和行动需要时间,并要求用户始终保持活跃,知情和专注。另一...

geek12345
17分钟前
0
0
一个本科学生对Linux的认知

一个本科学生对Linux的认知 我是一名大三的普通一本大学的软件工程的一名学生,学校开设了一些关于系统开发的课程,纸上得来终觉浅,学校的课程课时较短,想要在56个课时之内学会一些公司需要...

linuxCool
59分钟前
2
0
CentOS 安装Tomcat

Tomcat 介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Java 程序写的网站用tomcat+jdk来运...

野雪球
今天
1
0
OSChina 周四乱弹 —— 每天都迟到是种什么样的体验

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席机器人 :《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 ...

小小编辑
今天
709
12

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部