第一节  软件测试基础知识

1. 怎样看待测试,知道哪些测试的类型,有用过哪些测试方法?

  • 软件测试是使用人工或自动化手段来运行或测定某个系统的过程。其目的在于检验它是否能满足规定的需求或是弄清楚预期结果与实际结果之间的差别
  • 测试是软件开发中不可或缺的一环,测试通过经济,高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。
  • 测试分为功能测试非功能测试。非功能测试又可以分为性能测试、压力测试、容量测试、健壮性测试、安全性测试、可靠性测试等。
  • 测试方法包括等价划分发、边界值分析法、错误推测法、因果图法等。

2. 软件测试的目的

  • 验证软件需求和功能是否得到完整实现
  • 验证软件是否可以发布
  • 尽可能多的发现软件中的bug
  • 尽可能早的发现软件中的bug
  • 对软件质量做出合理评估
  • 预防下个版本可能出现的问题
  • 预防用户使用可能出现的问题
  • 发现开发过程中的问题和风险

3. 软件测试的原则

  • 所有测试的标准都是建立在用户需求之上
  • 合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡
  • 80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来
  • 尽可能早的开展测试,越早发现错误,修改的代价越小
  • 发现错误较多的程序段,应进行更深入的测试
  • 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试 。
  • 软件开发人员即程序员应当避免测试自己的程序
  • 严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作

4. 测试项目具体的工作是什么?

  • 搭建测试环境
  • 撰写测试用例
  • 执行测试用例
  • 写测试计划,测试报告
  • 测试,并提交bug表单
  • 跟踪bug修改情况
  • 执行自动化测试,编写脚本,执行,分析,报告
  • 进行性能测试,压力测试等其他测试,执行,分析,调优,报告

5. 测试的相关流程

  • 拿到需求文档和UI原型图,分析需求文档和UI原型图,搞清楚逻辑和需求
  • 编写测试用例,用excel或者xmind
  • 和产品、开发进行用例评审,评审结束后,修改测试用例
  • 测试阶段:界面测试,功能性测试,性能测试
  • 提交bug:首先找出的bug要区分是哪方面的问题,前后端、兼容性等等,区分清楚后将bug反馈给对应的开发,提交bug单
  • 提交bug单:将bug场景描述清楚,有必要的还需要截图配文字,将单子开给对应开发,开发修改完成后重新测该bug,测试通过关闭bug单,测试不通过则再一次打回去
  • 在产品上线之前,每天都要讲统计的bug清单反馈砸项目组,以防有遗漏的
  • 产品上线之后,在线上环境测试
  • 最后写测试报告,邮件发给相关人员

分析需求→制定测试计划→设计测试用例→执行测试用例→提交bug→验证bug→测试报告测试总结

6. 测试结束的标准是什么?

从项目周期看:

  • 超出了所分配的测试时间
  • 用尽了分配的测试资源
  • 到达了某一个固定的里程碑(如合同规定的交付日期)

从测试角度看:

  • 测试需求覆盖率
  • 测试代码覆盖率
  • 测试用例度量
  • 缺陷检查度量

7. Bug的相关知识

  • Bug的管理流程:发现bug→确认是否是bug→定位bug→提交bug→验证bug→测试报告→bug总结
  • Bug的等级划分:崩溃、严重、一般、次要
  • Bug包含的内容:发现问题的版本、出现问题的环境(Bug测试环境)、Bug标题短描述、重现步骤--详细步骤、实际结果、预期结果、Bug类型和严重程度、附件

8. 软件测试的分类

按照是否执行被测试软件来分:

  • 静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等,主要对软件需求说明书、设计说明书、软件源代码进行检查与分析。
  • 动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析差异原因,并分析软件运行效率、健壮性等性能。

按照测试技术分为黑盒测试和白盒测试:

  • 黑盒测试:黑盒测试又叫功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误。
  • 白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构进行测试程序,通过测试来检测产品内部逻辑是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

按照测试手段来分:可以分为手工测试和自动化测试

按照过程阶段来分:可以分为单元测试、集成测试、系统测试和验收测试

9. 软件测试的几个阶段

  • 单元测试:对软件中的最小可验证单元进行检查和验证。比如对Java中的类和方法的测试。(模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试)
  • 集成测试:在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。集成测试主要针对程序内部结构进行测试,特别是对程序之间的接口进行测试。
  • 系统测试:将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
  • 验收测试:是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。
  • 回归测试:是指在发生修改之后重新测试先前的测试用例以保证修改的正确性。

10. 什么是α测试,什么是β测试?

α测试:在受控的环境中进行,由用户在开发者的场所进行,并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题(开发环境)

β测试:在开发者不能控制的环境中的真实应用,由软件的最终用户们在一个或多个场所下进行,由用户记录在测试中遇到的一系列问题,并定期报给开发者(线上环境)

11. 集成测试的主要内容

  • 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失
  • 一个模块的功能是否会对另一个模块的功能产生不利的影响
  • 各个子功能组合起来,能否达到预期要求的父功能
  • 全局数据结构是否有问题
  • 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度

12. 集成测试与系统测试的关系

  • 集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书
  • 集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试

13. 白盒测试的方法

白盒测试方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

  • 语句覆盖每条语句至少执行一次
  • 判定覆盖每个判定的每个分支至少执行一次
  • 条件覆盖每个判定的每个条件应取到各种可能的值
  • 判定/条件覆盖同时满足判定覆盖条件覆盖
  • 条件组合覆盖每个判定中各条件的每一种组合至少出现一次
  • 路径覆盖使程序中每一条可能的路径至少执行一次

14. 自动化测试的意义,以及自动化测试需要做什么

  • 可以对程序的新版本自动执行回归测试
  • 可以执行手工测试困难或者不可能实现的测试如压力测试,并发测试
  • 能更好的利用资源,节省时间和人力

执行自动化测试之前首先要判断这个项目是不适合推广自动化测试,然后对项目做需求分析,指定测试计划,搭建自动化测试框架,设计测试用例,执行测试,评估。

15. 手动测试和自动化测试的优缺点

手动测试是需要人工完成的测试,被广泛应用于各类产品的各种测试任务中,而与之相对应还有自动化测试,即通过程序自动运行完成测试任务。自动化测试能帮助开发团队节省测试运行的人工、提高开发效率。

手动测试

  1. 优点:测试人员具有经验和对错误的猜测能力;测试人员具有审美能力和心理体验;测试人员具有是非判断和逻辑推理能力
  2. 缺点:重复的手工回归测试,代价昂贵,容易出错;依赖于测试人员的能力
  3. 迭代周期比较短的适合手动测试

自动化测试

  1. 优点:可以运行一些手工测试困难或者不能进行的测试;可以运行更多繁琐的测试;测试的复用性;对程序的回归测试更方便
  2. 缺点:无法取代手工测试;手工测试比自动测试发现的缺陷更多;测试自动化不能提高有效性
  3. 迭代周期比较长的适合自动化测试

16. 如何理解压力、负载、性能测试测试?

  • 性能测试是一个较大的范围,实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容。
  • 压力测试是对服务器的稳定性以及负载能力等方面的测试,是一种很平常的测试。增大访问系统的用户数量、或者几个用户进行大数据量操作都是压力测试。
  • 负载测试是压力相对较大的测试,主要是测试系统在一种或者集中极限条件下的相应能力,是性能测试的重要部分。100个用户对系统进行连续半个小时的访问可以看作压力测试,那么连续访问8个小时就可以认为负载测试,1000个用户连续访问系统1个小时也可以看作是负载测试。

17. 软件质量的六个特征

  • 功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能
  • 可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性
  • 易用特征:由一组规定或者潜在的用户为使用软件所需做的努力和所做的评价有关的属性
  • 效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性
  • 可维护特征:与进行指定的修改所需的努力有关的一组属性
  • 可移植性特征:与软件从一个环境转移到另一个环境的能力相关的一组属性

18. 什么是兼容性测试?兼容性测试侧重哪些方面?

  • 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
  • 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
  • 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

19. 软件测试的框架

  • seleniumweb自动化测试框架

据Selenium主页所说,与其他测试工具相比,使用Selenium的最大好处是:

Selenium测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在Windows、Linux和Macintosh上的Internet Explorer、Chrome和Firefox中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处

  • appiumapp自动化测试框架,继承了webdriver,appium仍然需要通过selenium最后做测试工具,但是appium起到了一个连接手机端非常好的桥梁工作!可以连接到电脑上非常方便的调用selenium工具来做测试
  • postman主要用来做接口测试
  • jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,一般配合badboy使用录制功能。相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。(loadrunner支持市面上的主流编程语言,而且有强大的录制功能,但是不开源,是价格昂贵的商用软件)
  • JenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

20. 软件测试的方法

  • 白盒测试:针对被测单元内部是如何进行工作的测试,它根据程序的控制结构设计测试用例,主要用于软件和程序验证(代码审查,语句覆盖,判定覆盖,条件覆盖,组合覆盖,基本路径,形式化方法,符号执行)
  • 黑盒测试:是在已知产品所应该具有的功能,通过测试来检测每个功能是否能正常使用(等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验法、场景法)
  • 灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。灰盒测试就是这类界于白盒测试和黑盒测试之间的测试
  • 静态测试:是一种不通过执行程序而进行测试的技术。它的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
  • 动态测试:包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确

单元测试属于白盒测试范畴;集成测试属于灰盒测试范畴;系统测试属于黑盒测试范畴

                                     第二节 软件测试经典用例

1. 手机APP的性能测试

  • 内存:主要关注空闲状态、中等规格、满规格状态下的内存消耗;占用内存的峰值;是否常驻内存;是否存在内存泄漏
  • CPU主要关注空闲状态、中等规格、满规格状态下的CPU消耗情况;应用CPU峰值
  • 流量:应用首次启动流量值;应用后台连续运行2小时的流量值;应用高负荷运行的流量峰值;应用中等负荷运行时的流量均值
  • 电量:测试手机安装软件前后待机功耗有无明显差异;常见应用场景中能够正常进入待机,待机电流在正常范围内;长时间连续使用应用无异常耗电情况
  • 启动速度:应用首次启动所花费的时间;应用非首次启动所花费的时间;应用界面内切换所花费的时间
  • 滑动速度、界面切换速度
  • 与服务器交互的网络速度

2. 如何排除PC网络故障

  • 首先排除接触故障,即保证你的网线是可以正常使用的。
  • 然后禁用网卡后再启动,排除偶然故障。
  • 使用ipconfig查看计算的上网参数,查看IP地址和网卡物理信息等相关网络详细信息
  • 使用ping命令测试网络的连通性,定位故障范围。在命令提示符窗口中输入“ping 127.0.0.1”,判断本机网络协议是否工作正常
  • ping本机IP,查看网卡驱动程序是否正常
  • ping网关,查看网关设置、本机上网设置参数等是否正常

3. 请你说一说web测试和app测试的不同点

  • 系统架构方面

Web项目,都是基于浏览器的;app项目,必须要有客户端,用户必须安装客户端。Web项目只要更新了服务器端,客户端就会同步更新;app项目则需要客户端和服务器端同步更新

  • 性能方面

Web页面主要关注响应时间;app则会关注流量、电量、CPU、GPU、内存等

  • 兼容方面

Web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容;app测试则要看分辨率,屏幕大小,还要看设备系统。

Web测试是基于浏览器的所以不许哟啊考虑安装卸载;app是客户端的,则必须测试安装、更新、卸载。

4. 怎样测试网络协议?

协议测试包括四种类型的测试

  • 一致性测试:检测协议实现本身和协议规范的符合程度
  • 互操性测试:基于某一项协议检测不同协议实现间互操作互通信的能力
  • 性能测试:检测协议实现的性能指标,比如数据传输速度,连接时间,执行速度,吞吐量,并发度
  • 健壮性测试:检测协议在各种恶劣环境下运行的能力,比如注入干扰报文,通信故障,信道被切断

5. 以windows对文件的复制粘帖功能为例,尽可能多地写出测试思路

  • 基本功能测试:文件的复制粘贴功能,首先关键字“文件”,文件有不同的分类(图片、视频、音频、文档等),每个分类又有不同的类型(文档类型:txt doc execl pdf等),每个文件又有不同的大小,而且文件还有很多权限,是不是隐藏,是不是只是管理员可执行。选择不同分类的不同类型,不同大小的文件做测试资源。下一个关键字 复制粘贴 复制有多种方式 右击选择、Ctrl+C、拖动复制,对应粘贴也有各种方式。然后从哪复制,粘贴到哪,比如 可以有本机硬盘、移动硬盘、优盘、内存卡、软盘、光盘、连接手机存储,复制到网络地址等等。复制粘贴后文件是不是可用,文件权限是不是有变化。复制过去容量不够怎么处理?复制过后有重名文件怎么处理?复制过程中取消、关机、拔优盘怎么处理?复制过程能不能执行文件?性能测试:复制粘贴功能性能怎么样?复制文件的速度可不可以接受?同时复制多个文件是不是可以完成?复制文件过程中占用CPU资源大不大,耗电量大不大?
  • 兼容性测试:Windows XP, Windows 7, Windows 8 , Windows 8.1, Windows 10等各种windows版本是不是都支持这个功能。
  • 交互测试:复制粘贴文件时,使用windows存储的其他功能是否有影响?比如播放本地的音频、视频、等同时复制文件是不是有影响。一边复制,一边粘贴是不是有影响。

6. 我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?

  • 检查系统是否有中毒的特征
  • 检查软件/硬件的配置是否符合软件的推荐标准
  • 确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务
  • 如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的
  • 在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况

7. 登录界面测试用例

界面测试点

  1. 界面的设计风格是否与UI的设计风格统一
  2. 界面中的文字简洁易懂
  3. 界面中没有错别字

用户名与密码在输入时,要考虑

  1. 正确的用户名与正确的密码
  2. 正确的用户名与错误的密码
  3. 错误的用户名与正确的密码
  4. 错误的用户名与错误的密码
  5. 空的用户名和空的密码
  6. 正确的用户名和空的密码
  7. 空的用户名和正确的密码
  8. 用户名的前/中/后含有空格
  9. 密码的前/中/后含有空格
  10. 用户名与密码使用的字符范围及位数限制的测试(等价类及边界值,会用到强制的复制与粘贴来实现不允许输入的字符,以及一些保留字的测试)
  11. 牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

安全性测试

  1. 密码是否隐藏
  2. 直接copy密码是否检验出错
  3. 输入特殊字符串或者输入脚本函数是否出错

兼容性测试

  1. 不同浏览器测试
  2. 浏览器不同版本测试

其他测试点

  1. 输入框之间考虑tab键是否支持
  2. 登录按钮要考虑回车键是否支持
  3. 取消后的默认位置(一般为空白的用户名输入框)
  4. 登录后的跳转页面是否正确(一般为首页)
  5. 要考虑多次点击登录和取消按钮的界面反应
  6. 考虑是否支持多用户在同一机器上登录
  7. 考虑一用户在多台机器上登录
  8. 登录页面中的注册等链接是否正确

8. 搜索框测试用例

功能测试

  1. 搜索内容为空,验证系统如何处理
  2. 搜索内容为空格,查看系统如何处理
  3. 边界值验证:在允许的字符串长度内外,验证系统的处理
  4. 超长字符串输入,系统是否会截取允许的长度来检验结果
  5. 合法的字符串长度后,加空格验证检索结果
  6. 多个关键字中间加入空格,逗号,tab验证系统的结果是否正确
  7. 验证每种合法的输入,结果是否正确
  8. 是否支持检索内容的复制、粘贴、编辑等操作
  9. 是否支持回车键搜索
  10. 多次输入相同的内容,查看系统的检索结果是否一致
  11. 特殊字符、转义字符、html脚本等需要做处理
  12. 敏感词汇,提示用户无权限等
  13. 输入的内容是否支持快捷键操作
  14. 只能输入允许的字符串长度等
  15. 输入链接是否正确跳转
  16. 搜索的历史纪录是否显示在下面
  17. 搜索内容有没有联想功能
  18. 是否可以输入数字,英文,中文
  19. 是否可以混合输入数字英文中文
  20. 输入拼音也可以进行检索
  21. 语音搜索的内容是否匹配
  22. 断网时,无法搜索
  23. 进行图片搜索时可以选择拍照或从相册中选取图片进行搜索
  24. 如果从相册中选取图片进行搜索,图上的大小是否有限制,最大为多少
  25. 搜索框边上有相机图片,便于图片搜索
  26. 点击清空历史记录,搜索框是否会清空历史记
  27. 能否识别图片中的内容
  28. 点击搜索,显示搜索界面

界面测试

  1. 查看UI是否显示正确,布局是否合理
  2. 是否有错别字
  3. 搜索结果显示的布局是否美观
  4. 已查看的结果链接,链接的颜色要灰化处理
  5. 结果数量庞大时,页面的分页布局是否合理
  6. 界面的颜色搭配是否合理

安全性测试

  1. 脚本的禁用
  2. SQL的注入,检索SQL SELECT语句等
  3. 敏感内容的检索是禁止的
  4. 特殊字符的检索
  5. 被删除、加密、授权的数据,不允许被查出来
  6. 是否有安全设计控制

兼容性测试

  1. 多平台Windows,mac
  2. 移动平台android,ios
  3. 多浏览器火狐、chrome、IE等

性能测试

  1. 搜索页面的链接打开速度的时间
  2. 搜索出结果消耗时间
  3. 弱网时搜索的响应时间
  4. 不同网速下搜索时的响应时间3G,4G,WIFI

易用性

  1. 有联想功能
  2. 搜索内容与搜索结果的匹配程度
  3. 支持拍照搜索,语音搜索

9. 软件的安全性应从哪几个方面去测试?

  • 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
  • 加密机制
  • 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
  • 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
  • 防病毒系统

10. 手机性能测试

11. WiFi的基本测试

基本功能测试

  1. 打开并能连接wifi
  2. 通过wifi上网
  3. 多次打开关闭wifi无错误
  4. 与wifi有关的各个控件都可用
  5. 充电时测试以上四个功能
  6. 睡眠后唤醒wifi测试以上四个功能

性能测试

  1. Wifi在不同信号强度下连接上网
  2. Wifi的下载速度
  3. Wifi的上传速度
  4. Wifi的网络切换和搜索的速度

稳定性测试:持续长时间测试基本功能是否出现断开连接、不能上网等现象

异常模式测试:正常连接AP后关闭AP,再打开后测试wifi基本功能是否正常 

                                    第三节 软件测试面试问题

1. 怎么看待软件测试工作?

软件测试的基本操作就是找bug,可以理解为在规定条件下对程序进行操作,找出错误,并对程序或者系统是否满足预期功能做出评估。

测试的必需性,其实是取决于我们对要做的东西的品质的要求。或者更准确一点,做多少的测试是看我们关注多少质量指标。

举个基础的例子:如果标准是果腹,拿起来看看有没有烂掉。这其实也是个测试,很快,代价很低。如果标准是口感,需要吃起来看看,更科学的做法可能是检测含糖量等指标。这个测试更复杂一点。如果标准是营养,可能要检测各种物质的含量。如果标准是安全,估计还要做农药残留等方面的测试。

2. 为什么想要做软件测试的工作?

  • 软件测试是一种趋势,它将在软件开发中占据越来越重要的位置
  • 测试的目标是确定功能是否能够正常运作。我选择测试主要是因为在这个过程中可以“发现”和“分析",软件测试讲究的是思路,尝试各种思路去发现问题
  • 就性格方面来讲我觉得我也比较适合软件测试,具有好奇心,善于怀疑,同时考虑问题也比较全面,我觉得这在测试过程中是必不可少的
  • 还有就是成就感,研发是一个从0到1的过程,而测试是从1到1的过程,是在原来1的基础上把1变为一个更强壮的1,前后可以有一个明确的对比,更能从中获得成就感,进而更有动力

3. 你认为做好测试计划工作的关键是什么?

做好测试计划工作的关键:目的,管理,规范

  • 明确测试的目标,增强测试计划的实用性
  • 坚持“5W”规则,明确内容与过程
  • 采用评审和更新机制,保证测试计划满足实际需求
  • 分别创建测试计划与测试详细规格、测试用例

4. 测试工作需要哪些知识和能力?

  • 需要的知识:软件测试基础理论知识、编程语言基础、自动化测试工具、计算机基础知识、测试框架
  • 需要的能力:业务分析能力、缺陷洞察能力、团队协作能力、沟通表达能力
  • 软件测试的核心竞争力:提早发现问题;发现别人发现不了的问题

5. 如何写测试用例

  • 测试人员尽早接入,彻底理解清清楚需求,这个是写好测试用例的基础
  • 如果以前有类似的需求,可以参考类似需求的测试用例,然后还需要看类似需求的bug情况
  • 清楚输入、输出的各种可能性,以及各种输入之间的关联关系,理解清楚需求的执行逻辑,通过等价类、边界值、判定表等方法找出大部分测试用例
  • 找到需求相关的一些特性,补充测试用例
  • 根据自己的经验分析遗漏的测试场景
  • 多总结类似功能点的测试点,才能够写出质量越来越高的测试用例
  • 书写格式一定要清晰

6. 测试中发现bug,开发不认账,你怎么办?

  • bug管理流程;(发现bug→确认是否是bug→定位bug)
  • 提供复现环境,是bug就一定要提,改不改是开发部门决定的,提不提是测试部门决定的,体现了你是个有原则的测试
  • 沟通技巧

测试小白的软件测试知识(适用于面试前突击)相关推荐

  1. spring boot controller构造方法_面试前突击Spring,我只需要十分钟,那么你呢?

    前言 作为一个写Java的程序员,应该不太可能没听过Spring.对开发者来说,Spring就像是哆啦A梦的口袋.无论需要什么道具,都可以从口袋里直接拿出来,而不用关心这些道具来自哪里. 本篇主要记录 ...

  2. 参加软件测试工程师面试前,这些内容你一定要准备

    在参加软件测试面试时,很多小伙伴会因为面试前准备不充分,而导致面试通过率降低.基于此,我向多年面试软件测试工程师的HR取了经,并结合自己的经历,总结成文,希望对即将参加软件测试面试的小伙伴们,有所帮助 ...

  3. 软件测试面试前必备题库(必备理论基础复习)

    因为我已经正式转岗成功,因此趁着有空,把之前自己面试前复习的知识整理起来,既可以帮助到有需要的人,也顺便自己做个总结. 在面试或者准备转岗前,大家都应该对最基本的理论知识能做到熟悉掌握,主要有以下一些 ...

  4. 2020华为测试工程师面试前三天面经汇总准备

    结合面经,做总结 主要考察:代码能力,测试是否能设计,项目经验 1.python常见语法 1.1 Python的内存管理机制是什么呢?Java的内存管理机制是什么呢? 内存管理主要包括内存分配和内存回 ...

  5. 备战金三银四,软件测试面试前都要做哪些准备?速看

    马上就是金三银四了,不知道小伙伴们有没有准备好呢?希望这篇文章的内容可以帮助到大家! 一.问题预测 让简单介绍下自己(每次面试开场) 让说下自己会的内容 看了哪些书籍(有问到) 了解过哪些技术博客/论 ...

  6. 有了软件测试面试宝典(面试前准备篇),你会发现月薪20K很简单!

    一.问题检测 1. 让简单介绍下自己(这个不用说了每次面试开场) 你好,我叫xx,来自xx,毕业于xx.目前有两年的功能测试经验.最近的一份工作是xx公司,主要参与app系统测试,负责xxapp,一款 ...

  7. mvc试图 下拉框不重复_面试前不巩固一下基础知识、刷刷题吗?

    其实面试就像一场相亲,在你心动人的面前,肯定要展示自己最好的一面,无论是穿着还是言行举止.作为一个软件开发工程师,看过很多公司的面试题,也参与过很多公司的面试,也给不少人新人面过时不试,虽说我现在并没 ...

  8. 计算机考研前沿知识怎么准备,2016考研复试面试前需充足准备9大内容

    2016考研复试交流群:198561567 考研是自己跟自己的较量,是对自己学习能力.心态调节能力等各方面能力的综合考验.谁坚持到了后,谁就是赢家,不要在这一刻掉链子了.下面是中公考研分享的考研复试面 ...

  9. 软件测试需要学什么?测试小白入门必看!

    很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识.以下是个人对测试的理解,以及测试经验,希望会对各位有所帮助! 1.测试基础理论 不管有没有计算机基础,测试理论的学习都是首要的,不管你 ...

最新文章

  1. sqlserver表变量
  2. mysql启动集群报连接本地失败_启动本地安装的pxc集群失败,前面的步骤都检查没错了...
  3. ASP.NET WebAPI 中的参数绑定
  4. csp真题字符串匹配c语言,CCF CSP认证考试历年真题 模板生成系统 C语言实现
  5. java 二分搜索获得大于目标数的第一位_程序员数据结构算法编程,二分查找搜索算法的原理与应用介绍!...
  6. 【ES11(2020)】新增数据类型 BigInt
  7. wireshark----教你如何抓包
  8. Android JNI programming demo with Eclipse
  9. 最棒的SpringCloud微服务后台管理系统
  10. Java求100以内素数和
  11. 《遥感原理与应用》孙家抦版知识点总结(含简答题、论述题)——第八章
  12. java 门票订购系统_基于jsp的景区门票订购系统-JavaEE实现景区门票订购系统 - java项目源码...
  13. Rqnoj341星门跳跃
  14. 伍拾肆- R语言之 ‘如果一列为空则取另一列‘
  15. [SSL_CHX][2021-8-19]空瓶换饮料
  16. 真正的能理解CSS中的line-height,height与line-height
  17. Flutter 快速上手定时器/倒计时及实战讲解
  18. 如何学习Android及如何利用android来赚钱
  19. execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘
  20. ubuntu各种方法卸载软件

热门文章

  1. 最美教师颁奖词计算机,微笑最美教师颁奖词2017
  2. C语言,后门程序,C++映像劫持后门实例分析
  3. Python数字华容道--程序实现的创意数学小游戏
  4. sonarQube8.9使用及branch插件使用
  5. C#,人工智能,深度学习,目标检测,OpenCV级联分类器数据集的制作与《层级分类器一键生成器》源代码
  6. 加密解密数字证书相关知识
  7. android9.0去掉默认的锁屏界面和屏幕超时锁屏
  8. [Hacking]对于删除上网痕迹的深入探讨
  9. ffmpeg处理HDR视频
  10. fwknop入门文档