Skip to content

测试基础

1. 如何制定测试计划

测试计划包括: 测试目标、测试范围、测试环境的说明、测试类型的说明(功能,安全,性能,稳定性)、 测试工具、模块的划分、测试负责人、测试执行轮次的时间安排、测试的风险 等。

2. 在项目中如何保证软件质量

项目质量不仅仅是某个人或某个团队来保障的,而是整个团队一起努力的结果,因此,在公司级别需要 有一个规范的项目流程 A. 产品,保证迭代过程中的产品逻辑,对于可能的兼容,升级做出预判,并给出方案 B. 架构设计,满足产品表达的同时,保证设计的延续性 C. 开发,产品细节的保证,技术方案选择要严谨,考虑兼容,性能,开发完成后要充分自测,严格遵循 开发规范操作 D. 测试,验证产品逻辑,站在用户角度对交互设计进行系统验证,尽可能多的使用技术手段保证测试质 量 E. 运维,制定严谨的上线流程和权限管控,做好生产环境监控报警,出现事故后有应急预案

3. 功能测试用例一般包含哪些内容?

核心内容: 用例编号、用例优先级、测试目的、所属模块、前提条件、测试环境、输入数据、测试步骤、预期结 果、测试脚本等 4. 黑盒(或功能)测试用例设计方法有哪些? 主要有等价类、边界值、流程分析、因果图、判定表、场景分析、错误推测等 5. APP测试和web测试有什么区别 Web端测试和移动端测试类型基本相似,都需要进行功能测试、性能测试、安全性测试,它们的主要区 别是: web端一般都是b/s架构,基于浏览器的,app是c/s架构,是有客户端的。 (1) 从系统架构来看的话:web测试只要更新了服务器端,客户端就会同步更新;而如果是app端通常的 需要重新安装 (2) 客户端性能方面:Web端可能只会关注响应时间;App则还要关心流量、电量、cpu等; (3) 兼容方面:Web是基于浏览器的,所以更倾向于浏览器(Chrome、firefox)和电脑硬件,电脑系统 方向的兼容;App测试则必须依赖于手机或者pad,还要看分辨率、屏幕尺寸等兼容性问题。 6. 发现一个bug,怎么定位是APP端还是服务端的问题 A、抓包分析,对接口进行抓包分析,如果请求里的参数错误,一般都是客户端bug;如果请求正常而响 应是错误的,那就是服务端的bug B、日志分析,还可以通过查看客户端/服务端的日志,分析有没有异常的日志信息,从而确定具体原因 7. 讲一下你们的测试流程 1> 需求评审和分析 2> 制定测试计划 3> 根据需求文档编写测试用例 4> 测试用例评审 5> 提测后执行冒烟测试 6> 执行第一轮测试,找bug 7> 执行回归测试,验证bug 8> 执行第二轮测试 9> 部署项目到预生产环境 10> 预生产环境测试 11> 发测试报告 12> 项目上线 13> 线上验证和监控(主流程、主功能点的验证) 8. 当开发人员说不是 BUG 时,你如何应付? 开发人员说不是bug,有2种情况: 一是需求没有确定,所以这个时候可以找来产品经理进行确认,需不需要改动,商量确定好后再看要不 要改。 二是这种情况不可能发生,所以不需要修改,这个时候可以先尽可能的说出是BUG的依据是什么?如果 被用户发现或出了问题,会有什么不良结果?开发可能会给你很多理由,你可以对他的解释进行反驳。 如果还是不行,那可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要 修改就不改。如果最终bug被确定不改,那么就要在测试报告里面记录一下,以便以后查阅。 9. 遇到概率性bug怎么办? 首先需要明确的是,该类bug也是需要提单的,描述清楚当时操作环境、操作步骤、数据、并提供必要 日志,可备注上可能产生原因。然后耐心一点,运用排除法、错误推测找规律,必要时找开发人员、项 目经理一起定位分析讨论,如果最终仍未解决,那么需要在测试报告中体现,并分析可能造成的影响, 大家一起权衡该bug是否可遗留。 10. 如何提交一份高质量的缺陷跟踪单 首先要明确,缺陷跟踪单不仅仅是给自己看的,所以高质量的缺陷单,最主要的一条判断标准是,别人 一看就懂,标题简洁明了,步骤条理清晰。还需考虑缺陷的完备性,比如缺陷等级、所属功能模块、版 本、复现步骤、预期结果、实际结果、产生原因、日志截图等 11. Bug优先级和严重程度如何划分 严重:需要立即解决的问题,比如死机、进程无响应、崩溃 高:软件的主要功能错误,或者引起数据丢失的缺陷 中:影响软件功能和性能的一般缺陷 低 :对软件的质量影响非常轻微的缺陷,多为建议性或者UI层级的问题

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

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

同步和异步区别​?

同步和异步是一种通讯方式 同步:执行一个操作时,需要等待其处理完成,然后再进行下一个操作 异步:执行一个操作时,不需要等待返回,就可以进行下一个操作 举例: 下单接口中,需要调用库存接口做库存判断,所以必须等待库存接口返回数据才能进行下一步操作,这是同步;  文件的下载方式,​我之前就经常遇到需求说让开发改成异步下载。避免下载比较慢会导致超时​,并且影响用户体验。

  1. 做好测试用例设计工作的关键是什么 1) 熟悉业务需求和用户使用场景 2) 了解本次需求对其他系统的影响 3)了解开发技术实现和数据库设计 4) 从不同的维度编写测试用例,功能、性能、安全、兼容等
  2. 给你一个项目,如何开展测试 1.查找需求说明、项目设计等相关文档,分析需求。 2.制定测试计划,确定测试范围和测试策略。 3.设计测试用例,包括功能、兼容、性能、安全等方面 4.开展测试执行 5.回归测试以及发送测试报告
  3. bug的生命周期 New:新发现的bug,指定给对应的开发 Open:开发确认bug,并且认为需要进行修改 Fixed:开发人员进行修改后标识成已修复状态,等待测试人员的回归测试验证 Rejected:如果开发认为不是Bug,则拒绝修改 Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改,并需要给出理由 Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改
  4. 黑盒测试和白盒测试的区别 黑盒测试就是把系统当成一个黑盒子一样,不需要了解系统内部的细节,只关注输入和输出,通过手动 输入不同的数据,来验证输出是否符合预期; 白盒测试需要了解系统内部实现细节,通常是针对函数进行测试,需要写测试代码来调用对应的函数, 通过传入不同的参数,来测试函数返回值是否符合预期。
  5. 测试报告里都包含哪些内容 测试范围,测试时间、参与人员、测试策略、BUG数量、上线风险、遗留问题、测试是否通过

软件测试的定义以及目的? 软件测试是使用人工或自动化手段来运行或测定某个系统的过程。其目的是:在于检验它是否能满足规定的需求或是弄清楚预期结果与实际结果之间的差别。

为什么要在一个团队中开展软件测试工作? 因为没有经过测试的软件很难在发布之前知道该软件的质量,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

你认为做好测试用例设计工作的关键是什么? 1、需求和设计文档的理解程度,对系统的熟悉程度 2、用较少的用例覆盖尽可能多的需求,从用户角度出发,颗粒度大小要均匀,测试场景方法,能够被其他测试人员执行 3、测试用例的编写要根据测试对象特点、团队的执行能力等各个方面综合起来决定编写策略。最后要注意的是测试人员一定不能抱怨,力争在不断提高测试用例编写水平的同时,不断地提高自身能力

请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。

什么是兼容性测试? 检查软件在不同的软硬件平台上是否均可以正常运行 ,通常包含平台,硬件设备,网络,数据格式等。比如不同浏览器之间,不同分辨率,不同网络,不同的手机设备型号等,访问同一款产品,可能会出现未知的缺陷。

正交表测试用例设计方法的特点是什么? 参考答案: 用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂; 对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的; 具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

简述一下缺陷的生命周期? 提交->确认->分配->修复->验证->关闭

软件测试人员就是 QA 吗? 参考答案: 软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。 质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。 测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审, 软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

1.测试用例你一般是怎么设计的,怎么可以提高覆盖率?有没有形成自己的一套方法论? 2.电梯是怎么测试的?用例设计 3.从零到一独立负责一个大项目,你是如何开展测试的? 4.接口测试你是怎么做的?都发现了哪些问题,详细说下定位分析过程。 5.测试过程中你遇到最难得一个技术问题是什么?如何解决的? 6.你们公司后端是微服务架构吗?介绍一下

你认为做好测试计划工作的关键是什么? 在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试;
1. 要有明确的测试目标,对被测对象有清晰的认知和了解 2.坚持“5W”规则,明确内容与过程 “5W”规则指的是“What (做什么)”、 “Why(为什么做)”、 “When(何时做)”、 “Where (在哪里)”、“How(如何做)”。利用 “5W”规则创建软件测试计划,可以帮助测试 团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结 束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置 (Where)。 3.采用评审和更新机制,保证测试计划满足实际需求

测试结束的标准是什么? 用例全部执行完毕,覆盖了达到标准,缺陷率达到标准,其他指标达到质量标准

引入测试管理的含义? 参考答案:风险分析,进度控制、角色分配、质量控制

测试策略有哪些?

如何减少测试人员跳槽带来的影响? 作为测试管理者,只有从日常工作中开始做起,才能最大限度的减少损失。建议我们从以下两个方面做起: 1、加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。 在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。 2、通常情况下,企业能为员工提供足够大的发展空间时,如果不是待遇特别低,员工都不会主动离开企业。 因此我们要想留住员工,管理者就应该把员工的个人 成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。不过这项要求做起来比较,要有比较好的企业文化为依托。

和用户共同在uat测试 ,有哪些需要注意的地方? 用户验收测试不通过的话,就可能影响到钱、以及公司的形象,以及作为测试人员的你在领导心中的印象等。 实际上用户现场测试更趋于是一种演示。在不欺骗用户的前提下,我们向用户展示我们软件的优点,最后让“上帝”满意并欣然掏出“银子”才是我们的目标。 因此用户测试要注意下面的事项: (1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。 (2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释。争得时间后,及时修改缺陷来弥补。 (3)永远不能欺骗用户,蒙混过关。道理很简单,因为软件是要给用户用的,问题早晚会暴露出来,除非你可以马上修改。 和用户进行测试还要注意各种交流技巧,还要为后面的合作打好基础。

你负责的项目中在测试周期中,如何做到最好的控制风险或者预估即将可能发生的风险? 制定好测试计划、要注意及时跟进进展,还要注意内部和外部可能存在的风险点,尤其是依赖外部系统对接的,万一出现延期后要有备选方案。