首页 > 其他分享 >0-4 测试面试题_16合并两个排序数组_17tcp和udp_18单元集成系统验收回归_19测试和开发合作_20自动化测试意义,要做什么

0-4 测试面试题_16合并两个排序数组_17tcp和udp_18单元集成系统验收回归_19测试和开发合作_20自动化测试意义,要做什么

时间:2022-09-19 11:58:40浏览次数:92  
标签:面试题 数组 集成系统 list UDP TCP len 测试

  • 面试题(除个别外)及部分解析答案来自牛客网https://www.nowcoder.com/exam/interview/
  • 以下所述内容并不是百分之百正确,仅供参考。
  • 16 手写代码:合并两个排序数组

  • Merge
  • 1 先将两个数组排序
  • 2 循环比较,小的填入第三个数组
  • 3 最后剩下的部分数组写进第三个数组
  • https://blog.csdn.net/weixin_28872169/article/details/86215815
  • https://blog.csdn.net/yuzhao727/article/details/123466865
// python
// merge two sort arrays // 先把两个数组从大到小排序,然后再循环比较,小的加到新数组中

//# 功能:对两个列表排序 //# input:两个列表 //# output:不去重的合并列表、合并后去重的列表 def merge_two_arrays(list_a, list_b): if not list_a: return list_b if not list_b: return list_a list_c = [] list_a.sort() list_b.sort() len_a = len(list_a) len_b = len(list_b) i=0 j=0 while i<len_a and j<len_b: if list_a[i]<=list_b[j]: list_c.append(list_a[i]) i+=1 elif list_a[i]>list_b[j]: list_c.append(list_b[j]) j+=1 if i == len_a: list_c.extend(list_b[j:]) break if j == len_b: list_c.extend(list_a[i:]) break list_d = sorted(set(list_c)) // 合并后去重 return list_c, list_d //# 功能:对两个列表排序 //# input:两个列表 //# output:合并前去除两个元素之间相同的元素比如以下两个列表中的2, //# 但不去除各自里重复的数字,比如4 def merge_two_arrays_no_same_element(list_a, list_b): if not list_a: return list_b if not list_b: return list_a list_c = [] list_a.sort() list_b.sort() len_a = len(list_a) len_b = len(list_b) i=0 j=0 while i<len_a and j<len_b: if list_a[i]<list_b[j]: list_c.append(list_a[i]) i+=1 elif list_a[i]>list_b[j]: list_c.append(list_b[j]) j+=1 else: list_c.append(list_a[i]) // 当两个列表元素相同时,只加一次,两者都前进 i+=1 j+=1 if i == len_a: list_c.extend(list_b[j:]) break if j == len_b: list_c.extend(list_a[i:]) break return list_c if __name == '__main__': list01 = [2,4 1,7,3,9,6,8] list02 = [99, 7, 0, 4, 24, 8, 55, 76, 4, 2] result = merge_two_arrays(list01, list02) result1 = merge_two_arrays_no_same_element(list01, list02) print(result[0]) // [0, 1, 2, 2, 3, 4, 4, 4, 6, 7, 7, 8, 8, 9, 24, 55, 76, 99] print(result[1]) // [0, 1, 2, 3, 4, 6, 7, 8, 9, 24, 55, 76, 99] print(result1) // [0, 1, 2, 3, 4, 4, 6, 7, 8, 9, 24, 55, 76, 99]
  •  17 TCP和UDP的区别

  • TCP: Transmission Control Protocol 传输控制协议 运输层 基于字节流 点对点
  • UDP: User Datagram Protocol 用户数据报(数据报文)协议 运输层 基于数据报文 点对多
  • 以上从字面上可以区分出TCP和UDP
  • 对于安全性而言,TCP更可靠。
  • 对于效率性而言,UDP更快速。
  • TCP用于传输保密性更高,但量不大的数据。登录账号、发送邮件等
  • UDP用于传输保密性不高,但量很大的数据。加载音乐、视频等
  • 来源:https://www.cnblogs.com/williamjie/p/9390164.html
  • 牛客网解题思路:

  • 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
  • 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
  • 3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
  • 4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  • 5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
  • 6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
  • 18介绍单元测试、集成测试、系统测试、验收测试、回归测试

  • 单元测试:是测试工作中的最小测试单位,小到一个功能函数,大到一个模块。基于代码来开展。
  • 集成测试:是在单元测试的基础之上,把若干个单元集成到一起,测试单元之间的逻辑和数据交换等。
  • 系统测试:在集成测试之后,对整个系统展开的测试。这时候就要着眼于系统整体来开展测试,比如安全性、性能、兼容性等。
  • 验收测试:在上线前,阿尔法测试前的一次测试,主要测试系统的业务流程,是否运行正常。
  • 回归测试:是以前的版本出现bug,修改bug之后(在新版本中)进行的测试。
  • 牛客网解析参考:

  • 1 单元测试
  • 是最小的软件设计单元模块的测试,确保单元模块的编码正确,根据《过程设计描述》进行白盒测试,静态测试代码的风格规则、程序设计和结构、业务逻辑,及早发现解决错误。
  • 2 集成测试
  • 是与模块接口相关的测试。按照《设计》中的描述,把通过单元测试的单元模块组合起来,通过自顶向下或自底向上的方式测试。
  • 自顶向下:首先集成主模块,然后再按照深度优先或广度优先集成到整个结构。
  • 自底向上:从原子模块(最基本的单元模块)开始向隶属于的父模块集成,不使用测试桩。
  • 3 系统测试
  • 是在系统实际运行环境中进行的测试。按照《系统整体需求说明书》进行黑盒测试,覆盖所有与系统相关的部件。测试与系统相关的所有依赖资源,包括软件、硬件、外部设备、数据、支持软件和接口等。
  • 4 回归测试
  • 是把老版本出现的bug再重新在新版本中测试,确保bug已被修改。理论上,当产生了新版本时,都需要进行回归测试。
  • 5 验收测试
  • 是《系统开发生命周期方法论》的一个阶段,包括Alpha和Beta测试。前者是用户在开发者控制的环境中进行,后者是用户在用户环境中进行。后者用户把问题报告给开发者,开发者做最后的修改,发布最终的软件。
  • 19 测试和开发需要怎么合作才能使软件的质量得到更好的保障?

  • 及时沟通,不让问题落地,合作共赢。工作不是一个人的独角戏,而是一项社会化的活动。在工作期间,就是职场的角色,尽量把生活中的色彩暂时放在一边。
  • 双方多交换意见,对一些工作的时间节点达成一致时,就要尽力按时做到。没有哪一方应该为对方的过错、拖沓兜底。
  • 熟悉各自独立的工作内容和两方需要合作的工作内容,明确职责,是自己的工作积极完成,不是自己的不接,分清状况。否则,为了完成不是自己的那些工作耽误自己进度,连累的就是整体。任何事项尽量落实到个人。
  •  参考牛客解析:

  • 结合W模型和V模型展开叙述
  • 1 按照W模型结合,同步进行。尽早发现缺陷,降低开发成本

  • 来源:黑马测试bilibili1024系列230视频截图
  • V模型的不足之处
  • 忽略对需求分析、系统设计的验证。

  • 来源:黑马测试bilibili1024系列229视频截图
  • 20 自动化测试有什么意义,都需要做些什么?

  • 自动化测试的意义就是自动化,代替人工执行一些大量的、重复的测试活动。降低出错率,节省出来的时间和人力又可以投入到其他更复杂的测试活动中去,是对传统手工重复简单测试活动的优化。
  • 自动化测试需要根据测试计划编写测试脚本,搭建自动化测试环境,并根据执行结果制定测试报告。测试脚本和环境也需要人员维护。
  • 参考牛客网解析:

  • 意义:
  • 1 对新版本自动执行回归测试
  • 2 执行传统人工测试很难做到的测试,例如压力测试、并发测试。
  • 3 充分利用资源,节省人力物力时间,提高工作效率......
  • 做什么:
  • 1 判断项目适不适合开展自动化测试;
  • 2 如果适合,进行需求分析,制定测试计划;
  • 3 搭建测试框架,设计测试用例;
  • 4 执行,评估。

 

标签:面试题,数组,集成系统,list,UDP,TCP,len,测试
From: https://www.cnblogs.com/annyanny/p/16705260.html

相关文章

  • 接口测试-requests
    引言:你是如何做接口自动化的,用的工具于技术有哪些?2个维度:工具:postman、jmeter代码:requests一、Requests概述Requests在官方的文档中,有这么介绍的⼀句话,具体为:HTTPFo......
  • 通过自动化单元测试的形式守护系统架构
    1背景随着需求开发迭代,代码库规模逐渐变大,新的团队成员引入等诸多因素,系统起初制定的架构规则不可避免遭到破坏。不仅仅是破坏团队的统一开发规范,更为重要的是随着代码库......
  • allure介绍——生成完美的测试报告
    一、allure简介Allure是输出网页测试报告的一种框架1、该框架是基于Java写的,所以安装该框架需要先安装JDK;2、下载allure命令行工具,路径:https://github.com/allure-frame......
  • 【自动化测试】xpath、css使用及区别
    CSS和XPATH的功能对比对比项定位方式CSSXPATH常规属性id#id_keyword//*[@id=‘id关键字‘]常规属性class.class_name//*[@class=‘class属性名‘]......
  • CentOS6扩容测试
    1、查看当前状态root有7个多G2、新增了一块磁盘sdb,容量为20G3、fdisk/dev/sdb——划分区,新建分区sdb14、mkfs.ext4/dev/sdb——格式化成ext4格式5、pv......
  • 带你掌握如何使用CANN 算子ST测试工具msopst
    摘要:本期带您了解如何使用msopst工具。本文分享自华为云社区《【CANN文档速递13期】算子ST测试工具【msopst】》,作者:昇腾CANN。如何获取msopst工具msopst工具存储在As......
  • 关于IntelliJ IDEA 2020.1 勾选delegate IDE build/run actions to maven后测试类方法
    今天写MAVEN项目时,在执行测试类时发现方法都执行了两次,比如我执行insertAccout的测试类,就保存了两条相同的记录,执行别的测试类的时候,都会附带执行一次插入,产生一条记录,看了......
  • 面试题:一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费
     问题:一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费吗答案:不影响。为什么呢?因为rocketmq首先对消息进行负载均衡(rebalance),就是将topic中......
  • Js手写面试题第三天
    前言❓有任何疑问都可以私信我解答⚡仓库地址:​https://gitee.com/super_li_yu/jsexamdemo......
  • 崩溃!学了三年Python,这几道面试题还是答不好
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试Python语......