文档章节

CodeDiff手册

AwesomeQA
 AwesomeQA
发布于 2017/08/24 13:51
字数 1708
阅读 24
收藏 0
点赞 0
评论 0

一 前提:

    对系统结构、数据流完整的了解;

    对业务需求的了解;

    对该需求的设计实现了解。

二 目标:

    1.找出测试功能点

    2.发现业务漏洞

    3.发布步骤

三 注意事项:

    1. 业务是否如实在代码中实现(不管对错)

        a. 是否符合设计,代码改多了?改少了?有捎带手更改其他功能的?

        b. 逻辑是否都是完整闭合的(即,能按照完整流程图实施,考虑所有异常分支,要多想else是否缺了)

        c. 需要考虑下是否需要增加部分业务监控 (通常不方便进行测试的业务场景,除了添加监控也需要想想如何执行测试)

    2. 日志、业务监控的添加是否完整

        a. 监控通常分为系统监控和业务监控,在diff时需要与参与diff的开发充分讨论哪些事件发生是需要技术/运营 实时知道或每隔一段时间都需要了解状态的

            a.1 系统监控:通常虚机提供时,op就已经将常用系统监控加上了----cpu、load、内存、流量等

            a.2 业务监控:通常在关键业务节点上添加,比如常见的接口调用次数、响应时长、任务成功/失败监控 等

       b. 日志分为不同级别:(这是上线前和上线后都必须看的)

           b.1 业务日志:可以在考虑为了验证系统的功能模块是否正常而添加只在debug和测试环境在输出的日志;线上日志需要考虑写入数据量、保留/清理时间、磁盘io问题

           b.2 异常日志:需要在diff过程中明确catch住可能存在异常的部分;如果是正常业务的异常分支,那么就需要有明确的业务输出或记录,而不是抛出exception

    3. 代码层面

        . sql改了,有哪些功能受影响?修改sql需要克隆线上非敏感数据进行验证。

        . 某个类中的方法改了,需要确认该类的方法在 当前工程中被调用的地方,一层一层直到找到对应可进行验证的UI或系统功能。

        . 如果是Provider服务改了,无论是否接口发生变更,必须要到tc的服务治理平台上找到对应的消费方,并通知相关部门人员找出调用该服务的代码、业务场景,并给出测试结果。

        . 某个数据对象改了, 需要找到该数据对象被用在哪些地方,验证其展示、存储、对对外接口的影响;尤其考虑模块下游是否有影响,是否也应该做相应的变更。

        . 对某个数据对象进行处理,需要考虑数据对象的来源是哪里,数据包含哪些类型和信息,从中选取各种数据类型进行测试,避免测试遗漏。

        . 对于部分更改,也许在功能中无法/不方便实际验证(比如异常处理),至少需要知道逻辑是正确的,以及建议单元测试 或在开发本地通过设置断点更改输入项的方式进行验证。如:链接是否因为数据量过大会释放?

        . 提示语、邮件内容、短信内容 等文案的更改,需要根据需求进行比对文字,并通读文字是否畅通 及包含错别字;需要考虑是否更改完整了,有没有可能其他提示语也应当更改但是 需求没提 或开发漏改了

        . js/css改了,需要在工程中找到被引用的页面,需要在多浏览器进行验证

        . 模板(页面、短信、邮件)改了,需要知道是否需要重新生成旧页面以替换线上页面,需要多浏览器验证

        . for,while循环,要检查好退出条件,避免死循环,检查好循环内是否有调用方法,评估调用外部系统的性能。

        . 代码的基本规范是否满足.比如:日志规范、db连接、 前端调用的域名,代码对异常、超时相关的处理,是否输出相关日志

        . 新写代码是否重复造轮,是否有必要重写

        . 关注代码中出现的注释,注释中可能会提到特殊的测试场景、遗留bug等,涉及对应逻辑修改时要有对应的case回归测试

        ....请大家补充....

    4. DB设计是否合理

        0. 所有数据库操作都需要加try catch对异常捕捉。

        a. 字段、索引的设计(要确认属性设计是否合理,新增的“非空字段”需要确认默认值以及跟写入该表有关的业务回归),如字段长度是否足够实际使用

        b. 新旧数据的处理、兼容

        c. 大表的查询,是否走了索引,这样加索引是否正确

        d. 数据库的表结构能承受多大的数据库?

        e. 对于sql的变化,需要比对字段顺序、where 条件等,需要考虑sql执行时间、执行数量

        f. 合并一些相同的sql语句,提高执行效率已经减少锁表次数,如:对同一个表的多个字段修改可以合并为一条sql,不要写成多个sql,这样可以减少锁表次数和提高执行效率.但同时可能造成sql处理时间过长。

    5. 配置相关测试

        a.线上线下环境是否不一样?

    6. 对系统结构的测试

        a.缓存有效性:将缓存服务器清楚掉的处理,

        b.容灾

        c.外部系统调用常见处理:超时、异常、retry 次数

        d.被调用的外部接口是否可用?该接口wiki地址?

    7. 对于无法测试执行的中间数据,如何添加测试方法

    8.数据和代码匹配

        a.代码使用的数据有两种典型来源,接口和DB,仅仅从代码层面去code diff往往看不到问题,需要把实际数据拿出来看,都有哪些组合类型

        b.从数据不同去做等价划分,结合代码的分支,可以给我们更加全面的产出

四 diff要产出的东西:

    a. 测试范围/checklist

    b. 违反规范的bug

    c. 系统改进建议

    d. 明确测试方法/测试手段

    e. 确认发布步骤是否正确

注: diff过程中可以边diff 边进行测试执行,diff完成时,项目测试也执行完成相当一部分了。

© 著作权归作者所有

共有 人打赏支持
AwesomeQA
粉丝 5
博文 69
码字总数 55188
作品 0
海淀
QA/测试工程师
.netCHARTING报表图表控件 文档帮助手册 Ab3d.PowerToys 文档帮助手册

.netCHARTING报表图表控件 文档帮助手册 Ab3d.PowerToys 文档帮助手册 Ab3d.Reader3ds 文档帮助手册 ABViewer 文档帮助手册 (工程图纸文档管理系统) Active DJ Studio 文档帮助手册 Active S...

netkongjian ⋅ 2014/06/03 ⋅ 0

常用asp.net控件产品技术文档中文版

.netCHARTING报表图表控件 文档帮助手册 Ab3d.PowerToys 文档帮助手册 Ab3d.Reader3ds 文档帮助手册 ABViewer 文档帮助手册 (工程图纸文档管理系统) Active DJ Studio 文档帮助手册 Active S...

yidongkaifa ⋅ 2014/05/31 ⋅ 1

OpenERP6.1中文手册的翻译进度

OpenERP6.1中文手册的翻译进度 翻译最新进展见:http://blog.sina.com.cn/s/blog_7cb52fa8010105j7.html 一、已完成的部分有: 1)OpenERP中文手册000-044安装(保定-粉刷匠) 2)OpenERP中文...

保定-粉刷匠 ⋅ 2012/03/05 ⋅ 2

更新日期2016年5月16日-Citrix XenDesktop/XenApp 7.x PoC Runbook

Citrix XenDesktop、XenApp 7.x PoC Runbook文档内容简介: PoC手册 - _简介及环境准备 PoC手册 - Lab 01 虚拟主机基础环境安装1.0 PoC手册 - Lab 02 微软基础构架环境安装1.0 PoC手册 - La...

sesame.qian ⋅ 2014/12/02 ⋅ 0

CSS参考手册

版权声明 Copyright 本手册由飘零雾雨编写。版权所有者为飘零雾雨。 您可以免费的使用、分发本手册。但未经飘零雾雨的授权许可不得擅自进行篡改、反编译,及将其全部或部分用于商业用途。 本...

狗头666 ⋅ 2015/03/17 ⋅ 15

不只是帮助,不止于帮助:深度帮助手册体验版发布啦!

它是一本帮助手册,更是一个提供帮助的载体,旨在将帮助分享给更多的人!无论是初学者还是深度操作系统的资深用户,都可以通过它进一步了解系统和软件。深度帮助手册和传统的在线联机帮助、P...

cxbii ⋅ 2015/09/24 ⋅ 14

TypeScript手册翻译系列

[1] TypeScript手册翻译系列1-基础类型, http://my.oschina.net/1pei/blog/493181 [2] TypeScript手册翻译系列2-接口, http://my.oschina.net/1pei/blog/493388 [3] TypeScript手册翻译系列3......

一配 ⋅ 2015/10/12 ⋅ 1

OpenJeb2.0快速开发平台完整操作手册

OpenJWeb2.0版快速开发平台完整操作手册下载地址见http://www.openjweb.com/portal/products/doc.rar 具体包括: (1)01-OpenJWeb2.0A-技术白皮书.pdf (2)02-OpenJWeb2.0A-安装部署操作手...

迷途d书童 ⋅ 2012/03/09 ⋅ 0

深度帮助手册 V2.0 发布 —— 帮助,不“只”一点

深度帮助手册V2.0正式发布啦! 深度帮助手册作为一个提供帮助的载体,旨在将帮助分享给更多的人!无论是初学者还是深度操作系统的资深用户,都可以通过它进一步了解系统和深度家族应用。 聚合...

李玉珏 ⋅ 04/04 ⋅ 0

FLOSS Mannuals 新增多个开源项目的文档

开源软件的一个重要问题就是缺乏完整的多语言的官方文档,即便是流行的开源项目也常会如此,而这常被开源爱好者所诟病。 本文介绍一个野心勃勃的项目,FLOSS 手册(FLOSS Mannuals 简称FM)。...

小卒过河 ⋅ 2011/10/14 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 25分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 28分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 37分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部