目录
3.python字典怎么删除一个元素,添加一个元素,修改一个元素
软测基础知识
1.什么是软件测试?(定义)其目的是什么?
通过手工或自动化的手段来运行或测定某个软件产品系统的过程,目的在于检测软件产品是否满足规定的需求,或者弄清楚预期结果与实际结果之间的差别。
2.软件测试的对象是什么?
1)源程序/目标代码
2)各开发阶段的文档(需求规格说明、概要设计说明、详细设计说明及其它相关文档)
需求文档测试:需求文档是否符合用户要求、是否符合逻辑、技术是否能实现。
设计文档测试:测试设计是否符合全部需求以及设计是否合理。
3.软件测试的意义在哪里?应该在什么阶段进行?为什么?
是整个软件系统质量的保障,可以降低软件质量风险,使程序员能够更专心解决程序的算法和效率,同时经过严格检验的完整产品很大程度上减轻了售后服务人员的工作量。应在软件上线前进行,避免用户的不良体验。
4.软件测试方法的分类
按照执行测试的角色划分
手工测试:由软件测试工程师完成的测试
自动化测试:由测试工具完成的测试
按照开发阶段划分
按照开发阶段,软件测试可以划分为如下几个阶段:
单元测试: 单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作,其目的在于检查每个程序单元是否能够正确的实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。
集成测试: 集成测试也可以称为组装测试,通常在单元测试得基础上,将所有的程序模块进行有序的、递增的测试模式。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序或软件,总共有两种集成方式,一种是自低向上的,一种是自顶向下的。软件集成也是一个持续的过程,在不断的集成过程中,功能的稳定性非常重要,在每个版本提交时都需要进行冒烟测试。
确认测试: 确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求,其一般在系统测试前面进行,时间非常短,只是看系统的功能方面是否满足要求。
系统测试: 系统测试是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的全面的测试,以保证软件在真实的环境中能够按照要求运行,满足用户在实际工作中的需求。
验收测试: 按照项目任务书或者双方约定的合同等具有法律效率的文件,对整个系统进行评审,以确认是否接收该系统。
回归测试:是在软件的维护阶段,对软件进行修改之后进行的测试,其目的是检验对软件的修改是否正确。
开发方测试: 通常也叫“验证测试”或“α测试”;开发方通过检测和提供客观证据,证实软件的实现是否满足规定需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足指定要求。这个可以和软件的系统测试同时进行。
用户测试: 在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户提交在使用过程中发现的缺陷与bug,然后再由开发人员进行修改。与其相关的有一种测试叫“β测试”,其指的是把软件产品有计划的免费发放到市场,让用户大量使用,并评价、检查软件,以搜集软件潜在的缺陷,然后让开发人员进行修改即可。
第三方测试: 介于开发方与用户方之间的测试组织组织的测试,其在一定程度上独立于双方,第三方测试也叫独立测试。也就是说第三方测试是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般情况下是在模拟用户真实环境下,进行软件确认测试。
白盒测试: 白盒测试又称结构测试。是通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清除了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。主要方法有:逻辑驱动测试、基路测试。白盒测试分为静态和动态测试2类:
静态:不执行程序,静态结构分析法、代码检查法、静态质量度量法
动态:基本路径测试、逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断-条件覆盖、条件组合覆盖、路劲覆盖、)、域测试、符号测试等
黑盒测试: 通过软件的外部表现发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序的界面处进行测试,其只为验证软件程序的各项功能是否按照相关文档的要求实现。
灰盒测试: 介于白盒和黑盒测试之间,灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不如白盒测试细致,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。灰盒测试结合了以上两种测试方法的要素,考虑到了用户端、特定的系统知识和操作环境。其在系统组件的协同性环境中评价应用软件设计。
各个阶段使用的测试方法:单元测试用白盒测试方法、集成测试用近似灰盒测试的测试方法、而系统测试和确认测试应用黑盒测试方法。
黑盒和白盒的区别与关系?
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试互为互补关系,结合起来进行测试用例的设计更为合理。
白盒测试之六种覆盖
1.语句覆盖:可执行语句至少被执行一次;
2.判断覆盖:每个判断的取真分支和取假分支至少经历一次;
3.条件覆盖:每个条件的取值至少满足一次;
4.判断条件覆盖:判断和条件都满足;
5.条件组合覆盖:每个条件的所有可能都至少出现一次,并且判定结果至少出现一次 ;
他与条件覆盖的区别:他不是简单要求每个条件出现“真”和“假”两种结果,而是要求这些结果所有可能至少出现一次;
6.路径测试:执行所有可能的执行路径;
7.基本路径测试:
路径测试执行了每个路径,每个判定的结果肯定经历过一次
6中覆盖标准,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
按测试对象划分
性能测试:对产品的性能进行测试,检验是否达标、是否能够保持。
安全测试:测系统对非法入侵的防范能力。
兼容性测试:检验被测软件对其他应用软件或者其他系统的兼容性。
文档测试:对系统提交给文档进行验证,它要求检查系统的文档是否齐全。
易用性测试(用户体验测试):让一群有代表性的用户尝试对产品进行典型操作,- - 同时观察员和开发人员在一旁观察,聆听,做记录。
业务测试:是测试人员将系统的各个模块串接起来运行、模拟真是用户实际的工作流程,满足永续需求定义的功能进行测试的过程。
界面测试:界面测试也成为UI测试。测试用户界面的功能模块的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的使用习惯,还要测试操作界面操作便捷性、导航简单易懂性、页面元素的可用性,页面元素的可用性、界面中文字是否正确,命名是否统一,页面是否美观、文字、图片组合是否完美。
安装测试:测试程序的安装、卸载过程是否可以正常执行
按测试地域划分
本地化测试、国际化测试:外观、语言翻译、系统兼容、日期格式(日月年)、硬件兼容
5.软件测试的流程
6.软件测试的实例(CMDB)
项目目的
将需要储存的信息通过模块采集,并存放在本地数据库。当用户需要信息时,从本地数据库读取,并以页面的形式展示给用户。
基于Django框架实现Web形式的自动化运维系统, 远程控制服务器, 提高运维工程师的工作质量和效率。
项目步骤
1.配置settings.py 定义数据库的信息(配置mysql数据库,其中数据库名字,用户密码,其中都需要提前主机中创建好)
2.models.py定义数据库的结构并生成迁移脚本并写入数据库:
内容包括主机ip地址、mac地址、操作系统信息等等,并定义各个数据类型的数据格式。
命令:
python3 manage.py makemigrations
python3 manage.py migrate
3.建立admin.py管理登录用户
4.建立views.py(保存函数或者类的视图文件)完成视图层的创建:
nmap扫描存活主机;
telnetlib判断ssh服务是否开启,即是否为linux服务器;
paramiko实现远程登录。
5.前端html文件配置
6.路由文件配置(主路由调用admin,子路由调用views)
7.什么是事务?事务的特性
事务就是一组操作步骤要么同时发生,要么一步也不执行,它保证了数据始终一致的状态,不破坏数据的完整性。比如说同时修改两个表,如果他们是一个事务,当第一个表修改成功而第二个表修改失败时,则两个表都回到修改前的状态,如果他们不是一个事务,只有第二个修改失败的表回到初始状态
A原子性:事务是一个不可分割的操作,要么全部执行,要么全部不执行
C一致性:事务执行前后数据的一致性
I隔离性:多个用户并发访问数据库时, 数据库为每个用户开启一个事务,不能被其它事务操作数据所干扰,事务之间是相互隔离的
D持久性:事务一旦被提交,对数据库的改变是永久的,不会因为发生故障而改变
8.给你一个网站,你如何测试?
1、查找需求说明、网站设计 m 等相关文档,分析测试需求。
2、制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
3、设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。提交功能的测试。
多媒体元素是否可以正确加载和显示。多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
- 页面是否风格统一,美观
- 页面布局是否合理,重点内容和热点内容是否突出
- 控件是否正常使用
- 对于必须但为安装的空间,是否提供自动下载并安装的功能
- 文字检查
性能测试一般从以下三个方面考虑:
压力测试; 负载测试; 强度测试
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
- 基本的登录功能的检查
- 是否存在溢出错误,导致系统崩溃或者权限泄露
- 关开发语言的常见安全性问题检查,例如 SQL 注入等。
- 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:
兼容性包括:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性
4、开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。定期评审,对测试进行评估和总结,调整测试的内容。
在搜索引擎中输入汉字就可以解析 到对应的域名,请问如何用 r LoadRunner 进行测试。
建立测试计划,确定测试标准和测试范围
设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等
根据测试用例,开发自动测试脚本和场景:
录制测试脚本
新建一个脚本(Web/HTML 协议)
点击录制按钮,在弹出的对话框的 URL 中输入”about:blank”。
在打开的浏览器中进行正常操作流程后,结束录制。
调试脚本并保存。可能要注意到字符集的关联。
设置测试场景
针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标
针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件
下,系统是否会崩溃。
执行测试,获取测试结果,分析测试结果
9.如何测试一个纸杯?
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)
放 24 小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
python部分
1.讲讲Python的语法。
2.python的数据类型?有啥区别?
数据类型:列表、字典、元组
区别:列表和字典是可变类型,元组是不可变类型,不可变类型是指对象在内存块里的值不能被改变。列表的定义用‘[]’,字典用{},元组用(),元素之间都是用','隔开
3.python字典怎么删除一个元素,添加一个元素,修改一个元素
https://blog.csdn.net/weixin_46833747/article/details/107436852
dict = {'a': 1, 'b': 2}
删除元素:
del dict; #删除dict字典
del dict['a'];# 删除某个特定元素
dict.clear(); #清空所有条目
dict.pop(dict['a']);
dict.popitem();#随机删除
添加元素:
dict['c] = 3
修改元素:
dict['a'] = 11111
4.创建一个学生表,学生id是主键,自增
drop table if exists student;
create table student(
id int(10) auto_increment primary key,
name varchar(50));
另一种写法:
drop table if exists student;
create table student(
id int(10) auto_increment ,
name varchar(10),
primary key(id))
5.python写代码时有什么规范?空格怎么空
按tab键,如果该空格的没空格,就会报缩进错误
6.python中文件的读写
https://blog.csdn.net/weixin_46833747/article/details/107453759
7.python中匿名函数与递归函数
https://blog.csdn.net/weixin_46833747/article/details/107452617
8.python中的生成式、生成器、闭包、装饰器、异常处理
https://blog.csdn.net/weixin_46833747/article/details/107460358
网络部分
1.讲讲TCP、IP协议
TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点
TCP建立连接时,需要三次握手协议。断开需要四次挥手。
https://blog.csdn.net/weixin_46833747/article/details/107775859#1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86
TCP三次握手的过程如下:
客户端发送SYN报文给服务端,进入SYN_SEND(SEQ=X)状态
服务端收到SYN报文,回应一个SYN(SEQ=Y) ACK(ACK=X+1)报文,进入SYN_RECV状态
客户端收到服务端的SYN报文,回应一个ACK(ACK=Y+1)报文,开始建立连接
四次挥手:
TCP/IP作用是什么?
TCP/IP协议是一套网络通信标准,让全世界的各种不同的设备之间可以进行通信
TCP与UDP的区别?
(1)TCP:面向连接,可靠的,速度慢,效率低。
(2)UDP:无连接、不可靠、速度快、效率高。
当进程需要传输可靠的数据时应使用TCP,当进程需要高效传输数据,可以忽略可靠性时应使用UDP协议。
2.osi七层模型
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
物理层:同轴电缆、接收器、发送器等
数据链路层:网卡、交换机、网桥
网络层:路由器、网关
传输层:TCP协议、UDP协议
会话层:SQL、ASP、 PHP等
表示层:ASCII、JPEG、PNG、MP3等
应用层:telnet、ssh、http、smtp等
OSI七层模型 | 功能 | 对应的网络协议 | TCP/IP四层概念模型 |
应用层 | 文件传输,文件管理,电子邮件的信息处理——apdu | HTTP、TFTP, FTP, NFS, WAIS、SMTP | 应用层 |
表示层 | 确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,最小单位——ppdu | Telnet, Rlogin, SNMP, Gopher | |
会话层 | 负责在网络中的两节点建立,维持和终止通信,在一层协议中,可以解决节点连接的协调和管理问题。包括通信连接的建立,保持会话过程通信连接的畅通,两节点之间的对话,决定通信是否被终端一斤通信终端是决定从何处重新发送,最小单位——spdu | SMTP, DNS | |
传输层 | 定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题——tpdu | TCP, UDP | 传输层 |
网络层 | 控制子网的运行,如逻辑编址,分组传输,路由选择最小单位——分组(包)报文 | IP, ICMP, ARP, RARP, AKP, UUCP | 网络层 |
数据链路层 | 主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC(媒体访问控制)地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层,最小的传输单位——帧 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继 | 数据链路层 |
物理层 | 定义物理设备的标准,主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流,因此最小的传输单位——位(比特流) | IEEE 802.1A, IEEE 802.2到IEEE 802. |
3.DNS解析过程
1.浏览器检查缓存种有没有这个域名对应的解析过的ip地址,如果有该解析过程将会结束。
2.检查本地的hosts文件是否有这个网址映射关系
3.如果hosts种没有这个域名映射,查找本地DNS解析器缓存,如果有直接返回
4.通过首选DNS服务器(本地域名服务器),以递归或循环的方式查询域名对应的ip地址并返回。(顶级域,二级域,三级域)
先递归:
1、浏览器缓存
2、/etc/hosts
3、/etc/resolv.conf
再迭代:
本地域名服务器--->顶级域--->二级域--->三级域
4.讲一讲访问www.baidu.com的过程
1、输入网址
2、DNS解析
3、建立tcp连接
4、客户端发送HTTP请求
6、服务器响应请求
7、浏览器收到数据后,通过浏览器的渲染结果来显示网页
8、浏览器关闭TCP,即四次挥手离别。
linux部分
1.mysql引擎
2.基础知识
https://blog.csdn.net/weixin_46833747/article/details/108052438