前言:
现在我们对“什么是软件测试说明黑盒测试和白盒测试的基本原理”大概比较注重,大家都需要剖析一些“什么是软件测试说明黑盒测试和白盒测试的基本原理”的相关内容。那么小编也在网络上网罗了一些对于“什么是软件测试说明黑盒测试和白盒测试的基本原理””的相关知识,希望小伙伴们能喜欢,小伙伴们一起来了解一下吧!1.一条软件缺陷/BUG记录都包含了哪些内容?如何提交高质量的软件缺陷/bug记录?
2、测试分为哪几个阶段?
3、了解哪些测试工具?你是用过和知道的测试工具有哪些?各有什么用途?
4、你认为一个测试工程师应具备哪些素质和技能?
5、问题单都有哪些属性?
6、一个完整的测试方案包含哪些要素?
7、查看接口的工具有哪些?说出一个工具的操作
8、典型的瀑布模型的四个阶段,软件生命周期
9、在软件开发过程中的任务是什么?
10、软件缺陷的等级应如何划分?
11、请分别说明黑盒测试和白盒测试的优点和缺点!
12、根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。
13、什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?
14、软件开发过程中测试人员常遇到的问题:
15、什么是冒烟测试?
16、测试结束的标准?
17、为什么要进行软件测试?软件测试的目的是什么?
18、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
19、专业词语解释 (α、β测试;驱动模块;桩模块)
20、试叙述对一个软件项目测试的全过程
21、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
22、在Linux系统中,一个文件的访问权限是755,其含义是什么?
23、测试工具在测试工作中是什么地位?
24、简述一下c/s模式或者b/s模式?
25、简述负载测试与压力测试的区别。
26、ISO模型分为哪些层,从底向上的顺序是怎么样的?
27、TCP/UDP有哪些区别?
28、简述子网掩码的用途。
29、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。
30、您所熟悉的测试用例设计方法都有哪些?
31、比较黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
32、做好测试用例设计工作的关键是什么?
33、测试用例的设计方法有哪些?请阐述判定表设计测试用例的步骤。
34、自动化测试框架有哪几种?
35、测试覆盖率分为哪几种统计方式?分别是什么?
36、什么是FMEA?
37、什么叫做有效等价有效类,无效等价类?
38、请描述TCP/IP建立连接的过程
39、调用一个DLL(动态链接库)有哪几种方式?
40、进程与线程的区别?
41、白盒测试之六种覆盖
42、针对缺陷采取怎样的管理措施?
43、如果能够执行完美的黑盒测试,还需要进行白盒测试吗(黑盒和白盒的区别?)
44、其他问题记录(黑盒测试方法、因果图法)
1、在您以往的工作中,一条软件缺陷(或者叫BUG)记录都包含了哪些内容?如何提交高质量的软件缺陷(bug)记录?
——一条BUG记录最基本应包含:编号、所属模块、描述信息、级别、发现日期/人、修改日期/人、修改方法、回归结果等等;
——需要参考需求以及详细的设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布,这样才能提高bug质量。
2、测试分为哪几个阶段?
——按照开发阶段划分,软件测试可分为单元测试、集成测试、系统测试和验收测试。
单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标
集成测试:对已经测试过的模块进行组装,进行集成测试。目的就是在于检验与软件设计相关的程序结构问题。
系统测试:检验软件产品能够与系统的其他部分(比如:硬件、数据库及操作人员)协调工作。
验收测试:检验软件产品质量的最后一道工序,主要突出用户的作用,同时软件开发人员也有一定程度的参与。
3、了解哪些测试工具?你是用过和知道的测试工具有哪些?各有什么用途?
Jmeter:接口测试、压力测试
soapui:接口测试
xShell、xftp:管理Linux系统
禅道:管理BUG
navicat:管理数据库
4、你认为一个测试工程师应具备哪些素质和技能
技能:计算机专业技能,测试专业技能,软件编程技能
素质:沟通能力,要有严谨、敢于承担责任、稳重的做事风格,具有怀疑与破坏的精神,善于自我总结、自我督促。
5、问题单都有哪些属性?
——我所知道的有:产品模块、所属项目、所属版本、bug标题、步骤及测试数据、bug及日志截图、类型及严重程度、系统/浏览器
6、一个完整的测试方案包含哪些要素?
测试计划、人员分配、时间安排、测试方法的确定、测试工具的确定、测试报告
7、查看接口的工具有哪些?说出一个工具的操作
jmeter与soapui都支持
jmeter的用法:新建一个线程组,添加http类型的请求→填上接口地址和数据→添加查看结果树→进行运行→查看结果、进行分析
8、典型的瀑布模型的四个阶段是:分析、设计、编码、测试
软件的生命周期划分为:制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动。
五种典型开发周期模型:瀑布、V、原型化、螺旋、迭代
9、在软件开发过程中的任务是什么?
a. 参与需求分析;b. 编写测试用例;c. 寻找Bug;d. 避免软件开发过程中的缺陷;e. 衡量软件的品质;f. 关注用户的需求。总的目标:确保软件质量
10、软件缺陷的等级应如何划分?
致命错误,可能导致本模块以及其他相关模块异常,死机等问题;
严重错误,问题局限在本模块,导致模块功能失效或异常退出;
一般错误,模块功能部分失效;
建议问题,由问题提出人对测试对象的改进意见;
11、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
黑盒测试的优点:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。
黑盒测试的缺点:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。
白盒测试的优点:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点:1)程序运行会有很多不同的路径,不可能测试所有的运行路径;2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;3)系统庞大时,测试开销会非常大。
12、根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。
——软件测试是一个为了寻找软件中的错误而运行软件的过程,一个成功的测试是指找到了迄今为止尚未发现的错误的测试。
软件测试一般分为单元测试、集成测试和系统测试。
13、什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?
——狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据。这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据。
——测试规程就是详细的对测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤。
——设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。
14、软件开发过程中测试人员常遇到的问题:
——需求变化太多太乱,相关文档没有随之更新,文档与项目实际功能不相符;造成很多时候最新的需求都只是藏在个别人的脑中,而测试人员总是最后一个知道需求变化的人。
——改进建议:能够建立需求变更体系,到什么阶段必须停止需求变更(必须在项目前期就让需求提出人明确这一点);每次需求变更必须让需求提出人员确认,需求变化后必须有专人更新相关文档(这些文档都是测试人员编写计划及用例的依据);并能知会相关人员,这样才能做到程序人员修改响应的程序,测试人员修改响应的用例,且能对需求变更后的程序进行正确的测试
15、什么是冒烟测试?
使用较少的人但经验较丰富,在较短的时间内测试整个系统的主要功能、主要业务流程是否实现,是否稳定。
16、测试结束的标准?
a.模块测试用例执行完毕,覆盖了全部软件需求;
b.缺陷收敛趋势符合质量要求;
c.缺陷修复率达到产品设计人员的需求;
d.达到预先的缺陷度量原则
17、为什么要进行软件测试?软件测试的目的是什么?
——因为软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
——软件测试的目的:第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情,另一方面是确认软件以正确的方式来做了这个事情。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
18、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
——大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤:测试计划,测试设计,用例设计,执行结果,测试报告。
——初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
单元测试:单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
集成测试:集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
19、专业词语解释 (α、β测试;驱动模块;桩模块)
α测试: 测试人员用用户提供的数据,而不是模拟数据进行测试;测试整个系统,以保证其达到可以交付使用的状态。(内部人员)
β测试: 指将软件安装在一些潜在的客户处,由客户们根据实际使用情况将遇到的问题报告出来的测试方法。
驱动模块: 驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动。驱动模块主要完成以下事情: 1、接受测试输入; 2、对输入进行判断;3、将输入传给被测单元,驱动被测单元执行; 4、接受被测单元执行结果,并对结果进行判断;5、将判断结果作为用例执行结果输出测试报告。
桩模块:比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好的定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。
20、试叙述对一个软件项目测试的全过程
随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。
->测试项目:杯子
->需求测试:查看杯子使用说明书
->界面测试:查看杯子外观
->功能度:用水杯装水看漏不漏;水能不能被喝到
->安全性:杯子有没有毒或细菌
->可靠性:杯子从不同高度落下的损坏程度
->可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
->易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
->用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
->疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
->压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
->跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损
->震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
->测试数据:测试数据具体编写此处略(最讨厌写测试数据了)。
->期望输出:该期望输出需查阅国标、行标以及使用用户的需求
->说明书测试: 检查说明书书写准确性
21、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
——软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
——测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)
22、在Linux系统中,一个文件的访问权限是755,其含义是什么?
755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
所有者+群组用户+其他用户,rwx = 421。
23、测试工具在测试工作中是什么地位?
(1)国内的很多测试工程师对测试工具相当迷恋,尤其是一些新手,甚至期望测试工具可以取代手工测试。测试工具在测试工作中起的是辅助作用,一般用来提高测试效率。自动化测试弥补了手工测试的不足,减轻一定的工作量。实际上测试工具是无法替代大多数手工测试的,而一些诸如性能测试等自动化测试也是手工所不能完成的。
(2)对于自动测试技术,应当依据软件的不同情况来分别对待,一般自动技术会应用在引起大量重复性工作的地方、系统的压力点、以及任何适合使用程序解决大批量输入数据的地方。然后再寻找合适的自动测试工具,或者自己开发测试程序。
(3)一定不要为了使用测试工具而使用。
24、简述一下c/s模式或者b/s模式?
——C/S模式:客户端/服务器模式。工作原理:Client向Server提交一个请求;Server则使用一些方法处理这个请求,并将效果返回给Client。
——B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
25、简述负载测试与压力测试的区别。
——压力测试(Stress Testing):压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。
——负载测试(Volume Testing):用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
26、ISO模型分为哪些层,从底向上的顺序是怎么样的?
从底向上:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
交换机工作在ISO模型中的第几层?——2层(数据链路层)。
路由器工作在ISO模型中的第几层?——3层(网络层)。
27、TCP/UDP有哪些区别?*
——TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换。
——UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程。
28、简述子网掩码的用途。
——子网掩码主要用来判断两个IP地址是否处在同一个局域网当中;子网掩码是由连续的2进制1组成的。子网掩码和IP地址进行按位与运算后,结果一致,表示处于一个局域网当中,如果不一致,表示不再一个局域网当中,需要寻找路由。
29、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。
——首先:得到相关文档(需求文档和设计文档),理解需求和设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。
——第二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外一个模块由另一个测试人员负责,可以进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据是使用数据库中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。有3个步骤,就可以分别对这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。
——第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat,所以只要有tomcat即可
——第四步:执行测试
30、您所熟悉的测试用例设计方法都有哪些?
请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
(1)等价类划分:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
(2)边界值分析法:是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
(3)错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结.还有,输入数据和输出数据为0的情况.输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况.可选择这些情况下的例子作为测试用例.
(4)因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
31、比较黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
32、做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。
33、测试用例的设计方法有哪些?请阐述判定表设计测试用例的步骤。
等价类划分,边界值分析,错误推断法,因果图法,正交表分析法,场景分析法。
判定表设计测试用例的步骤:确定规则的个数;列出所有的条件桩和动作桩;填入条件项,得到初始判定表;简化合并相似规则。
34、自动化测试框架有哪几种?
模块化框架,函数库框架;关键字驱动测试框架;数据驱动框架。
35、测试覆盖率分为哪几种统计方式?分别是什么?
代码覆盖率;功能模块覆盖率;数据库覆盖率;需求覆盖率。
36、什么是FMEA?
——失效模式与影响分析,它是一种可靠性设计的重要方法,对各种风险进行评价,分析,以便在现有技术的基础上消除这些风险或将风险减少到可以接受的水平。
37、什么叫做有效等价有效类,无效等价类?
——有效等价类值对于程序规格来说是合理的,有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明书的预先设定的功能和特性。无效等价类是指对于软件规格来说是没有意义和不合理的输入的数据集合。
38、请描述TCP/IP建立连接的过程
——采用三次握手,建立一个连接。
——第一次握手,客户端发送syn包(syn=j)到服务端,并进入SYN_SEND状态,等待服务器确认;
——第二次握手,服务端收到syn包,必须确认客户的SYN(ack=j+1),同时也发送一个syn包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
——第三次握手,客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入EATABLISHED状态,完成三次握手。
39、调用一个DLL(动态链接库)有哪几种方式?
(1)编程的时候,直接调用include库文件。编好的程序使用时为操作系统直接调用。
(2)编程的时候使用LoadLibrary,FreeLibrary,GetProcAddress来动态装载程序。则编好的程序使用库文件时,是程序自己主动载入。
40、进程与线程的区别?
线程是进程的一个执行单元,也是进程的可调度实体。与进程的区别:
->地址空间:进程内的一个执行单元;进程至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间;
->资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;
->线程是处理器调度的基本单位,进程不是;
->二者均可并发执行。
41、白盒测试之六种覆盖
->语句覆盖:可执行语句至少被执行一次;
->判定覆盖:每个判断的取真分支和取假分支至少经历一次;
->条件覆盖:每个条件的取值至少满足一次;
->判断条件覆盖:判断和条件都满足;
->条件组合覆盖:每个条件的所有可能都至少出现一次,并且判定结果至少出现一次;他与条件覆盖的区别:他不是简单要求每个条件出现“真”和“假”两种结果,而是要求这些结果所有可能至少出现一次;
->路径测试:执行所有可能的执行路径;
->基本路径测试:路径测试执行了每个路径,每个判定的结果肯定经历过一次
六种覆盖标准,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
42、针对缺陷采取怎样的管理措施?
(1)要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的。
(2)根据缺陷的生命周期,考虑缺陷提交的管理,缺陷状态的管理和缺陷分析的管理。
(3)所有发现的缺陷必须全部即时的,准确的提交到缺陷管理工具中,这就是缺陷提交的管理。
(4)缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷的尽快解决,缺陷解决后需要即时对缺陷的修复进行验证。目的有2个:让缺陷尽快解决;方便后面缺陷的分析.
(5)为了更好的改进开发计划和测试过程,需要对缺陷进行分析,总结如缺陷的类型,缺陷的龄期分布等信息。
43、如果能够执行完美的黑盒测试,还需要进行白盒测试吗(黑盒和白盒的区别?)
——任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
——黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
——白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
——以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试互为互补关系,结合起来进行测试用例的设计更为合理。
——经验表明,通常在进行单元测试时采用白盒测试方法,集成测试使用灰盒测试,系统测试使用黑盒测试。
44、其他问题记录(黑盒测试方法、因果图法)
——常用黑盒测试方法:等价类划分法、边界值分析法、正交实验设计法、因果图法、决策表法。
——因果图法:等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的,着重测试规格说明中的输入与输出间的依赖关系。
——因果图法测试用例的设计步骤:
(1)确定软件规格(需求)中的原因和结果
(2)确定原因和结果之间的逻辑关系
(3)确定因果图中的各个约束(constraints)
(4)画出因果图并转换为决策表
(5)根据决策表设计测试用例
等值分析测试=等价类划分+边界值分析测试,边界值法既是白盒又是黑盒测试方法。
看了这篇内容后,坚信以下两件事,也会对你的自我提升有一定的帮助:
1、点赞,让更多人能看到,同时你的认可也会鼓励我创作更多优质内容。
2、要让自己变得更强:想想,假如你是要在测试这个行业长期做下去,你的工作经验和测试技术是绝对不够的,你需要提升,你需要丰富你的技术栈!还等什么!
最后:【可能给你带来帮助的教程】(私聊q1领取)
这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。