软件测试面试心得:四种公司、四种问题…
以下是我个人总结的一些经验:
传统开发模式:V模式,瀑布模式。传统开发模式往往循规蹈矩,从需求,概要设计,详细设计,开发,单元测试,集成测试,系统测试,验收测试,上线发布,整个周期往往需要半年到一年,由于周期长,产品在开发过程中会存在需求变化,传统模式不适应需求的变化。为了解决这个问题,当前出现了敏捷模式。
敏捷分为敏捷开发和敏捷测试,特点和特征是:
1. 测试驱动开发和行为驱动测试
测试驱动开发是指开发先写单元测试,再写开发的代码,当单元测试跑通的时候,代码开发就完成了。
行为驱动测试是通过直接写user story,例如Cucumber框架,说来也很简单,就是在excel里为每个测试用例写好场景对应的步骤,每个步骤又对应有关键字(动作函数),之后只要对userstory/测试场景进行补充,就可以扩展一个又一个的测试用例。当然刚开始的函数都需要一个一个去编写实现。
2. 小步快跑,拥抱变化
敏捷思想会把一个产品分成多个阶段,每个阶段大约2~4周,在这个2~4周里设定的需求是明确的,不接受过大的变化,这样能保证明确的需求的实现和产品的进度,对下一个周期需求,咱们拥抱变化。
3. 不过多强求文档话,强调人与人之间的沟通
不过多强求文档话,不是说拒绝文档,有文档是最好的,但是因为时间原因,不写文档是允许的。
强调人与人之间的沟通,开发测试人员在一个小的空间里(圆桌,没有挡板的办公环境),有问题可进行当面沟通。
4. 站会(用小黄贴,展示进度)
每日站会,开发和测试回报进度,把遇到的困难说出来讨论。每个人对项目整理进度也方便了解。
5. 结对编程
同一段代码由2个人写,一个人写代码,一个人review,或者交换。这个方式是google在用的一种方式。
6. 持续集成
强调快速构建,快速测试,可以通过持续集成工具jenkins,好处是:快速发现问题,快速定位问题,节约排查时间成本等。
7.自动化测试
大多数是单元测试。
8. 重构
因为敏捷开发时,注重的速度,很多代码写的不够好,之后可能需要重写代码,这时,单元测试就特别重要。单元测试能检验代码重写是否正常。
测试面试话题2:如何不漏测?
不漏测这个话题本身就是个伪命题,微软的产品都天天打补丁,包括google, facebook都经常打补丁。测试人员是没有办法保证不漏测的,但是尽可能少漏测,而且每次保证漏测的原因都是不一样的。
不漏测就等于软件没有bug,这个是整个团队的事情,团队对整个产品质量负责,测试只是质量管理中的一个小环节。
如何通过团队来构建一个好的产品质量,才是一个好的话题。
产品测试分层和效果:单元测试>接口测试>UI测试
单元测试:开发需要做单元测试和代码 review来保证产品的健壮性
接口测试:接口层变化比较小,很适合做全面自动化,实现产品快速的回归;---测试人员
UI测试:UI层自动化测试+探索式测试;UI层变化大,虽然大家都想做自动化,但是效果并不好;---测试人员
基于现有的情况,提高产品质量:
1. 梳理好研发流程,各司其职。
2. 从需求开始,测试就应该介入,并且了解每一个细节, 根据产品需求文档、产品设计文档(概要设计、详细设计)来设计详细的测试用例,并且让产品人员,开发人员一同参与评审,让团队的力量来对测试用例进行一个补充,这样可以大大减少漏测可能。
3. bug预防,测试框架,探索式测试在测试用例设计上的运用,可减少漏测出现。
4. 让项目的相关人员做一些抽测,从不同的角度去测试系统。
5. 群策群力。
测试面试话题3:你个人短期和长期目标是什么?
有人会这样回答:“我的目标就是确保自己不落伍,而且我相信面对现实是十分重要的。我在某个地方读到过,我们在美国历史上比上一代退步的一代。这使我很担心,因此我的目标就是确保自己不落伍。这听起来可能有点悲观,但我是一个现实主义者,而且我相信面对现实是十分重要的。”
【评论】:这样的回答只能凸显你是个随大流的人,没有自己的个性,特点。
合理的回答
不论在长期还是短期,我的个人策略是根据当前目标评价自己所处的位置,然后相应地修改自己的计划。比如,我每五年就制定一项个人计划,这个计划中包含一个总体目标和一系列短期目标。每6个月我就回顾一下自己的进展,然后做出必要的修改。很明显,我当前的计划就是实现职业转变,也就是找到更满意的工作。除此之外,我已经实现了近期制定的个人目标。
【评论】:目标贴切实际并证明自己有在努力去实现或已实现这些目标。
测试面试话题4:给你一个测试团队,你会如何管理
这个是测试团队管理的话题
1. 管人
a. 招聘新人,找到合适的人,新人是需要做入职培训。让新人快速融入到团队中去,和开发和测试打成一片。
b. 与团队成员多做有效沟通,了解每个人真正诉求,根据诉求和公司的要求做一个管理上的平衡。
c. 设定KPI,合理的激励,奖惩分明。
d. 团建,增进了解。
2. 理事
a. 做好日常项目管理工作,监控项目的方方面面,保证公司的项目开发和质量要求。
a1. 团队成员往往以测试组的名字接不同的测试项目,需要全局把握项目的进展,比如说:需求是否了解足够充分,测试用例设计的是否足够充分,项目执行过程中是否有什么风险
b. 根据每个人的诉求和特点,合理的安排每个人的工作(喜欢挑战的,就给一些挑战性的工作; 不喜欢挑战的,就给一些日常性的工作)。
管理没有真正意义上的对和错,让每个人开开心心的工作,做到一个平衡,就算是成功了。
测试面试话题5:感谢每一次面试机会
每次面试都是一次修行!都是了解自己缺点,发现不足,重新认识自己,改善提高的机会!每一次面试又是一次缘分,我们可以静静的听对方的故事和建议,思考对比自己的人生,不断修正,学习借鉴!自我鞭策!
求职的酸甜苦辣,人生百态,冷暖自知!我也重新梳理了测试行业,修正了个人发展目标。其间的经验、心得体会、方式方法希望与大家分享探讨,互相帮助,互相勉励,一起度过暂时的中年危机!
软件测试面试时一份好简历的重要性
相关文章:
软件测试面试心得:四种公司、四种问题…
以下是我个人总结的一些经验: 传统开发模式:V模式,瀑布模式。传统开发模式往往循规蹈矩,从需求,概要设计,详细设计,开发,单元测试,集成测试,系统测…...
【探索SpringCloud】服务发现-Nacos使用
前言 在聊服务注册中心时,便提到了Nacos。这次便来认识一下。当然,这自然没有官方介绍那般详尽,权当是学习了解Nacos原理的一个过程吧。 Nacos简介 Nacos,全名:dynamic Naming And Configuration Service. 而这个名…...
soap通信2
首先,定义一个XSD(XML Schema Definition)来描述你的数据结构。在你的Maven项目的src/main/resources目录下,创建一个名为schemas的文件夹,并在其中创建一个名为scriptService.xsd的文件,内容如下ÿ…...
【MySQL】MySQL不走索引的情况分析
未建立索引 当数据表没有设计相关索引时,查询会扫描全表。 create table test_temp (test_id int auto_incrementprimary key,field_1 varchar(20) null,field_2 varchar(20) null,field_3 bigint null,create_date date null );expl…...
JVM垃圾回收篇-垃圾回收算法
JVM垃圾回收篇-垃圾回收算法 标记清除(Mark Sweep) 概念 collector指的就是垃圾收集器。 mutator是指除了垃圾收集器之外的部分,比如说我们的应用程序本身。 mutator的职责一般是NEW(分配内存)、READ(从内存中读取内容)、WRITE(将内容写入内…...
android APP内存优化
Android为每个应用分配多少内存 Android出厂后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会OOM。这个属性值是定义在/system/build.prop文件中. 例如,如下参数 dalvik.vm.heapstartsize8m #起始分配内存 dalvik.vm.…...
mysql_docker主从复制_实战_binlog混合模式_天座著
步骤1:拉取镜像 docker pull mariadb:latest 步骤2.1:创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2:创…...
鸿蒙开发学习笔记1——真机运行hello world
问题背景 学习任何语言和框架的第一步,永远都是跑通熟悉的“hello world”,本文将介绍鸿蒙开发如何跑通“hello world”。 问题分析 一、构建第一个ArkTS应用(fa模型) 说明:请使用DevEco Studio V3.0.0.601 Beta1及…...
Java数组,简简单单信手沾来~
——数组,一组相同数据类型的数据 一.一维数组 1.数组的基本概念 1)数组用于存储多个同一数据类型的数据 2)数组是数据类型【引用类型】 3)数组的形式:数据类型 [] 4)数组的下标从0开始 5)数…...
认识SourceTree
一. SourceTree是什么 SourceTree是一款免费的Git和Mercurial版本控制系统,它可以帮助开发人员在一个友好的UI界面中管理代码,方便地进行版本控制和代码同步。支持创建、克隆、提交、push、pull 和合并等操作。 二. SourceTree的安装破解 1. 如果你还…...
python之列表推导式
列表推导式是一种简洁的方式来创建列表。它允许您通过在单个表达式中定义循环和条件逻辑,以一种更紧凑的方式生成新的列表。使用列表推导式可以使代码更简洁,易于阅读,并且通常比传统的迭代方法更快。 列表推导式的一般语法形式为:…...
selenium自动化测试之搭建测试环境
自动化测试环境: Python3.7Selenium3.141谷歌浏览器76.0/火狐浏览器 1、安装Python并配置环境变量。 下载并安装:配置环境变量:C:\Python37;C:\Python37\Scripts; 2、安装Pycharm开发工具。 下载地址: 注意下载:Co…...
模拟实现消息队列(以 RabbitMQ 为蓝本)
目录 1. 需求分析1.1 介绍一些核心概念核心概念1核心概念2 1.2 消息队列服务器(Broker Server)要提供的核心 API1.3 交换机类型1.3.1 类型介绍1.3.2 转发规则: 1.4 持久化1.5 关于网络通信1.5.1 客户端与服务器提供的对应方法1.5.2 客户端额外…...
WordPress更换域名后-后台无法进入,网站模版错乱,css失效,网页中图片不显示。完整解决方案(含宝塔设置)
我在实际解决问题时用到了 【简单暴力解决方案】的《方法一:修改wp-config.php》 和 【简单暴力-且特别粗暴-的解决方案】 更换域名时经常遇到的几个问题: 1、更换域名后,后台无法进入 2、更换域名后,网站模版错乱,css失效 3、更换域名后,网页中图片不显示 这是为什…...
无法正确识别车牌(Python、OpenCv、Tesseract)
我正在尝试识别车牌,但出现了错误,例如错误/未读取字符 以下是每个步骤的可视化: 从颜色阈值变形关闭获得遮罩 以绿色突出显示的车牌轮廓过滤器 将板轮廓粘贴到空白遮罩上 Tesseract OCR的预期结果 BP 1309 GD 但我得到的结果是 BP 1309…...
VSCODE[配置ssh免密远程登录]
配置ssh免密远程登录 本文摘录于:https://blog.csdn.net/qq_44571245/article/details/123031276只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 这里要注意如下几个地方: 1.要进入.ssh目录创建文件: 2.是拷贝带"ssh-…...
Multi-object navigation in real environments using hybrid policies 论文阅读
论文信息 题目:Multi-object navigation in real environments using hybrid policies 作者:Assem Sadek, Guillaume Bono 来源:CVPR 时间:2023 Abstract 机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。 最近…...
初始多线程
目录 认识线程 线程是什么: 线程与进程的区别 Java中的线程和操作系统线程的关系 创建线程 继承Thread类 实现Runnable接口 其他变形 Thread类及其常见方法 Thread的常见构造方法 Thread类的几个常见属性 Thread类常用的方法 启动一个线程-start() 中断…...
论坛项目day3|开发社区首页
在典型的基于层次结构的软件架构中,特别是在使用MVC(模型-视图-控制器)设计模式的情况下,Controller、Service、DAO(数据访问对象)和Entity通常扮演着不同的角色,并且它们之间有清晰定义的关系。…...
Server - 文字转语音 (Text to Speech) 的在线服务 TTSMaker
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132287193 TTSMaker 是一款免费的文本转语音工具,提供语音合成服务,支持多种语言,包括英语、法语、德语、西班…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
计算机系统结构复习-名词解释2
1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...
Copilot for Xcode (iOS的 AI辅助编程)
Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...
