zoukankan      html  css  js  c++  java
  • 测试面试基础(一)

    为什么要在一个团队中开展软件测试工作? 

    为了验证软件是否可用,是否可上线,同时避免此问题线上发生,避免公司发生损失

    一份测试计划应该包括哪些内容?

    项目背景、项目简介、项目目的、测试范围、人员分工、资源配置要求、进度计划制定、参考文档、常用术语、提交文档、风险分析。

    您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作? (对于软件测试部分,可以简述) 

    1、产品开发测试共同参与进行测试需求的分析:确定测试的资源和技术需求

    2、测试人员根据需求制定相应的测试计划 (包括测试环境,着重测试点)并进行评审

    3、根据测试计划指定详细的测试用例,并评审,查漏补缺 ,补全之后在禅道上写好测试用例

    4、对bug进行跟踪管理

    5、总结测试报告并实时更新

    您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作? 
    金融类测试,催收后台管理测试,二手车后台管理的测试等类似的B/S架构的csm管理系统以及基本的核心接口测试

    最擅长根据需求以及测试思维导图编写完善的测试用例。这种类型的功能测试


    您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……) 

    易用性测试 - 界面的友好性,操作方便性等。

    功能测试 - 主要是黑盒测试为主,白盒测试辅助进行回归测试

    安全测试 - 以测试工具检测测试漏洞以及系统是否存在sql注入,xss攻击等安全隐患。

    兼容测试 - 不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常的运行 可以通过人工测试或者是以webdirver(webdirver是seleium里面的一个包是驱动 from  selenium import webdriver)脚本来驱动各平台的兼容情况

    性能测试 - 包括并发测试和压力测试等,通过jmter或者loadluner等工具进行性能测试


    请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 

    黑盒测试一般是无需了解代码以盒子原理进行的测试

    白盒测试是以代码为突破口的测试,主要通过逻辑构建业务场景来测试系统

    单元测试是最小的测试单位,可能是某一个方法或者某一个类,一般由开发进行测试

    集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作

    系统测试是是对已经集成好的软件系统进行彻底的测试目的是发现软件潜在的问题,保证系统的正常运行

    验收测试(回归测试)部署软件之前的最后一个测试,操作目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的功能和任务。

    测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 
    测试计划的目的是为了完善自己对项目需求的认识和理解,理清测试思路和测试重点

    测试计划工作的内容包括:设计文档的编写和用例的编写,都是测试核心


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

    理解业务需求,整理清楚业务流程


    您所熟悉的测试用例设计方法都有哪些?及方法的应用场景

    1、等价类划分  一般功能都需要等价类,比如说用户登录,用户名密码输入,支付金额输入

    2、边界值法 一般用于支付类输入

    3、因果图设计法 主流业务都需要

    4、判定表设计法(判定表只是因果图里面的一部分) 3 4一般是一起出现  比如说财务系统工资评审

    5、正交试验法、场景法 用例是浏览器兼容性测试


    您认为做好测试用例设计工作的关键是什么? 

    理解业务需求,整理清楚业务流程,做好测试计划,记录好前置条件,准备合理的测试数据。

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

    制作测试计划,导图,大致分为权限管理,数据运营,外呼管理,营销管理,客户管理,组员管理,然后分别针对每个菜单下的子模块进行细分业务测试梳理,对各模块做业务流程分析,制作测试用例。并梳理数据库功能模块与数据库表的关系。并继续完善用例,进行审查,做到查漏补缺


    您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。 

    评审作用:主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,是否有专门针对非功能性需求的测试。 

    1、首先测试以邮件的形式发给相关项目的人员,(参与项目人有项目经历,产品,开发,测试小组人员。)

    2、然后申请会议室来发起用例评审

    3、先从冒烟用例进行评审,告诉开发将以这些功能点作为主流程,如果不全可以补充

    4、接着按模块进行详细用例描述的讲解,让产品和开发讨论是否符合需求以及是否有遗漏点

    5、如果有遗漏点简单记下,会后补充完整。

    6、如果问题过多并遗漏重要流程,发起第二次评审,根据实际情况为准

    7、如果所有用例评审完成,开发产品未补充,一起确定此用例为接下来使用的用例,出现问题提交bug管理工具。

    一个项目:开发3-4个,测试2个人。


    您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。 
    做过金融产品支付系统的压力测试

    1、申请生产环境是否可做压力测试

    2、根据需求梳理测试思路

    3、根据测试思路编写测试用例,主要是以模拟多人同时支付的场景。

    4、根据性能测试工具jmter的组件编写测试脚本,设计多人虚拟数

    5、把编写好的测试脚本分别发到多台测试服务器上,同时启动jmter集群测试,进行压力测试并记录支付系统服务器的运行情况,产生性能测试报告,找出系统瓶颈,方便运维开发人员调试优化系统。(为什么要多台服务器:这样能排除本身机器的瓶颈,一台服务一般压不坏。我的服务器作为主节点,其他服务器作为分节点,一般会让其他测试人员协助测试)

    6、通过cokkie伪登录,构建支付接口参数,设一个基数,陆续增加虚拟人数。

    并发情况:设计集合点(在同一个时刻发送请求)压力是陆续发送

    对金融支付接口测试流程:

    1、以真实支付接口先进行冒烟测试,测试通过以后通过挡板来进行各业务场景的测试,模拟真实系统返回情况,主要以mock数据的形式进行测试(就是假数据)


    您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

    jmter 可以设置虚拟数达到测试目的

    loadRunner 

    您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么? 
    合理设计场景,真实达到测试目的,压测测出系统的承受能力,(前公司并发测试出最多并发能力并发一千左右)

    性能测试的关键:关键是测试脚本的录制,测试时候测试环境的干净。不能让环境影响性能,要么是空白电脑做性能,要么就是多台电脑共同做性能取平均值


    在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 

    bug编号;

    bug严重级别,优先级;

    bug产生的模块;

    首先要有bug摘要,阐述bug大体的内容;

    bug对应的版本;

    bug详细现象描述,包括一些截图、录像....等等;

    bug出现时的测试环境,产生的条件即对应操作步骤;

    简述bug的生命周期? 

    1, 有效地记录BUG 2, 使用BUG模板 3, 评价BUG优先级和严重性 4, BUG的生命 5, 维护BUG数据库

    您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。 
    禅道

    发现问题-提交禅道-指派给开发-开发解决问题并更改状态为已修改-测试进行复测-问题解决关闭bug,未解决重新激活并提示开发更改bug-复测之后关闭bug

    您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的? 
    软件改进是不断优化的过程,可以减少bug出现,减少损失,提升用户体验

    期待工作环境是团队齐心协力共同为项目出力


    您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么? 

    面对面的沟通,对 BUG 有准确的描述

    在团队中建立测试人员与开发人员良好沟通中注意以下几点:

    一真诚、

    二是团队精神、

    三是在专业上有共同语言、

    四是要对事不对人,工作至上;

    当然也可以通过直接指出一些小问题,而不是进入BUG 跟踪系统来增加对方的好感;

    你对测试最大的兴趣在哪里?为什么?

    1、感觉这是一个有挑战性的工作;工作越久越能感觉到做好测试的难度和乐趣

    2、通过自己的测试,能使软件产品越来越完善,感觉很快乐

    你自认为测试的优势在哪里?

    有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力

    以前的经理处都得到了很好的评价表明我做的很好

    软件测试项目从什么时候开始?为什么?

    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,

    并且软件缺陷存在放大趋势,缺陷发现的越晚,修复它所花费的成本就越大

    什么是回归测试?

    (1)用例回归:是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。  

    (2)bug回归:就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。

    什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试

    兼容性:主要验证软件产品在不同版本之间的兼容性。

    (1)向下兼容:测试软件新版本保留它早期版本功能的情况;

    (2)交错兼容:验证共同存在的两个相关但不相同的产品之间的兼容性。

    什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    • 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。  
    • 动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
    • 黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
    • 白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
    • α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成
    • β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成

    如何测试一个纸杯?

    易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

    功能度:用水杯装水看漏不漏;能不能装热水;

    安全性:杯子有没有毒或细菌,装热水会不会炸裂

    可靠性:杯子从不同高度落下的损坏程度

    可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

    兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

    疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

    安卓和ios的区别

    https://www.jianshu.com/p/0c56c2458e4a

    原创作品转载请注明出处 https://www.cnblogs.com/wangxuetest/p/13233497.html

    写作不易,如果能帮助到你可以给点个赞哦

  • 相关阅读:
    hive之insert导入分区数据
    Hive数据倾斜及优化方案
    Hive中join关键字运行机制及使用详解
    如何去编写一个定时器?
    MapReduce运行原理详解
    nfs共享服务搭建
    IDEA中Java方法的抽取
    阿里巴巴开发规约(Alibaba Java Coding Guidelines)安装介绍
    IDEA集成vue
    写给初学asp.net的新人们 新手学习经验
  • 原文地址:https://www.cnblogs.com/wangxuetest/p/13234009.html
Copyright © 2011-2022 走看看