测试开发
测试开发之源码篇-代码分支策略
一、主干开发
开发持续向主干提交代码,并基于主干进行测试验证;
在主干上修复缺陷,再同步修正的代码到需要的发布分支上;
每次均基于主干,创建指定版本的发布分支;
可享受持续集成、验证、交付带来的好处,消除不必要的分支切换和代码合并工作;
如果有众多成员同时工作在一个主干上,相互间容易干扰、引发代码冲突等问题;
可借助特性切换机制(如部署时的配置、代码中的判断),来规避不同版本间的差异(如隐藏不成熟的特性,赋予社区版和专业版不同功能),容易引发新的问题和复杂性。
二、Git Flow
开发人员在特性分支上实现新的特性,并提交代码...
2023-05-31
测试开发之源码篇-Git基本操作
版本控制(Revision Control) 在开发的过程中,记录文件、目录、工程等内容的变更历史,方便在以后查看、更改或回滚到先前的状态。Git是一个开源、分布式的版本控制系统,可以方便、有效地管理不同规模项目的代码版本。它最初是由Linux创始人Linus Torvalds为了管理Linux内核代码而开发的。
本次分享主要分为3个部分:第1部分借助一个演示项目,旨在帮助读者快速掌握Git的日常使用;第2部分给出Git常用命令的手册,方便大家在需要的时候查询;第3部分给大家介绍分支管理的常用模型。
Git几个概念
1)3个工作区
工作区(Working Dir):是指开...
2023-05-31
测试开发之源码篇-Git常用命令整理
本文列出了Git的一些常用命令,有兴趣的读者可加到浏览器书签,以备日后检索使用。
基本命令
# 设置代码提交者的用户名
git config --global user.name "chenqi"
# 设置代码提交者的邮箱
git config --global user.email "chenqi@deeptest.com"
# 克隆代码
git clone https://gitee.com/ngtesting/ci_test_pytest.git
# 添加文件到版本库
git add test.txt
# 提交文件到版本库
git commit -m "...
2023-05-30
测试开发之安全篇-使用禅道ZTF执行OWASP安全扫描
开放Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个开源、非盈利、全球性的安全组织,致力于应用软件的安全性方面的研究。OWASP安全标准被视为Web应用安全领域的权威参考。美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP,美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则,国际信用卡数据安全技术PCI标准更是将其列为必要组件。
OWAPS TOP 10是该组织定期发布的10项最严重Web应用安全风险列表,该列表总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞...
2023-05-29
测试开发之单元测试-禅道结合ZTF驱动单元测试执行
ZTF是禅道开源的一款自动化测试工具,支持两种形式的脚本:
1、ZTF自管理脚本。它通过在脚本顶部的注释中加入用例的编号、标题、步骤和期待结果等信息,实现和禅道手工用例的同步,用于同执行时输出的实际结果进行比对,以完成检查点的断言。具体可参考这里的一个例子;
2、其他单元测试或自动化测试工具的脚本。测试人员可按照原来的方式编写测试脚本,ZTF对他们并没有侵入,只是负责驱动这些工具脚本或项目的执行调度工作,分析结果、并提交到禅道。这里有一个PyTest的例子,供大家参考。
ZTF和市面上已有的自动化测试工具相比,更聚焦于自动化测试的管理功能,包括脚本的组织和调度、同测试管理系统的集成等。使...
2023-05-26
测试开发之单元测试-实现Git增量代码的Jacoco覆盖率统计
今天我们给大家分享,如何使用Jacoco集合Git来做增量代码的覆盖率测试。实现的基本原理是:
使用Git的diff指令,计算出两个版本的差异;
改造Jacoco源代码,只针对增量代码生成报告。
基本的功能滴滴的super-jacoco项目已经实现,并把它分装成了一个服务。大家可以基于这个开源项目进行二次开发,本文我们给大家介绍它的工作方式。
1、从官网下载、安装Oracle Java SDK。执行java -version,可输出版本信息表示安装成功。笔者这里安装的是JDK 11;
2、从这里下载解压Apache Maven构建工具3.9....
2023-05-25
测试开发之单元测试-基于Jacoco的单元测试代码覆盖率统计
代码覆盖率(Code coverage)用于描述一次测试执行中,被执行的代码占总代码的比率。这里的一次执行,可以是一次单元测试,也可以是一段时间内的手工测试执行;覆盖率除了按代码行进行计算,也可以统计程序代码的分支、函数和类的覆盖比率。
本文中介绍的Jacoco是一款流行的开源Java代码覆盖率工具,其覆盖率指标主要有以下几个:
指令 Instructions
针对Java字节代码指令的覆盖,是Jacoco最小粒度的指标。它提供总量、被执行和遗漏和数量信息。
分支 Branches
基于If、Switch语句分支来计算覆盖率,不包括异常处理分支。可在文件、类和...
2023-05-23
测试开发之接口篇-禅道集成K6完成接口自动化测试
上一篇文章中我们介绍了使用K6做接口自动化测试的例子,下面接着分享如何使用禅道ZTF开源测试工具,分析和汇总K6接口测试的结果,并将其提交到禅道管理系统中去。
首先,取消注释K6测试脚本中的以下部分。
// 配置ZTF执行时请保留该函数,否则thresholds阀值结果不会影响用例结果 export function handleSummary(data) { return { 'results/summary.json': JSON.stringify(data), //the default data object };
}
进入脚本所在目录执行以下命令,使用ZTF调用K6执行接口...
2023-05-12
测试开发之接口篇-使用K6完成接口自动化测试
K6是一个优秀的开源性能测试工具,它提供了简洁又丰富的API,灵活和易用的描述性语法。以下列出K6中的几个概念:
Metrics:测试度量的指标。如请求响应时间、执行耗时、检查点通过率、失败次数等;
Thresholds:定义了指标度量的成功、失败标准。如请求失败率小于5%,迭代执行耗时平均小于3秒;
Checks:测试用例的检查点。如响应状态码等于200,响应内容包括文本关键字等;
Tags:可作用于请求、指标、阀值和检查点的标签,便于分类进行统计;
Groups:以函数的形式对脚本进行逻辑划分,以方便进行分类统计分析;
Scenarios:用于控制性...
2023-05-10
测试开发之自动化篇-为什么是接口自动化测试?
近年来,随着DevOps和敏捷过程越来越广泛地被采用,软件测试、特别是自动化测试得到了迅速的发展。
“软件自动化测试金字塔模型”将可自动化的测试自底而上分为单元测试、服务接口测试和界面自动化测试三个部分。正立的金字塔结构建议我们开展更为广泛的单元测试,以期获得更早发现问题和更高执行效率带来的收益,但不断增加的单元测试也会显著提高开发资源的投入。随着趋于顶部更多的UI层面自动化测试的开展,我们可以获得更高的累积测试覆盖率,但频繁的用户界面调整会带来更高的脚本维护工作量,自动化测试的投入产出比也将逐步收敛。
近年来,随着移动应用的普及、微服务和Web前后端分离模式的广泛应用,客户端的表...
2022-09-06