赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
(6)数据不正确,精度不够,格式不统一。
(7)用户不接受的其他问题。
**25.**缺陷的状态?
(1)提交:已提交的缺陷。
(2)打开:确认提交的缺陷,等待处理
(3)拒绝:拒绝提交的缺陷,不需要修复或者不是缺陷。
(4)修复:缺陷被修复
(5)关闭:确认修复的缺陷,将其关闭。
(6)推迟:推迟到以后解决。
**26.**缺陷的分类?
**1、**系统缺陷
(1)由程序引起的死机,异常退出。
(2)程序死循环
(3)程序错误,不能执行重要功能。
**2、**数据缺陷
(1)数据计算错误
(2)数据约束错误
(3)数据输入,输出错误。
**3、**数据库缺陷
(1)数据库发生死锁
(2)数据库的表未加约束条件
(3)数据库连接错误
(4)数据表中有过多空字段
**4、**接口缺陷
(1)数据通信错误
(2)程序接口错误
**5、**功能缺陷
(1)功能无法实现
(2)功能实现错误
**6、**安全性缺陷
(1)用户权限无法实现
(2)超时
(3)访问控制
(4)加密错误
**7、**兼容性缺陷
(1)与需求规定兼容性不符
**8、**性能缺陷
(1)未达到预期的性能指标
(2)性能测试中的错误,导致无法继续
**9、**界面缺陷
(1)操作界面错误
(2)打印内容,格式错误
(3)删除未给提示
(4)界面不规范
**27.**缺陷报告注意的事项?
(1)尽量保证缺陷可以重现
(2)简洁、准确、完整。
(3)一个缺陷报告只写一个缺陷
**28.**缺陷书写规范?
(1)标题:保持简洁,准确
(2)步骤:重现测试的步骤,完整,有顺序,明确
(3)实际结果:执行步骤后的结果
(4)预期结果:列出期望的结果
(5)提供附件:图片或者截图
**29.**缺陷的跟踪?
(1)新建提交的缺陷为”新建“状态。
(2)再确认有效之后为”打开“状态
(3)开发人员修改后”已修复“状态。
(4)测试人员需要回归测试,如果bug已修复,状态改为”已解决“状态。
**30.**你会搭建测试环境?
测试环境=硬件+软件+网络+数据准备+测试工具
**(1)**硬件
计算机系统:windows系统,Linux系统,macos系统
1)Linux系统的命令和操作必须熟练。
2)Linux系统包括:centos、ubuntu
3)明确软件对硬件的需求:cpu个数、内存大小、硬盘大小
4)了解各种操作系统:Linux命令、安装系统、配置ip
**(2)**软件
1)当前被测的软件以及相互依赖交互的软件
2)将被测软件部署在linux系统上
3)依赖和交互的软件如:JDK、tomcat、数据库
**(3)**网络
1)基本网络协议:tcp、udp、http
2)Linux ip和路由配置
3)Linux命令抓包
**(4)**数据准备
1)准备测试数据
2)测试数据在测试用例阶段设计好
3)少量,正常数据可以手工测试,大量数据通过测试工具。
**(5)**测试工具
1)接口测试:jmeter/postman
2)压力和性能测试:loadrunner
3)抓包工具:fiddler/wireshark
4)测试管理工具:禅道、bugfree、jira、bugzilla
**31.**成为优秀软件测试工程师具备的能力?
1)认真、负责、严谨、耐心地态度
2)有过硬的技术本领:测试理论、测试工具、数据库、开发知识
3)沟通能力十分重要:除了与开发沟通,还要和不同的产品、运营、客服等打交道。如何准确,简洁,严谨的描述bug。
4)逻辑思维能力:重要的是去寻找bug产生的真正原因,准备找到问题的源头。
32.fiddler抓包工具?
(1)概念?
Fiddler是位于客户端和服务端的http代理,为目前最常用的抓包工具之一。
**(3)**功能?
1) 检查所有浏览器的所有http/https流量
2) 查看、分析请求内容细节
3) 伪造客户端请求和服务器响应
4) 测试网站的性能
5) 解密https的web会话
6) 全局、局部断点
**(4)**使用场景?
1)接口调试
2)接口测试
3)线上环境调试
4)Web性能分析
5)判断前后端bug
6)开发环境
7)Host 配置
8)弱网断网测试
33.http协议?
超文本传输协议,用于从万维网服务器传输超文本到本地浏览器。http是基于请求和响应模式的无状态应用层协议。
完整的http包括请求和响应两块内容:
(1)http请求报文
主要是由请求行、请求头部、空一行、请求正文四部分组成。
1)请求方法:
Get(请求资源),
Post(提交资源),
head(获取响应头),
put(替换资源),
delete(删除资源),
option(允许客户查看服务器性能),
url(统一资源定位符)
2)请求头部:
Host(主机ip地址/域名)
User-agent(客户机相关信息)
Accept(指定客户端接收数据类型比如:.jpg/html)
Accept-charset(客户端接受的字符集比如:gbk/utf-8)
Accept-language(可接受的语言)
Cookie(携带的cookie信息)
Referer(当前文档url)
Content-type(请求内容类型)
content-length(数据长度)
(2)http响应报文
主要是由状态行、响应头部、空行、响应正文组成。
1)状态行:请求的协议及版本
状态码:服务器响应状态的3位数字代码
1xx:提示信息,请求被成功接收
2xx:成功,请求被成功处理 200
3xx:重定向 304
4xx:客户端错误 404
5xx:服务端错误 500
2)响应头部
Server(http服务器软件信息)
Date(响应报文时间)
Exprise(缓存过期时间)
set-cookie(设置cookie)
Last-modified(最后修改时间)
Content-type/content-length
Linux目录结构如下:
cmd [options] [arguments]
,options称为选项,arguments称为参数
选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开。
一般来说,后面跟的选项如果单字符选项前使用一个减号-
。单词选项前使用两个减号--
ls -a
和ls -all
,a
单个字符使用一个-
,一个单词all
使用两个--
在Linux中,可执行的文件也进行了分类:
通配符:
学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)
常见的文件操作命令:
1)可用 pwd
命令查看用户的当前目录
2) 可用 cd
命令来切换目录
.
表示当前目录
..
表示当前目录的上一级目录(父目录)
-
表示用 cd 命令切换目录前所在的目录
~
表示用户主目录的绝对路径名
3)ls命令(查看当前目录下的内容)
ls-l 显示详细列表相当于ll
ls-lh 将数据大小按人性化显示
ls-a 显示所有文件,包含隐藏文件
4)mkdir 创建文件夹
mkdir tupian在当前目录下创建文件夹
mkdir /home/admin/tupian 以绝对路径创建文件夹
mkdir /home/admin/a/tupian -p 如果上级目录不存在,加上-p会自动创建父目录
mkdir a b 在当前目录下创建多个文件夹
5)touch 创建空文件
touch a.txt 在当前目录下创建文件
gedit a.txt 使用记事本打开文件
6)rm删除文件或者文件夹
rm a.txt 删除文件
rm abc -r 删除文件夹
rm * 删除所有(不能删除隐藏文件)
7)cp 拷贝文件
cp 1.txt 2.txt 将1.txt内容复制到2.txt
cp abc abcx -r 拷贝文件夹
8)mv 移动文件(相当于剪切)
mv 1.txt 2.txt 剪切文件
mv abc abx 剪切文件夹
9)cat 查看文件内容或者合并内容
cat 1.txt 把文件的内容显示到窗口中
cat 1.txt 2.txt 将两个文件合并的内容显示到窗口中
10) grep 查找文件内容
grep hello a.txt 在文件a.txt中查找“hello”
grep -niv hello a.txt (n:显示行号,i:不区分大小写,v:反向查找,查找不含hello的内容)
11) find 查找文件
find /home -name 1.txt 查找名为1.txt的文件
find /home -name “*txt” 查找所有以txt结尾的文件
12)tar 打包归档
tar cvf a.tar 1.txt 2.txt (f必须放在最后,a.tar指打包后的文件)
tar tf a.tar 列出包里的文件
tar xvf a.tar 解开文件并放到当前目录
13)less| more 分页显示文件文档内容,可以向前后翻
14)head 显示文档前面的内容,默认显示前十行
常见的系统操作命令
1)top 显示当前系统资源消耗最多的进程
2)date 显示当前系统时间
3)ps -e 显示当前所有进程、环境变量
4)ps -ef 全格式显示
5)ps -a 显示所有用户所有进程
6 )kill -9 ss 强制杀死一个进程
7)压缩、解压
gzip 涉及参数说明:
-k 保留源文件 -d 解开压缩文件 -r 递归处理,将指定目录下的所有文件及子目录一并处理 -v 显示指令执行过程
压缩:
gzip -k ./* #当前目录下所有文件进行压缩,每个文件一个gz包
gzip -rkv ./* 递归压缩
解压:
gzip -dv test.gz
bzip2:
bzip2 -zk test #**压缩**test文件
bzip2 -dk test.bz2 #**解压**
其他命令:
1)、启动mysql服务:systemctl start mysql;service mysqld start
2)、解压文件:tar –zxvf 文件名
3)、创建用户分组:groupadd 分组名
4)、创建新用户:useradd 用户名
5)、下载安装文件:yum install -y文件名
6)、编辑文件:vi 文件名
7)、保存: :wq
8)、强制退出::q!
9)、创建文件:mkdir 文件名
10)、本机复制文件:cp file /remote_file/file
11)、移动文件:mv file /remote_file/file
12)、多台主机传输文件:scp local_file remote_username@remote_ip:remote_folder(需要注意的是需要知道目标主机的密码密码以及网络通畅)
13)、删除文件:rm –rf file
14)、查看主机信息:top
15)、查看进程:ps –ef | grep mysql
16)、查看端口:netstat -tunlp | grep 3306
17)、杀死进程:kill -9 进程号
18)、切换目录:cd
19)、显示磁盘信息:df –h
20)、Docker
软件的生命周期(prdctrm)
计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne)
测试用例
用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果
1**、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决?**
首先,将问题提交到缺陷管理库里面进行备案。
然后,要获取判断的依据和标准:
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
2**、问:给你一个网站,你如何测试?**
首先,查找需求说明、网站设计等相关文档,分析测试需求。
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
界面测试可以包括但不限于一下几个方面:
性能测试一般从以下两个方面考虑:
压力测试;负载测试;强度测试
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
兼容性测试,根据需求说明的内容,确定支持的平台组合:
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。
3**、在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner****进行测试**。
**录制测试脚本:**新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。
**设置测试场景:**针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果
4**、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?**
5**、试述软件的概念和特点?软件复用的含义?构件包括哪些?**
软件是计算机系统中与硬件相互依存的另一部分,与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
可以被复用的软件成分一般称作可复用构件
6**、软件生存周期及其模型是什么?**
**软件生存周期(Software life cycle)**又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。
周期模型(典型的几种):
生命周期阶段:
7**、什么是软件测试?软件测试的目的与原则**
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试的目的:
软件测试的原则:
8**、软件配置管理的作用?软件配置包括什么?**
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计
9**、什么是软件质量?**
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
10**、目前主要的测试用例设计方法是什么?**
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法
11**、软件的安全性应从哪几个方面去测试?**
软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
12**、什么是测试用例什么是测试脚本两者的关系是什么?**
为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
测试脚本是为了进行自动化测试而编写的脚本。
测试脚本的编写必须对应相应的测试用例
13**、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试****β测试**
14**、软件质量保证体系是什么****国家标准中与质量保证管理相关的几个标准是什么?**他们的编号和全称是什么?
SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
15**、软件产品质量特性是什么?**
功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、易恢复性。
可使用性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性
16**、软件测试的策略是什么?**
软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
17**、软件测试分为几个阶段****各阶段的测试策略和要求是什么?**
和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试测试策略:
自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
孤立单元测试策略:最好的单元测试策略。
集成测试的测试策略:
大爆炸集成:适应于一个维护型项目或被测试系统较小
自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
基于进度的集成
优点:具有较高的并行度;能够有效缩短项目的开发进度。
缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
系统测试的测试策略:
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
18**、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?**
**单元测试阶段:**各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。
**集成测试阶段:**集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。
**系统测试阶段:**将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。
19**、测试人员在软件开发过程中的任务是什么?**
1、尽可能早的找出系统中的Bug;
2、避免软件开发过程中缺陷的出现;
3、衡量软件的品质,保证系统的质量;
4、关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量。
20、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
一条Bug记录最基本应包含:
bug编号;
bug严重级别,优先级;
bug产生的模块;
首先要有bug摘要,阐述bug大体的内容;
bug对应的版本;
bug详细现象描述,包括一些截图、录像…等等;
bug出现时的测试环境,产生的条件即对应操作步骤;
高质量的Bug记录:
21**、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!**
黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。
黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。
白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
22**、如何测试一个纸杯?**
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
22**、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?**
软件测试计划是指导测试过程的纲领性文件:
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划编写6要素(5W1H):
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
23**、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。**
1)等价类划分: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2)边界值分析法:是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3)错误猜测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.
4)因果图方法:前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5)正交表分析法:可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6)场景分析方法:指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
7)状态图法:通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。
8)大纲法:大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。
24**、详细的描述一个测试活动完整的过程**。(供参考,本答案主要是瀑布模型的做法)
项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪
开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
测试用例完成后,测试和开发需要进行评审。
测试人员搭建环境
开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。
开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。
重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。
如果有客户反馈的问题,需要测试人员协助重现并重新测试。
26**、BUG****管理工具的跟踪过程(**用BugZilla为例子)
测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员
开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。
如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。
测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
27****、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。
运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。
在团队中建立测试人员与开发人员良好沟通中注意以下几点:
一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上
当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。
28**、你对测试最大的兴趣在哪里?为什么?**
回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
最大的兴趣,感觉这是一个有挑战性的工作;
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下几个方面:
尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。
29**、你自认为测试的优势在哪里?**
该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好
33**、简述你在以前的工作中做过哪些事情,比较熟悉什么**。参考答案如下。
我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。
在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。
测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
34**、在C/C++中static有什么用途?(请至少说明两种)**
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
35**、引用与指针有什么区别?**
36**、Internet采用哪种网络协议?该协议的主要层次结构?Internet物理地址和IP****地址转换采用什么协议?**
TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。
ARP (Address Resolution Protocol)(地据址解析协议)
37**、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试**;
自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
2、自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
38**、软件验收测试包括**正式验收测试、alpha测试、beta测试三种测试。
39**、系统测试的策略**有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。
40**、设计系统测试计划需要参考的项目文档有**软件测试计划、软件需求工件、和迭代计划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
34**、在C/C++中static有什么用途?(请至少说明两种)**
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
35**、引用与指针有什么区别?**
36**、Internet采用哪种网络协议?该协议的主要层次结构?Internet物理地址和IP****地址转换采用什么协议?**
TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。
ARP (Address Resolution Protocol)(地据址解析协议)
37**、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试**;
自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
2、自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
38**、软件验收测试包括**正式验收测试、alpha测试、beta测试三种测试。
39**、系统测试的策略**有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。
40**、设计系统测试计划需要参考的项目文档有**软件测试计划、软件需求工件、和迭代计划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-y1rRUbYd-1713612849341)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。