![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
测试开发
文章平均质量分 83
软件质量保障
通信硕士,拥有3项发明专利。前字节跳动测试工程师,现就职于蚂蚁集团,工作重点为微服务测试、接口测试平台研发等
展开
-
测试三问
在缺乏有效的测试用例的情况下,你可能无法为团队提供有价值的质量反馈,而这正是QA人员所期望的得到的。因此,测试不仅对于深入了解产品至关重要,而且对于确保交付的软件符合业务方的期望至关重要。作为一名QA,如果不了解用户的痛点,就无法确保这些变更是否真正为用户解决了问题。通过明确受影响的模块,你可以设计出全面覆盖这些变更的测试用例。我会向产品负责人询问有关需求变更如何为我们的用户解决问题,这让我了解了用户所面临的问题。我的测试方法总是向参与项目过程的不同人提问,这让我更深入地了解变更的背景知识。原创 2024-05-23 07:00:00 · 293 阅读 · 0 评论 -
Guava精讲(三)-Caches,同步DB数据到缓存
在开发中,我们经常需要从数据库中读取数据并进行频繁的读取操作。缓存在各种场景中都有运用,例如,当一个值的计算或检索成本很高,而且在某个输入中需要多次使用该值时,就应该考虑使用缓存,因此将数据缓存在内存中可以显著提高应用程序的性能。问题描述假设我们正在开发一个电子商务网站,需要频繁地显示商品信息。商品信息存储在数据库中,并且我们希望将其缓存在内存中,以提高网站的响应速度和性能。缓存与 ConcurrentMap 相似,但又不完全相同。原创 2023-09-17 16:07:15 · 534 阅读 · 0 评论 -
Google Guava精讲(一)-Guava是什么?能做什么?
作为Java栈的测试工程师,在写代码时候会频繁遇到字符串处理、缓存、反射等问题,我们最常规的做法就是,为了使原生的JDK方法好用,通常是做了一层又一层封装,然后提供整个测试团队使用,而渐渐的就形成了自己的Java工具箱。当然Guava的缘起也是如此。Guava 是由Google开发的基于Java的开源库,包含许多Google核心库,它有助于最佳编码实践,并有助于减少编码错误。原创 2023-09-17 10:35:11 · 1700 阅读 · 0 评论 -
自动化框架参数间传递的一种最佳实践
ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量,可以称为线程本地变量。.........原创 2022-08-27 00:02:52 · 387 阅读 · 1 评论 -
ThreadLocal在接口参数间传递中的使用
做过接口自动化测试的同学肯定都熟悉在全链路测试过程中,很多业务场景的完成并非由单一接口实现,而是由很多接口组成的一条链路实现。例如你在淘宝上购物场景。不同于单接口测试,这种链路型的接口自动化测试,由于接口间有参数依赖关系,往往不能将链路中的接口入参固定写死,而是要依赖“上游”的响应中的某个字段值,因此需要提取出来动态地传递给下个接口,如下图。解决链路间参数传递的问题可以简化为解决接口间的参数传递问题。当然我上图举例是比较简单的,下游对上游的依赖关系为1对1这种类型。...原创 2022-08-12 22:21:19 · 902 阅读 · 0 评论 -
Google的工程实践指南(下):代码开发者指南
CL 描述是一项公开的记录,其内容包含修改了 什么 与 为什么 这么修改。 虽然你的 CL 只是在你与审核者之间发生,但它是版本控制历史的一部分,若干年之后,很有可能会有成百上千的人阅读。...原创 2022-08-06 10:15:40 · 263 阅读 · 0 评论 -
研二非科班研究生如何备战秋招
最近知乎收到了一位研二非科班同学的付费咨询,让我帮忙给一些备战秋招测开岗面试建议。想到自己也是非科班出身,一路摸爬滚打走到现在,深知通过社招进入头部互联网企业是多么的困难,而校园招聘则是进入大厂的一条捷径,只要利用好寒暑假打牢基础,再沉淀一些面试技巧,进入大厂的概率是非常大的。..................原创 2022-07-16 12:22:51 · 1233 阅读 · 1 评论 -
API自动化测试利器-Postman详解
接口调试神器原创 2022-06-11 16:32:30 · 1164 阅读 · 0 评论 -
阿里巴巴测试开发岗P6面试题
阿里巴巴测试开发岗面试题原创 2022-06-02 08:58:08 · 531 阅读 · 0 评论 -
xmind2testcase:高效的测试用例导出工具
软件测试的核心是什么?毫无疑问是测试分析和用例设计。测试分析一般包括三种方法:1. 质量模型分析法 2.功能交互分析法 3. 用户场景分析法。其核心在于通过多层次分析测试点,即用户角度的业务场景+技术角度的系统实现逻辑。测试分析完成后,我们会根据测试点结合用例设计方法去“开发”测试用例,个人觉得测试用例就是测试分析的实现。作为测试文档,测分+测试用例需都要存档,思维导图其发散性思维、图形化思维,非常适合做测分工具;测试用例载体为Excel、MySQL。当然,不同团队对待测分和用例设计的态度是不同的。就我原创 2022-05-27 08:50:24 · 787 阅读 · 0 评论 -
利用UIRecorder做页面元素巡检
关于巡检,之前发过一篇《浅谈质量保障手段之巡检技术》,介绍了使用Python的eyeD3库进行MP3属性信息获取并做音频损坏的判断,可以理解为从服务端层面出发提出的解决方案。本文是从前端的角度出发,介绍通过UIRecorder对页面元素比较固定的页面做特定元素巡检。1.环境搭建1.1 NodeJS根据电脑操作系统,选择对应的安装包,下载链接:https://nodejs.org/en/1.2 NPMNPM 是 NodeJS 自带的包管理器,可以批量下载指定包的指定版本。由于 n原创 2022-05-27 08:45:55 · 586 阅读 · 0 评论 -
细读《阿里测试之道》
《阿里测试之道》也是国内第一本综合介绍测试“道”的书,昨天下单,今天早上看完了第一章节,里面对国内测试团队都遇到过的测试困局、难点给出了解决之道;以阿里的视角阐述了测试的本质;原创 2022-05-27 08:41:53 · 2210 阅读 · 0 评论 -
分布式链路追踪工具-Jaeger
持续坚持原创输出,点击蓝字关注作者:软件质量保障知乎:https://www.zhihu.com/people/iloverain1024什么是 Jaeger?Jaeger 是用于追踪分布式服务之间事务的开源软件,它为微服务场景而生。它主要用于分析多个服务的调用过程,图形化服务调用轨迹,是诊断性能问题、分析系统故障的利器。什么是分布式跟踪?分布式跟踪是用来查看和了解复杂的微服务间交互中的整个活动链。现代的云原生软件开发十分依赖微服务,因为每个独立的服务都提供不同的核心功原创 2022-05-18 22:14:02 · 1128 阅读 · 0 评论 -
教师妹学python之三:语句控制
计算机为什么可以做自动化任务,主要依赖于条件控制和循环。条件控制何为条件控制?中午又到饭点的时间了,纠结吃什么已经成为日常条件反射。下面举个例子:那么中午吃什么呢?逻辑判断-True/False人的大脑可以思考并判断中午吃什么,而计算机本身没有思考能力,要想让计算机自动化执行任务,必须依赖在程序中加入逻辑判断的逻辑,让计算机根据程序的指引决定该执行什么不该执行什么。比较运算符比较运算符,运算结果为True/False,例如:#!/usr/bin/env python原创 2022-03-20 10:58:33 · 534 阅读 · 0 评论 -
如何让自动化框架更自动化
本文是我对此前设计的一个测试框架的反思,当时设计框架的“上下文”(即团队基建能力、以及自身的设计水平和负责的项目的业务架构等背景)和现如今所在的公司质量基建是有很大差别的(有时候很多想法的实现是需要一定基建能力支撑的)。在一定程度上,也算是站的更高,看的更远吧。原创 2022-05-15 17:00:50 · 861 阅读 · 0 评论 -
UI自动化|如何结合TestNG做Selenium UI自动化
所 寫 即 所 思对于大多数刚接触自动化测试同学来说,Selenium是大家接触最早的Web UI自动化测试框架,Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium其实是一套工具,帮助测试者更有效地基于Web的应用程序的自动化。当然,UI自动化用例的断言也是不可或缺的,更好更快的断言也是selenium的劣势,而TestNG恰恰又是非常有名的测试框架,正好可以结合selenium, 提供断言模块以弥补seleniu原创 2022-04-16 11:11:52 · 919 阅读 · 1 评论 -
聊聊UI自动化的PageObject设计模式
当我们开发UI自动化测试用例时,需要引用页面中的元素(数据)才能够进行点击(动作)并显示出页面内容。如果我们开发的用例是直接对HTML元素进行操作,则这样的用例无法“应对”页面中UI的更改。PageObject模式就是对HTML页面以及元素细节的封装,并对外提供应用级别的API,使你摆脱与HTML的纠缠。什么是PageObject模型?PageObject模型是一种设计模式,其核心是减少代码重复(最小化代码更新/维护用例)以降低用例开发的工作量。利用PageObject模型.原创 2022-04-10 16:12:33 · 1127 阅读 · 0 评论 -
IDEA zsh: command not found: mvn
我明明本地配置好了maven环境变量,而且还可以在terminal上正常使用,为什么在idea的Terminal就使用不了maven指令呢?解决方案如下:配置maven变量vim ~/.bash_profileexport IDEA_MAVEN=/Applications/IntelliJ\ IDEA\ CE.app/Contents/plugins/maven/lib/maven3export PATH=$PATH:$IDEA_MAVEN/binsource ~/.bash_pro原创 2022-04-09 12:06:47 · 2522 阅读 · 0 评论 -
面试题剖析|面试官问项目经验重点是想听到什么?
软件质量保障所寫即所思答主工作岗位测试开发工程师,属于技术序列。本文共三部分,分别介绍项目重点考察什么以及如何更好地介绍自己参与项目。1.项目经验考察的重点是什么?众所周知,测试技术岗的整个面试过程分自我介绍、项目考察、技术考察、编程、发散题考察候选人性格、处事以及团队协作等。而项目经验考察可以理解为正式进入面试环节,所以能否"开门红",给面试官耳目一新的感觉至关重要。通常来说,候选人的简历通过能进入面试环节,说明面试官是认可候选人工作经验对当前团队有所帮助或者说符合当前团原创 2022-04-03 11:42:53 · 839 阅读 · 0 评论 -
我做软件测试这5年
干了将近5年测试了,介绍下自己的测试历程吧。1.平凡的大学生活我大学期间属于并没有什么出众的,按部就班,老实办事的那种学生,我导师对我们那届的学生比较散养,只要完成导师给的任务,毕业是问题不大的,所以学术产出一般(学术产出拿到校二等奖学金),一个专利+一个EI+一个DSP会议。研二尾声大概4-5月份开始准备校招工作,当时的自己因为编程能力并不出众,所以决定投对于编码能力要求不高的技术支持和软件测试相关岗位。暑假就开始在实验室复习计算机网络、数据结构、C语言、操作系统、通信等知识,准备迎接8月份开原创 2022-03-13 13:02:10 · 744 阅读 · 0 评论 -
Google的工程实践指南(上):代码审核指南
在代码审核的长期实践中,我们总结出了最佳实践,并在此基础上整理出了这些建议。整篇文档各部分的衔接性并不大,在阅读时,你可以选取自己感兴趣的部分,而不必按顺序阅读全文。当然,我们仍旧建议你按顺序通读全篇,你会发现这份文档对你非常有用。一. 代码审核的标准标准代码审核的目的是为了保证代码库中的代码质量持续改进,代码审核的工具和流程都是为了实现这个目的而设计。为了达到目标,我们需要权衡得失。首先,开发人员必须能在任务上 取得进展 。如果从没向代码库提交代码,那么代码库就不会改善。同时,如果原创 2022-02-19 11:43:43 · 484 阅读 · 0 评论 -
推荐几款常用的IDEA插件
2022,新的一年,祝各位小伙伴开工大吉,年终奖拿到手软。回首2021,我觉得自己很大的一个收获就是养成了Code Review的良好习惯,CR过程也发现了不少逻辑问题,这也是测试左移的一种实践。 尽管业务代码居多,通过CR不仅能将一些比较明显的缺陷拒提测门外,还能学习开发同学比较好的编程实践,也是对自己编程能力的一种提升。作为搬砖工,阿里以Java栈为主,平常使用最多的搬砖工具还是IDEA(虽然VS Code确实很“轻”)。而如何更高效的搬砖,自然离不开code review效率的提升,这里就原创 2022-02-09 17:08:39 · 3778 阅读 · 0 评论 -
技术人一定要懂点Docker
一、容器发展之路刚进入职场那会,依然记得当时公司比较节俭(抠门),整个研发团队(开发+测试),一共有三套环境,dev,sit,uat。我们的uat主要用于pd验收,验收通过后会把应用包发布到客户的uat环境,客户验收通过后会部署到自己的生产环境。每个应用能部署一台服务器就是好的,经常是多个应用部署到一台服务器上。而服务器用的是联通的物理机,如果想要扩容就要申请让公司掏腰包买机器。当时公司作为乙方,我们的环境用途主要是验证产品功能,性能测试都没法做,因为压不准,所以要是压测基本上出差到客户那里..原创 2022-01-14 22:09:05 · 479 阅读 · 1 评论 -
Python断言工具包assertP
简介对于经常借助于使用自动化手段测试的同学来说,无论使用接口自动化工具,还是自研的测试框架,一个完整的自动化用例,断言部分绝对是重中之重,因为断言的颗粒度在一定程度上能反映用例质量,必然断言颗粒度越细,越可能发现问题,对于接口测试来说,接口返回结果断言是必须的,但是这还不够,更建议对落库的数据与接口的request中重要字段进行断言, 而断言实质也是数据之间的比较,例如相等、包含、非空等。今天介绍的Python库assertP就是这样一个方便测试同学高效断言的工具,测试同学直接将数据库取出的..原创 2022-01-09 21:55:33 · 1315 阅读 · 0 评论 -
Python texttable
用于创建简单ascii表的python模块。原创 2022-01-08 17:57:55 · 648 阅读 · 0 评论 -
经验|如何在大厂里高效跨部门协作?
不得不说在阿里做项目的沟通成本是比较高的,因为你的兄弟域可能分布在"五湖四海",甚至是国外。如果你是主测,那么你就要负责全链路质量保障的责任,协调&沟通各域的测试同学的测试进度、项目风险;上线时候要紧盯线上监控和报警等问题。原创 2022-01-08 12:44:57 · 883 阅读 · 0 评论 -
Web UI自动化框架大比拼
引子对于测试从业者来说,手工测试是一个绕不过去的坎。当年我校招毕业以测试工程师岗位进了一家互联网公司。入职第一天就被师父"拉去干活",至今印象深刻,是一个投顾管理平台(投资顾问管理客户的平台,主要功能是为用户做理财资讯推荐)。主要工作就是让我结合测试用例对这个web页面进行测试,说白了就是点点点。测试新人嘛,这些对于我来说挺新鲜的,但是随着时间的流逝,不到几个月就感觉有点不对了,手工测试完全是个机械化的工作,在执行用例过程大脑是没有思考的,长此以往,会让你的大脑形成固化思维,在测试过程中大脑能得到的测试原创 2022-01-02 14:31:56 · 1639 阅读 · 0 评论 -
selenium webdriver入门
概要WebDriver可以像用户一样驱动原生浏览器,无论是在本地服务器还是在使用Selenium服务器的远程机器上,都标志着浏览器自动化的一个飞跃。Selenium WebDriver也是控制浏览器代码运行的一种实现方式,通常被简称为WebDriver。它有以下特点: WebDriver框架设计简单、编程接口设计简明。 WebDriver是一个紧凑的面向对象的API。 它能有效地驱动浏览器。 原理组件使用WebDriver构建一个测试套..原创 2022-01-02 14:29:34 · 2114 阅读 · 3 评论 -
测试工程师进阶必读书目
软件质量保障专注于测试圈:测试质量保障、自动化工具/框架、平台开发、算法测试、BAT/TMD大厂测试岗面试题/面经分享、测试团队建设与管理、测试新技术的分享。 偶尔也聊聊个人工作的收获与经验。可以帮忙内推字节、阿里、百度等大厂。 全程软件测试 本书系统地总结了过去十年中软件测试发生的变化,浓缩了作者许多宝贵的软件测试经验。本书首先介绍对于软件测试的不同看法,全程软件测试的思想,软件测试的基础设施与TA框架、团队能力建设;然后逐步深入到测试的计划、设计、执行、持续反馈和改进原创 2022-01-02 14:27:36 · 815 阅读 · 0 评论 -
接口测试框架开发实践5:配置文件读取
软件质量保障专注于测试圈:测试质量保障、自动化工具/框架、平台开发、算法测试、BAT/TMD大厂测试岗面试题/面经分享、测试团队建设与管理、测试新技术的分享。 偶尔也聊聊个人工作的收获与经验。可以帮忙内推字节、阿里、百度等大厂。使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂。配置管理这块主要是管理一些环境相关的配置,例如各个环境的域名、数据库连接信息等。而存储这些配置信息的载体一般选择yaml/properties、ini/cfg。yaml可以适用于Java/Py原创 2022-01-02 14:25:33 · 1275 阅读 · 0 评论 -
接口测试框架开发实践4:HTTP方法封装
软件质量保障专注测试圈,自动化测试、测试平台开发、测试新技术、大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!欢迎加VX沟通交流: ISTE1024公众号HTTP协议HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML, 图片文件、视频等)。一个HTTP请求一般包含三部分组成:请求方法、请求头、请求体。HT原创 2022-01-02 14:23:23 · 429 阅读 · 0 评论 -
接口测试框架开发实践3:用例管理模块
本框架基于DDT原则,将测试数据和测试用例分离管理,测试数据模块通过yaml文件存储测试数据,测试用例则是测试场景的测试代码。每次执行测试用例,则会从测试数据文件中读取数据。本文中测试用例是 测试数据(文件)+ 测试用例(文件)的统称。正如上一篇文章介绍到用例管理介质有MySQL、Excel、Yaml/Json,也就是“线上存储”和“线下”存储方式。本文介绍的框架利用yaml文件存储测试用例。3.1 用例规范无规矩不成方圆,规范有很多好处。 易读性高 易于批量.原创 2022-01-02 14:22:08 · 503 阅读 · 0 评论 -
代码门禁(Gated Check-in)
软件质量保障:普及测试技术标准CI构建是在代码合并后检查已提交代码的功能完整性,这种方法会导致代码出现测试用例执行失败甚至编译失败而无法部署的情况(即代码合并到master后编译失败导致没有可用版本部署)。代码门禁则是在代码合并之前就验证代码来保护主干分支的完整性。通过这种方式,可以保护主分支代码避免因合码导致的构建中断,以确保 master 分支代码始终是可部署的,并且不会因明显的错误而影响到你正在并行开发的同事工作。项目准备创建一个测试项目,为 .NET Core 应用程....原创 2022-01-01 23:14:11 · 3012 阅读 · 0 评论 -
浅谈Mock平台设计思路
一、Mock概述友情提示:本节为小白科普章节,大神可绕路直奔下一章节。1.1 何为mock?mock即模拟,可以理解为模拟数据。就接口mock而言,就是mock接口返回结果。根据不同层次的需求,也是存在不同的mock层级,可以参考下面的金字塔模型,越往上mock的级别越“高”,对于用户(测试)越“可见”。方法、类级别一般是开发会用到,例如单测开发。而接口和服务级别是测试进行服务联调测试甚至系统测试过程会用到的。1.2 为什么需要mock?这就有必要介绍一下微服务了,微服务架构下,原创 2021-12-26 11:06:18 · 1085 阅读 · 0 评论 -
软件测试之SQL必知必会
测试小白发问,做软件测试常用的sql语句有哪些?原创 2021-12-11 10:36:29 · 506 阅读 · 0 评论 -
FastAPI,一款实用的web框架
Java出身的程序员也许知道利用Spring Mvc框架开发一个web应用多麻烦,当然Python也提供一些轻量级的web框架,如Django、Flask。我曾经就使用过Flask开发过mock平台和小工具平台,但是Python栈的web框架缺点就是并发性相对比较差,如果请求量级上来了,服务性能就会差一些,适合做一些对性能要求不是太高的“玩意”。当然今天的主角不是上述提到的,而是FastApi,一个用于构建 API 的现代、快速(高性能)的web框架。下面就给大家做一个入门ABC,讲解一下...原创 2021-12-10 14:29:11 · 1923 阅读 · 0 评论 -
设计模式|单例模式
定义单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)案例众所周知,当今大多数年轻人谈房色变,因为当下购房压力确实够大,一是房价够高,二是贷款利率太高。房价太高有部分投资客炒房的原因,所以多地政府出台了限购政策,例如每个人只能购买一套房。那如何通过程序实..原创 2021-12-08 22:05:11 · 189 阅读 · 0 评论 -
面试官:了解Fuzzing Test吗?
软件质量保障专注测试圈,自动化测试、测试平台开发、测试新技术、大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!欢迎加VX沟通交流: ISTE1024测试同行或多或少听说过模糊测试,但不知道它是什么?本文将详细介绍Fuzzing Test帮助你快速了解它。什么是 "模糊测试"?Fuzzing 是一种发现软件缺陷的方法,它通过向程序提供随机输入来寻找导致程序崩溃的测试场景(原理有点类似Monkey Test)。可以帮助你快速了解程序整体的健壮性,并帮助你发现和修复关键的缺陷。.原创 2021-11-14 22:56:49 · 9286 阅读 · 0 评论