原创 2019软件测试工程师面试题汇总及答案

发布时间:2019-09-29 10:25:27 浏览 5967 来源:博学谷 作者:照照

    软件测试工程师在面试前想要做好充足的准备,可以刷一遍本文分享的面试题。这些汇总的面试题都是2019年最新整理出炉的,并附上了参考答案,其中包含了测试理论、Linux基础、数据库基础、API测试、App测试、管理工具等方面的知识点。可以说是,既有软件测试的基础知识,又有软件测试的所有知识重难点内容。有面试需求的小伙伴赶紧做一遍下面的面试吧!

     

    软件测试工程师面试题

     

    一、简述黑盒测试和白盒测试的优缺点?

     

    1、黑盒测试

     

    (1)优点:

     

    比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

     

    (2)缺点:

     

    不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码 量的 30%;自动化测试的复用性较低。

     

    2、白盒测试

     

    (1)优点:

     

    帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代 码中隐藏的问题。

     

    (2)缺点:

     

    程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

     

    二、在Linux中find和grep的区别?

     

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是 Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

     

    Linux下的find:功能上,在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。语法上,find起始目录寻找条件操作说明。find 命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件。

     

    三、数据库怎么优化查询效率?

     

    1、储存引擎选择:如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACID特性。如果不需要事务处理,用默认存储引擎MyISAM是比较明智的。

     

    2、分表分库,主从。

     

    3、对查询进行优化,要尽量避免全表扫描,首先应考虑在where及order by 涉及的列上建立索引。

     

    4、应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描。

     

    5、应尽量避免在where子句中使用!= 或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

     

    6、应尽量避免在where子句中使用or来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描。

     

    7、Update语句,如果只更改1、2个字段,不要Update全部字段, 否则频繁调用会引起明显的性能消耗,同时带来大量日志。

     

    8、对于多张大数据量(这里几百条就算大了)的表JOIN,要先分页再JOIN,否则逻辑读会很高,性能很差。

     

    四、如果模块请求http改为了https,测试方案应该如何制定、修改?

     

    分别用http还有https登录试试。如果用https可以正常登录,地址栏显示一把锁头,那么这个网站是有部署SSL的。如果 http和https都能够正常登录,进一步说明该网站没有设置强制https登录,或者说没有设置http链接自动跳转https链接;相反如果用http登录,结果跳转到https页面,说明网站部署了SSL,而且设置了http自动跳转https。

     

    五、在查看logcat命令日志时候怎么内容保存到本地文件?

     

    输出重定向:logcat >> log_file_name

     

    六、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程?

     

    常用:testlink,QC,mantis,禅道,TAPD,JIRA 。

     

    TAPD:产品创建(需求,计划,模块)-->项目创建(PM 排期、任务分解)-->研发(编码、单元 测试等)-->测试 (测试计划,用例,执行, bug,报告等)。

     

    七、如何设计自动化测试用例

     

    编写测试脚本之前要编写测试用例,而且测试用例不能直接使用手工测试的用例。自动化的测试用例是一个完整的场景。用户登录系统到用户退出。用例之验证一个功能点。不用试图登陆后验证所有的功能在退出 测试用例尽量只做正向的逻辑验证。用例之间不要产生关联,相互独立,也要高内聚,低耦合 测试用例关注的是功能逻辑的实现,字段无关。测试用例的上下文必须有一定的顺序性,前置条件清晰 检查点的设置要侧重,全面,灵活。测试用例对数据的操作要进行还原测试用例必须是可回归的。用例选择遵循成本始终,构建场景,目的冒烟回归,繁琐功能,主体流程。用例转型遵循前置配置,抛异常,步骤验证,高内聚,关门归原。

     

    八、你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?

     

    性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。

     

    以上就是2019软件测试工程师面试题汇总的全部内容啦,大家在第一遍做的时候先不要看答案,做完之后再对一遍答案,印象会更加深刻哟!

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: 40万年薪的测试工程师需要掌握哪些技能? 下一篇: 软件测试工程师找工作容易吗?

相关推荐 更多

热门文章

  • 大数据专业毕业后职业前景如何?
  • Python if语句多层嵌套使用方法介绍
  • 学习Python可以做什么工作?选什么方向?
  • 计算机网络通信协议有哪些?作用是什么?
  • 怎么判断软件测试培训班课程质量好不好?
  • PHP培训需要多少费用?贵不贵?
  • Python基础包含哪些内容?学习什么?
  • 机器学习在线学习网站哪个好?
  • 女生学软件测试还是前端好?怎么选?
  • 产品经理岗位职责及工作内容有哪些?
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码