那些用烂了却一直出现在面试中的经典面试题合集(一)
序言
小编最近发现有许多人简信小编要面试资料,所以从今天开始,小编会每天都分享一些经典的面试题。
![](https://img.haomeiwen.com/i8654141/d4eedb9e5c9dcbb4.png)
面试题:
1.如图: 在这个MVC经典的架构中说说有哪些常用的设计模式?
2.这个图里面有如下所标志的设计模式.
设计模式是为了解耦而存在的.
1.通知跟kvo都是属于观察者模式, 观察者模式和代理模式就不多解释了.
2.target-action在Controller和view之间,使用的就是命令模式, 一般开发
中也常称为target-action模式. 在iOS中NSInvcation也使用了一种典型的命令模式.
3.MVC中,图上面Model和View是没有关联的, 他们之间的传递由Controller来完成, 其实Controller在这里起到的作用相当于是一个中介者. MVC也是一种简单的中介者模式.
4.策略模式,一般用在解决if else和switch-case中的繁琐逻辑. 可以根据算法分离出不同的类,作为策略. 可以起到解耦合的作用
在开发里面, 同一种搜索, 不同的显示效果. 这种tableView的显示就是典型的策略模式的使用
面试题:白盒测试和黑盒测试的区别?
白盒测试
白盒测试(也被称为玻璃盒测试,透明盒子测试与结构测试,可以看见源代码)测试内部结构或者程序的工作。而不是对用户暴露功能。在白盒测试中,内部系统是可见的,包括编写的代码细节。
白盒测试包括:
API测试 : 应用程序接口
代码覆盖: 创建测试来满足一些代码测试覆盖的标准
突变测试方法
静态测试方法
代码覆盖工具可以评估测试的覆盖程度,包括黑盒测试,它们允许软件团队检查系统的各部分以及保证最重要的点被测试了,代码覆盖作为一个测试度量包括如下几方面
函数覆盖:报告了被测试的函数
声明覆盖:报告了完成测试的函数
决策覆盖:分支判断的测试
黑盒测试
黑盒测试对待软件如通一个黑盒,检查的是功能而没有任何关于实现的代码细节,源代码是不可见的。通过输入来得到输出,在判断输出是否符合预期。测试者只知道软件的外在功能。
这种测试方法能够应用与所有水平的软件测试:包括单元测试、集成测试。这是典型应用在High Level的测试。
喜欢小编的面试题的可以关注小编,小编每天都会更新,或者进小编的群656315826免费领取最全的面试宝典。