软件测试面试知识点总结第一部分

软件测试:
软件开发方面:

	1、软件的生命周期:是指形成开发软件概念起直到软件利用价值丧失消亡为止的过程,需求分析-系统设计-编码实现-软件测试-验收运行-维护升级至废弃
	
	2、软件开发的模型:
		瀑布模型:采用结构化的方法将软件的逻辑实现和物理实现分开,将软件的生命周期分为:制定计划-需求分析-软件设计-程序实现-软件测试-运行维护等6个基本活动,
		规定自上而下哦、相互链接的固定次序,逐级实现。
		优点:开发阶段清晰,强调早期计划和需求调查,适合需求稳定的产品。
		缺点:依赖早期需求调查,不适合需求动态修改。单一不可逆,风险传递,早期风险未发现,扩散到后期,导致项目失败。
		
		快速原型模型:建造一个快速原型,实现用户与系统交互,用户对原型进行评价,进一步细化待开发的功能需求。通过不断调整原型满足用户需求。在原型模型基础上开
		发用户满意的软件产品。
		优点:更好的满足用户需求,减少由于软件需求不明确导致的项目开发风险,适合预先不明确需求的项目开发。
		缺点:不适合大型系统开发,限制开发人员的创新。

		增量模型:软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.增量模型在各个阶段并
		不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。
		优点:软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
		缺点:由于各个构建并入软件系统,需要软件系统具有开放式架构。容易退化为边做边改模型,失去对软件开发的整体性。
		
	3、软件质量:软件产品与明确的和隐含的需求的符合程度,主要包括:功能性:软件需求满足用户的显式和隐形功能、易用性:易于用户的学习和上手、可靠性:软件必须要
	   实现需求的功能、效率性:类似于软件性能、可维护性:软件出现问题时经过维护后可正常使用、可移植性:软件可以跨平台使用

网络相关方面:

	1、TCP:TCP为传输控制协议,属于传输层协议。TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、
	   端到端和可靠的数据包发送。
	
	2、UDP:UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流
	   量控制等功能。它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。
	
	3、建立连接的三次握手:1.在建立通道时,客户端首先要向服务端发送一个SYN同步信号。2.服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。3.当服务
	   端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。
	
	4、通道关闭的四次握手:1.在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。2.服务端在收到这个信号之后会向客户端发出一个ACK确认信号。3.如果服务端此后也
	   没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。4.客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道关闭。
	
	5、TCP和UDP的却别:1.TCP面向连接,UDP无连接。2.TCP可靠性传输,UDP不可靠性传输。3.TCP适用于传输少量数据,UDP适用于传输大量数据。4.TCP数度较慢,UDP速度较快。
	
	6、TCP/IP四层模型:应用层、传输层、网络层、数据链路层。
	   数据链路层实现网卡接口的网络驱动程序,处理数据在物理媒介上的传输,两个重要协议:ARP和RARP协议,ARP协议将通过ip地址确定物理地址。RARP协议将物理地址转化为ip地址。
	   网络层:实现数据报的路由转发。主要协议:ip协议,
	
	7、OSI7层网络结构:应用层(HTTP/FTP/SMTP)、表示层(定义数据格式和加密)、会话层(定义如何开始、控制和结束一个会话)、传输层(是否选择差错恢复协议还是无差错恢复协议)、
	   网络层(路由选择、中继)、数据链路层(链路连接的建立,拆除,分离,帧定界、帧同步,差错检测和恢复)、物理层(数据端设备提供传送数据的通路)
	
	8、常见的网络协议:物理层:IEEE802,数据链路层:ARP、RARP,网络层:IP、ICMP、OSPF,应用层:FTP、SMTP、DNS、HTTP等。

软件测试方面:

	1、测试用例的设计:用例的编号、测试项目、测试标题、重要级别、预置条件、输入数据、操作步骤、预期结果

	2、软件测试的流程:需求分析阶段-测试计划阶段-测试设计阶段-编写测试用例-测试执行阶段-输出测试报告。
	   需求分析阶段:主要包含业务需求、用户需求、功能需求三方面,需要阅读需求、理解需求。
	   测试计划阶段:通过软件需求说明书、项目规划书,确定测试范围、进度安排、人力物力分配以及测试策略的指定和风险评估以及规避风险的措施。
	   测试设计阶段:编写测试用例并评审。
	   测试执行阶段:搭建测试环境,进行冒烟测试,再进行主测试,管理BUG直到测试结束。
	   输出测试报告:包括测试背景、测试范围、测试环境、测试方法、测试结果、质量风险评估,确认是否可上线。
	
	3、测试阶段:主要为:单元测试-集成测试-系统测试-验收测试。
	
	4、单元测试:测试对象为组成程序的最小单位,例如一个函数、一个类、一个界面、一个菜单等,单元就是人为规定的最小的被测功能模块,。单元测试是在软件开发过程中要进行的最低级
	   别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。主要由开发人员进行测试。
	
	5、单元测试判定标准:测试判定标准为:逻辑覆盖率。逻辑覆盖率包括:语句覆盖率(测试用例执行的语句/全部语句)、条件覆盖率(被测条件数/总条件数)、分支覆盖率(被测分支数/总分支数)、
	   路径覆盖率(被测路径数/总路径数)、分支条件覆盖率(被测分支数+被测条件数/全部分支数+全部条件数)。
	   
	6、单元测试流程:UT计划-UT设计-UT实现-UT执行。
	
	7、UT计划:两个方面,确定测试范围和确定评判标准。确定测试范围主要依据:28原则,20%的代码隐藏了80%缺陷。确定20%的代码主要考虑:代码使用频率、复用性、开发人员背景、复杂度(复杂度>7)。
	   评判标准:主要为逻辑覆盖率,参考第5条。
	
	8、UT设计:主要为确定测试策略:自上而下,从最顶层向下进行测试(测试成本高)。自底向上,从最底层向上进行测试(测试周期长)。孤立测试,直接选择需测的函数。
	
	9、桩模块:将被测模块调用的模块进行替换,装模块的功能和被替换的模块的功能一致。
	
	10、驱动模块:模拟被测模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
	
	11、UT实现:1.将测试代码转化为流程图,2.将流程图转化为流图,确定复杂度。3.确定测试路径。4.编写测试用例。
	
	12、UT执行:采用单元测试框架:Unittest。
	
	13、unittest:主要包括四个部分,TestFixture、TestCase、TestSuite、TestRunner
	
	14、TestFixture:包含两个函数setUp()、TearDown(),测试的前置条件和后置条件。主要为测试搭建相应的环境,以及测试结束后环境的销毁,例如数据库的接连和断开,浏览器的打开和关闭等。
	
	15、TestCase:测试用例类,TestCase的实例为一个完整的测试用例,主要被自定义的测试用例类进行继承。
	
	16、TestSuite:测试用例集,将多个测试用例集合一起。
	
	17、TestRunner:执行测试用例,其中的run()会调用TestCase/TestSuite中的run()方法,将测试结果保存到TextTestResult,包括测试运行时间,测试用例总数、成功数、失败数等信息。
	
	18、大致框架内容:将测试代码和数据分离,分为多个文件,包括公共模块、数据模块、被测模块、测试用例模块、数据驱动模块。
	
	19、单元测试的策略:逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析。
	20、单元测试任务:模块接口测试、模块局部数据结构测试、模块中所有独立执行通路测试、模块的各条错误处理通路测试、模块边界条件测试。

你可能感兴趣的:(软件测试)