目录

01、什么是黑盒测试?

02、为什么要做黑盒测试?

03、你在软件生命周期中的哪些测试阶段用到过黑盒测试?

04、什么是白盒测试?

05、白盒测试与黑盒测试有什么区别?

06、为什么要对程序进行单元测试?

07、由谁来做单元测试?

08、怎么做单元测试?

09、我们知道,在编码阶段,开发人员一般先设计好各单元之间的接口,此时函数单元测试的入口条件和出口条件是什么?


01、什么是黑盒测试?

答:黑盒测试是一种测试方法,它指的是测试者不需要知道系统内部工作原理,只需要知道输入和输出就可以进行测试。

02、为什么要做黑盒测试?

答:因为黑盒测试可以帮助我们更好地了解软件的功能,发现潜在的错误和缺陷,从而提高软件的质量。

03、你在软件生命周期中的哪些测试阶段用到过黑盒测试?

答:我在软件生命周期中使用过黑盒测试的测试阶段包括系统测试、集成测试、回归测试和发布前检查。

04、什么是白盒测试?

答:白盒测试是一种软件测试方法,它基于对软件内部结构和实现细节的深入了解,通过检查代码、数据流、路径覆盖等来评估软件的质量和可靠性。

白盒测试也被称为结构测试或透明盒测试,因为测试人员通常需要了解软件的内部结构和代码实现细节,这与黑盒测试的方法相反,后者仅基于外部行为而不需要了解内部细节。

在白盒测试中,测试人员通常使用源代码、设计文档和其他技术工具来帮助他们理解软件的内部结构,并编写测试用例来测试不同的程序路径、边界条件和错误情况,以确保软件的功能、可靠性和安全性。白盒测试通常用于测试关键的、高风险的软件系统和应用程序。

05、白盒测试与黑盒测试有什么区别?

答:白盒测试和黑盒测试的区别可以用餐厅服务作为比喻:

黑盒测试就像去餐厅点餐,你只需要看到菜单和菜品的外部表现,比如名称、价格、口感等,而不需要知道厨师是如何制作的。在测试中,黑盒测试只关注软件的外部行为和用户体验,不需要了解软件内部的代码实现。

白盒测试则像是你进入餐厅后想去厨房看看厨师是如何制作菜品的,你需要了解厨师的烹饪技巧、使用的食材和烹饪器具等内部细节。在测试中,白盒测试需要测试人员深入了解软件的内部结构和代码实现,以检查软件在不同情况下的内部逻辑和执行路径,以保证软件的质量和可靠性。

因此,黑盒测试侧重于测试软件的外部行为和用户体验,而白盒测试侧重于测试软件的内部结构和代码实现。同时,在黑盒测试中,测试人员不需要知道软件的内部实现,而在白盒测试中,测试人员需要深入了解软件的内部细节。

06、为什么要对程序进行单元测试?

答:我们来打个比方吧:如果你是一名蛋糕师傅,你制作了一个蛋糕,但并不确定它的味道是否正常或者外观是否吸引人,你肯定不会把整个蛋糕拿到客人面前,而是先尝一小口,或者摆弄一下装饰品,以确保蛋糕的质量。

同样地,单元测试就像是蛋糕师傅对每个小块蛋糕进行品尝和检查,以确保每个小块蛋糕都是可口的,没有问题。在程序开发中,单元测试就是对程序中的每个小模块进行测试,以确保每个模块都能正常运行,没有错误或异常情况。

通过单元测试,开发人员可以及早发现和解决程序中的问题,降低开发成本和风险,提高程序的质量和可靠性。同时,单元测试还可以使开发人员更加自信地修改和改进程序,而不用担心会影响程序的其他部分。

所以,如果你是一名蛋糕师傅,你会在制作蛋糕时尝一小块吗?同样地,如果你是一名程序员,你也应该对程序进行单元测试,以确保程序的质量和可靠性。

07、由谁来做单元测试?

答:这个问题很简单,就像“谁来吃饭”的问题一样,当然是程序员啦!

想象一下,你去一家餐馆,点了一份菜,但是服务员告诉你需要你自己煮熟这道菜,你会有多失望。同样地,如果开发人员只是写代码,而不进行单元测试,那么软件的质量和可靠性就无法得到保障。

因此,单元测试是程序员必须要做的一项工作。在开发过程中,程序员需要编写测试代码来测试每个小模块的功能和性能,以确保程序的每个部分都能正常运行。这也有助于开发人员及早发现和解决问题,提高软件质量和可靠性。

当然,在一些大型项目中,还可以配备专门的测试人员或测试团队来进行更全面的测试工作,但单元测试仍然是开发人员必须要做的一项工作。

08、怎么做单元测试?

答:单元测试是一种测试方法,用于测试软件中的小模块或单元是否按预期工作。下面是一些基本步骤:

选择单元:选择需要测试的小模块或单元。

编写测试用例:编写测试用例,用于测试单元的不同输入和条件下的输出结果。

编写测试代码:编写测试代码,用于自动化运行测试用例。

运行测试:运行测试代码,对单元进行测试。

分析结果:分析测试结果,检查单元是否满足预期结果。

解决问题:如果测试结果不符合预期,修改代码并重新运行测试,直到单元测试通过为止。

除了这些基本步骤,以下是一些注意事项:

单元测试应该是自动化的,以便快速、可靠地进行测试。

单元测试应该在开发周期的早期进行,以便尽早发现和解决问题,降低后期成本。

单元测试应该是独立的,每个测试用例应该只测试一个单元,以便更容易识别问题所在。

单元测试应该是重复的,每次更改后都应该运行单元测试以确保没有引入新的问题。

希望这些步骤和注意事项能帮助您更好地了解如何进行单元测试。记住,单元测试是提高软件质量和可靠性的重要方法,是每个程序员都应该掌握的基本技能之一。

09、我们知道,在编码阶段,开发人员一般先设计好各单元之间的接口,此时函数单元测试的入口条件和出口条件是什么?

答:在编码阶段,开发人员设计好各单元之间的接口,就像厨师在准备材料一样,接下来就是做菜了,也就是开始编写代码了。

在这个阶段,函数单元测试的入口条件就是:开发人员完成了函数的编写,确保代码可以编译通过。而出口条件则是:开发人员已经对该函数进行了单元测试,并且测试结果符合预期。

当然,入口条件和出口条件也可能因公司、项目和开发团队而异,这只是一个通用的例子。不过无论如何,只有完成了这些条件,才能确保代码质量和可靠性。

总之,在编码阶段,单元测试是确保代码质量和可靠性的重要环节,而入口条件和出口条件则是保证单元测试的顺利进行的前提条件。如果你是一个程序员,就要时刻记得做好单元测试,不要让代码的质量成为食客们品尝菜肴时的“口诛笔伐”的对象!

最后,祝大家都能找到心仪的工作!

[5/101] 101次面试之经典面试题相关推荐

  1. php 面试,PHP 经典面试题集

    这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己这几天面试情况,面对的一些php面试题列举出来,基本上结合自 ...

  2. [4/101] 101次面试之经典面试题

    目录 一.说一下测试的流程 二.提了一个 bug,但开发认为不是 bug,作为测试你怎么办? 三.对于复现率不高的 bug 怎么处理? 四.给你一个行李箱,你怎么测试? 五.给你一个新项目,你怎么开展 ...

  3. 前端面试:经典面试题Foo与getName()

    从一道面试题出发 按照惯例,还是从面试题出发.用一道面试题引出相关的知识(日常面向面试学习

  4. python经典面试题100例 面试宝典

    人生苦短 我用 Python 芝麻开门! python 进阶 1 python 经典面试题 9 python 面试 100 例 21 python 面试题总结 101 python 进阶 1 PEP8 ...

  5. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  6. 游戏必备组件有哪些_面试必备:2019Vue经典面试题总结(含答案)

    点击右上方红色按钮关注"web秀",让你真正秀起来 面试必备:2019Vue经典面试题总结(含答案) 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写 ...

  7. BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!

    JavaList面试题汇总 1.List集合:ArrayList.LinkedList.Vector等. 2.Vector是List接口下线程安全的集合. 3.List是有序的. 4.ArrayLis ...

  8. web前端岗位经典面试题,面试前必读!

    小编周末将之前推送的经典面试题在这里进行一下汇总,方便后面关注的同学们查看,很多同学都是初学阶段,缺乏面试经验,希望这份东西真的能帮助到你们. 面试系列 1:输入网址按下enter,究竟发生了什么? ...

  9. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

最新文章

  1. Spring-AOP的实现方法
  2. 计算机组成原理学习笔记(一)
  3. 区块链 - Geth 搭建私有网络-实战
  4. Java指派问题_指派问题的匈牙利算法
  5. Qt 设置应用程序图标
  6. SpringMVC—对Ajax的处理(含 JSON 类型)(2)
  7. OpenCV imread()函数
  8. layui自带验证体系:手机号验证、邮箱验证、必填项非空验证、数字验证(含代码、案例)
  9. 实战干货:基于Redis6.0 部署迷你版本消息队列
  10. STM32工作笔记0093---DAC数模转换实验-M3
  11. ImportError: cannot import name ‘XXX‘ 问题解决方案
  12. Tensorflow(r1.4)API--tf.summary.scalar
  13. C++之STL种类及实现
  14. 转载Java 反射机制
  15. vue echarts数据变化重新渲染_vue实例创建及数据挂载渲染
  16. 回调函数原理及应用实例
  17. 单片机矩阵键盘扫描程序c语言,51单片机矩阵键盘扫描程序
  18. 阿里云ESC实例网页打不开解决方案
  19. 母亲节活动策划方案PPT模板
  20. “华为杯”第十八届中国研究生数学建模竞赛B题参赛总结

热门文章

  1. PC软件技巧[bcompare强制二进制对比]
  2. 【Mac】玩转Mac必备工具推荐
  3. 2021-2027全球与中国通用高温计市场现状及未来发展趋势
  4. 前端js压缩图片:compressionjs的使用
  5. Linux command lvextend 扩展逻辑卷设备
  6. 007在WIN7下的安装AI2018
  7. 【树莓派】一根网线将树莓派4B直连笔记本电脑的方法
  8. 现代操作系统和 TCP/IP(第二篇)
  9. 关于安装WIN7系统的一些手记
  10. MySql分区(partion)之range(范围)-----------01