软件测试畅想
文章平均质量分 70
CrissChan
前京东测试架构师、阿里云MVP、华为云MVP、中国商业联合会互联网应用工作委员会智库专家、中关村智联软件服务业质量创新联盟软件测试标准化技术委员会委员、极*客时间命题专家,极*客时间《接口测试入门课》作者、《研发效能实践指南》副主编、拉钩教育《软件测试第一课》作者,NCUT软件体系结构实验室特邀企业导师、《接口测试方法论》《持续测试》《京东质量团队转型实践》图书作者、《测试敏捷化白皮书》特邀编委、《DB51T1998-2015移动智能终端应用软件(APP)产品通用技术要求及测试规范》编委、多次受邀参与TID、NCTS、MAD、MPD、TICA、DevOpsDys等技术峰会以及参出品人。
展开
-
Testability的论证
原本只是在一本书上看到Testability的介绍,书中对于Testability的介绍使我对Testability中文翻译可测试性差生了一些疑惑,丛书中的描述中我更倾向于理解其是易测试性,而不是可测试性。因此就开始了翻阅testablity的资料,追溯下来可测试性的翻译确实一点问题也没有,只是书上的描述有点问题。文中很多英文原文的准苏,但是我英文不太好,翻译过来感觉很别扭,我就直接引用了原文。原创 2024-07-10 14:46:47 · 751 阅读 · 0 评论 -
技术债:千里之堤毁于蚁穴
最近读了一篇论文《Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry》,论文很长,主要是通过调研了12个国家和地区的开发人员,给出一些技术债务的分析。原创 2024-01-24 09:59:20 · 125 阅读 · 0 评论 -
软件测试是质量需求的交付实践
最近反复被测试有用吗?测试必须测试工程师完成吗?为什么要做自动化测试?自动化测试的价值是什么?等等一系列的问题不断地拷问,索性就把这段时间的思考记录下来了。原创 2024-01-11 22:53:36 · 195 阅读 · 0 评论 -
Fine-tune 的简介
基于重参数法利用的是低秩矩阵表示来减少可训练参数数量,当前使用较多的是 LoRA(Low-Rank Adaptation),将权重更新做一个低秩矩阵分解,使用大模型适配下游任务时只需要训练少量的参数即可达到一个很好的效果,在 LoRA 中,先冻结预训练模型的权重,然后使用Kronecker乘积重参数化的方法,可以在秩和参数数量间找到更好的平衡。fine-tune就是在LLM常说的微调的英文。那么如果有一个现成的模型,和我们要觉得的问题相似,那么我们就可以通过在这个模型的基础之上通过微调达到我们想要的能力。原创 2023-08-28 15:45:40 · 390 阅读 · 0 评论 -
AI 的测试:模型的基准测试
在评估一个模型的时候,仅通过ROUGE、BLEU SCORE评价模型还是太单薄了,并不能全面的反馈模型的能力。在相完整评估一个模型的能力的时候,最重要的是提供一套有效的评估模型。现在常见的模型的基准测试有 GLUE、SuperGLUE、HELM、MMLU等等。原创 2023-08-22 18:21:49 · 530 阅读 · 0 评论 -
如何测试一个AI系统?
如上是智能系统和非智能系统测试中的最显著不同的部分以及对应的方法和实践,但是针对文章开头的四个主要领域的智能系统还是有一些显著差异的,这些显著差异是应用领域的场景不同所导致的,我们会在后续继续学习和研究。原创 2023-03-16 23:56:23 · 3197 阅读 · 4 评论 -
测试左移和右移:不是左右逢源而是左右突击
在迭代进行过程中,需要通过开卡、验卡实践完成测试左移的实践落地,团队中开发工程师准备实现一个故事卡片的时候,会将测试工程师、产品经理集合到一起,按照故事卡片上的验收条件详细讲解自己对故事的理解以及如何实现的,在这时如果产品经理发现故事卡片有遗漏的验收条件那么就需要及时补充,测试工程师站在自己对需求的理解、对系统全局的认识以及对上下游依赖的基础之上补充验收条件中缺失的内容,这种快速的集合讨论就是开卡动作(英文叫做KickOff,简称KO)。随着持续测试实践的广泛应用,测试的左移和右移被越来越多的提及。原创 2022-12-23 08:51:13 · 288 阅读 · 0 评论 -
正交试验测试用例设计及工具推荐
在科研和生产实践中,人们往往要做许多次实验来进行某项研究。实验条件一般包括很多因素,当因素的值不同时,实验的结果也不一样。如果想把每个因素的每个值都要实验一遍,总实验数就等于各因素的值的个数的乘积,而这个数往往很大,超过了可接受的成本。例如,假设某个实验由A,B,C,D四个因素,每个因素都有10个不同的取值,那么如果想把每个因素都考虑到,我们需要做 101010*10=10000次实验。为了减少实验数目,我们必须选出那些最有代表性的例子。原创 2022-11-16 11:26:37 · 1537 阅读 · 0 评论 -
知识图谱学习笔记
Exploiting Linked Data and Knowledge Graphs in Large Organisations》中对知识图谱的定义如下:A knowledge graph consists of a set of interconnected typed entities and their attributes.那么每一个知识都可以使用SPO(Subject-Predicate-Object)表示。在信息的基础上,建立实体之间的联系,就能行成 “知识”。原创 2022-11-07 14:09:12 · 282 阅读 · 0 评论 -
t-SNE算法
它和其他降维算法相比,在数据可视化方面效果较好(还有Umap、densmap等)。如果我们将t-SNE应用于n维数据,它将智能地将n维数据映射到3d甚至2d数据,并且原始数据的相对相似性非常好。t-SNE不是线性降维技术,它遵循非线性,这是它可以捕获高维数据的复杂流形结构的主要原因。降维算法其实有很多时候可以派上用场,例如我们无法将大于3维的数据展现在图中;在训练机器学习的算法的时候,为了降低计算复杂度我们通过降维技术降低计算复杂度。t-SNE的主要目标是将多维数据集转换为低维数据集。原创 2022-11-07 13:22:30 · 608 阅读 · 0 评论 -
TF-IDF算法
TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术,常用于挖掘文章中的关键词,而且算法简单高效,常被工业用于最开始的文本数据清洗。TF-IDF有两层意思,一层是"词频"(Term Frequency,缩写为TF),另一层是"逆文档频率"(Inverse Document Frequency,缩写为IDF)。TF-IDF其实是两层意思,TF是统计高频词,但是可以剔除一些例如“的”,“是”等的词(这些词叫做停用词)。原创 2022-11-07 11:38:44 · 944 阅读 · 0 评论 -
持续测试促进质量和效能双丰收
自动化测试的目的是结果验证,如果测试失败说明了被测试系统有些不满足预期内容,但是持续测试保障的是风险预防,通过DevOps每一个阶段都进行质量保障活动,通过层层质量保障最后交付一下优秀的系统,通过自动化的效率提升从而达到交付一个又快又好的系统(JKK)的目的。因此可以看出软件测试和质量保障是解决不同问题而存在的,那么质量保障和软件测试也不是说完全无关的,在实践中,质量保障工程师以协同不同团队工作为主,通过不断的度量从而督促各个团队的持续改进,而开发工程师、测试工程师共同为100%的又快又好的交付系统负责。原创 2022-08-24 14:22:48 · 71 阅读 · 0 评论 -
Windows安装的Mysql忘记密码重置
1 打开CMD使用管理员身份打开CMD命令行,进入Mysql的安装目录。然后通过如下明亮关闭已经启动的mysql服务。如果停止不了,查找mysql的进程,然后kill掉。tasklist |findstr mysql如上查找对应的pid,然后通过如下的kill对应的进程taskkill /F /PID pid2 安装mysqld服务在命令后继续输入如下命令后,安装Service服务成功:mysqld --install3 重置密码输入如下代码:mysqld --initial原创 2021-12-20 11:50:53 · 936 阅读 · 0 评论 -
业务驱动的测试团队的效率提升之路(2021VCEC 第7期)
原创 2021-08-02 09:26:28 · 343 阅读 · 0 评论 -
聊聊追求测试技术导致过度测试
这个文章主题在我自己的看板里面躺了很久了,其实并不是不想写,而是一直没有勇气来写。最近鼓起勇气,为当今测试技术的持续高温浇浇水,文章中如果有些不妥当那么请你看看一乐,切莫对号入座。测试技术和团队、业务成熟度是相互依存不可分割的故事: 公司内部开始推行容器平台,这对于测试来说是一个很好的技术变革。DevOps流水线的支持更容易让测试工程师掌握测试的主动权,更容易实现持续测试。当我们容器平台基本可以在测试环境投入使用的时候,团队内部一个技术负责人不知道用何种方法说服老板要进行一次故障演练,要把阿里巴巴的.原创 2021-06-09 08:46:17 · 334 阅读 · 6 评论 -
去“测试”下的测试重生,不为焦虑买单
各位小伙伴: 这么多年感谢大家一直鼓励我在技术路上走下 相信最近两年,去“测试”的话题已经不绝于耳,我们每每被提及都会增加自己的焦虑,我还是觉得你大可不必那么担心,所谓万物归元,无极生太极而后演进万物。所以任何高级的技术、方法最后还是人类聪明才智的产物,但是解决问题的根本办法,还是最基本的理论。所以,你不必为去“测试”的焦虑买单。 智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得...原创 2020-11-27 21:42:25 · 345 阅读 · 0 评论 -
能够把PPT变成小视频的源代码
ppt直接转成视频,ppt备注内容转换为视频语音使用了腾讯云的tts接口,语音合成免费额度为每月100万字符,相当于一本《西游记》的字数。每月1日重置免费额度。 接口请求频率限制:20次/每秒。合成语音的源文本。中文最大支持600个汉字(全角标点符号算一个汉字),英文最大支持1800个字母(半角标点符号算一个字母)。https://cloud.tencent.com/document/product/1073/34093详情看代码。使用把PPT放到ppt文件夹中,在setting.py文件中修改原创 2020-09-01 14:26:15 · 963 阅读 · 0 评论 -
不重不漏的分析方法:MECE分析法
MECE分析法麦肯锡的巴巴拉·明托(Barbara Minto)顾问在金字塔原理中提到的一个重要原则就是MECE,那么满足MECE的分析方法就是MECE分析法,全称 Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”。 也就是对于一个重大的议题,能够做到不重叠、不遗漏的分类,而且能够借此有效把握问题的核心,并成为有效解决问题的方法。怎么做MECEMECE主要是用来帮助问题的分析人员找到所有影响预期或者目标的关键因素,并找到所有可能原创 2020-08-17 11:22:14 · 3761 阅读 · 0 评论 -
静态代码检查完成代码分析和SonarQuber的初探
静态代码检查完成代码分析和SonarQuber的初探静态代码检查就是静态测试的一种,因此我们先说说静态测试和动态测试都是什么,然后我们再来聊一聊静态代码检查。先搞清动静的区别静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。而动态测试是通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标。静态测试被测对象是各种与软件相关的有必要进行测试的产物,是对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。原创 2020-06-24 14:46:28 · 923 阅读 · 0 评论 -
jmeter 执行python脚本
那么我们很多人都知道Jmeter是Java语言开发的,Python脚本可以执行吗,其实这是一个肯定的回答,是可以的。jmeter 可以通过Jython 执python代码。那么具体的使用方法如下:1、下载Jython jar包:http://www.jython.org/downloads.html2、把下载的Jython 的jar包放到 jmeter的lib文件夹。重启jmeter3、...原创 2020-03-17 16:31:12 · 1687 阅读 · 0 评论 -
PIP的报错Could not fetch URL https://pypi.org/
问题:pip安装报错Could not fetch URL https://pypi.org/simple/beaker/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simp...原创 2020-03-12 09:31:24 · 4615 阅读 · 1 评论 -
说说分层测试中HTTP的API测试工具
无论在谁的分层测试理论中,接口级别的测试都是不可或缺的一层,无论是三角形分层测试模型,还是菱形分层测试模型。API测试工具和手段都是重要的分层测试的落地实践部分,同时也会作为集成测试一部分存在。在API测试中主要关注的除去功能正确性外还有可靠性、性能、鲁棒性和安全性。本文将提供一些API测试工具的摘要,涵盖开源和商业解决方案,测试团队可以根据自己的需求进行选择。Postman官方网址:...原创 2020-02-26 10:32:52 · 716 阅读 · 0 评论 -
微信小程序的自动化测试框架
微信小程序的自动化测试框架微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点:支持一套脚本,iOS & Android & 模拟器,三端运行提供丰富的页面跳转方式,看不到也能去得到可以获取和设置小程序页面数据,让测试不止点点点可以直接触发小程序元素绑定事件支持往 AppSerive 注入代码片段可以调用部分 wx 对象上的接口官方地址如下:http...原创 2020-01-21 13:17:04 · 6106 阅读 · 4 评论 -
企业微信群消息机器人发送开源项目
企业微信群机器人消息发送和管理开源地址:https://github.com/crisschan/workwechatbot使用方法在botconfig配置机器人的回调地址和机器人别名,运行webapp后,会在8080启动服务,访问127.0.0.1:8080就可以访问了其中机器人的配置如下: [{"botname":"bot","webhook":"https://qyapi.we...原创 2019-11-05 15:16:45 · 7216 阅读 · 7 评论 -
Docker 容器连接
Docker 容器连接容器间的链接有两种方法,你选择其一即可网络端口映射 docker run -d -P docker run -d -p -P :是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。例如: docker run -d -P training/webapp python app.py上面...原创 2019-10-22 13:50:12 · 1242 阅读 · 0 评论 -
Nginx的容器部署
拉取一个nginx的容器通过dockerhub上的镜像我们可以拉去一个Nginx,并启动 docker pull nginx docker run --name runoob-nginx-test -p 8081:80 -d nginx runoob-nginx-test 容器名称。 the -d设置容器在在后台一直运行。 the -p 端口进行映射,将...原创 2019-10-22 13:47:32 · 1197 阅读 · 0 评论 -
Docker的Image
列出镜像列表 docker images 返回结果说明: REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REP...原创 2019-10-22 13:44:53 · 1106 阅读 · 0 评论 -
DockerFile 详解
DockerFile 详解Dockerfile由一行行命令语句组成,并且支持用“#”开头作为注释,一般的,Dockerfile分为四部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行的指令。Dockerfile指令1、FROM 格式:FROM <image>或 FROM <image>:<tag>第一条指令必须为FROM指令,并且...原创 2019-10-22 13:42:09 · 1005 阅读 · 0 评论 -
Docker的helloworld
Docker 运行一个web服务运行第一个web应用服务python flask举个例子 docker pull training/webapp # 载入镜像 docker run -d -P training/webapp python app.py -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上。这样通过...原创 2019-10-22 13:39:51 · 1134 阅读 · 0 评论 -
Docker初次见面
Docker基础hello world docker run ubuntu:15.10 /bin/echo "Hello world" Hello world各个参数解析:docker: Docker 的二进制执行文件。run:与前面的 docker 组合来运行一个容器。ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不...原创 2019-10-22 13:36:52 · 989 阅读 · 0 评论 -
快速掌握的测试用例优先级划分方法
怎么样的设计才能算测试用例引自:IEEE Standard 610 (1990): A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or ...原创 2019-10-22 08:44:21 · 2178 阅读 · 0 评论 -
人人都可以掌握的正交试验设计测试用例方法
介绍TamanduaOATs 是测者开发并开源的生成正交计算的pyd(python库)程序(放到python下的dlls目录下)项目地址:https://github.com/crisschan/TamanduaOATs开发语言:c python调用方法如下 #encoding=utf-8 import TamanduaOATs print Tama...原创 2019-10-21 13:58:19 · 1823 阅读 · 0 评论 -
Python的Twisted事件驱动的网络引擎框架
Python的Twisted事件驱动的网络引擎框架概述Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。优越性使用基于事件驱动的编程模型,而不是多线程模型。跨平台:为主流操作系统平台暴露出的事件通知系统提供统一的接口。“内置电池”的能力:提供...原创 2019-10-21 13:54:53 · 568 阅读 · 0 评论 -
测者的测试技术手册:Junit执行单元测试用例成功,mvn test却失败的问题和解决方法
今天遇见了一个奇怪的问题,在IDE中run unit test,全部cases都成功了,但是后来通过mvn test运行case确保错了。在寻求原因的同时也找到了对应的解决方法。Run Unit Test和Maven test的区别差异1:在IDE中通过选中单元测试路径,点击右键选择run test和点击maven中的test是有区别的。在Maven执行测试的过程中,是不允许测试cases访...原创 2019-10-21 13:51:58 · 1613 阅读 · 1 评论 -
Java的Override和Overload
Java的Override和OverloadOverride重写:子类对父类的允许访问的方法实现过程重新编写,但是 不可改变返回值和入参。重弄写的规则:参数列表必须完全与被重写方法的相同;返回类型必须完全与被重写方法的返回类型相同;访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。父...原创 2019-10-21 13:49:13 · 1009 阅读 · 0 评论 -
如何选择一个性能测试工具(LoadRunner和Locust的一次对比)
如何选择一个性能测试工具(LoadRunner和Locust的一次对比)LoadRunnerLoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于...原创 2019-10-15 10:48:19 · 1595 阅读 · 0 评论 -
Facebook开源的数据Mock:Memisis详解
安装 pip install mimesis源代码 git clone git@github.com:lk-geimfari/mimesis.git支持多语言CodeNameNative NamecsCzechČeskydaDanishDanskdeGermanDeutschde-atAustrian germanDe...原创 2019-10-15 10:45:49 · 1789 阅读 · 0 评论 -
NetPerf揭示主机通信间是高速路还是林荫小路
NetPerf揭示容器间是高速路还是林荫小路Netperf概况Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量 数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统 发送数据,以...原创 2019-10-15 10:43:55 · 928 阅读 · 0 评论 -
用Ant实现Java项目的自动构建和部署
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:apache-ant-1.7.0),即可使用。添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目...原创 2019-10-15 10:40:55 · 1047 阅读 · 0 评论 -
C#的FTP服务器源代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;//**new namespac...原创 2019-10-15 10:37:21 · 2652 阅读 · 0 评论