当前位置: 首页 > news >正文

软件测试面试刷题app包含了各种难题

软件测试的生命周期:

  • V模型:与软件开发阶段呼应
    • 软件开发:需求分析-->概要设计-->详细设计-->编码阶段
    • 软件测试:单元测试-->集成测试-->系统测试-->验收测试
  • 从基本流程的角度讲:
    • 需求阶段:测试人员了解需求, 对需求进行分解, 得出测试需求
    • 计划阶段:根据需求编写测试计划 / 测试方案
    • 设计阶段:测试人员适当的了解设计, 对于设计测试用例是很有帮助的, 测试人员搭建测试用例框架, 根据需求和设计编写一部分测试用例
    • 编码阶段:测试人员一般是不需要编码的, 但已经编码的模块, 专业的白盒测试人员可以计划执行单元测试, 完善, 细化测试用例以及调整测试计划和方案
    • 测试阶段:测试阶段是软件测试人员最为重要的工作阶段, 根据测试用例和计划执行测试, 在执行的过程中记录, 管理缺陷, 测试完成后编写测试报告
    • 运维阶段:测试人员需要参加项目的实施工作. 测试人员对项目产品的业务和操作非常了解, 加上测试人员的沟通表达能力一般都比较强, 所以测试人员可以参加用户使用软件的培训, 在试运行项目时收集问题并及时反馈给相关负责人

页面加载慢的原因

背景

  • 记得以前有个培训班的老师过来宣传,他当时问了我们一个问题,“打开一个网页慢,你能说出10个原因么?”,我脑海里立刻就出现了网速慢、电脑卡等原因,但是发现自己能说出的不超过五个,自己还是学web的,GG。今天突然想到了这个问题,就总结下

带宽不足

  • 首先想到的就是自己网速的问题,但是一般网速在1M以上的,打开网页一般不会是很慢的。网站服务器的带宽不够的话,当大量用户访问的时候,网页的加载也是很慢的,这就是网络的出口端和入口端两个方面

硬件配置低

  • 本机的配置也会是一方面的,但是只要不是老赛扬单核+512M的配置,一般不会是电脑配置的问题。服务器端的配置也是同样的道理。

CPU或者是内存被占满

  • CPU或者是内存被占满的时候,打开网页很是会很慢的,因为整个电脑都很慢

DNS解析慢

  • 域名的解析是需要专门的域名解析服务器来完成的,DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间,在http请求的过程中,域名解析和建立连接占的时间很多。

JS阻塞请求

  • 写的js代码出现问题,解析就会花费很长时间,这两个js请求之间会出现一个很大的空隙,就会导致这段时间的资源加载都被阻塞住,

接受数据时间过长

  • http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了,长到数百毫秒甚至以秒计算的时候,那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等手段来解决。

加载某个资源太慢

  • 如果某个请求比其他的请求多出很多的时间,那么一般情况就是某个资源的加载太慢,导致了整个网页变慢,原因有可能是1)资源在第三方站点上,他们很慢;2)这个资源太大了;3)这个资源使用的域名有问题

后端代码问题

  • 主要有代码冗余、数据库发生锁死、动态请求时间过长等,这就需要RD优化一切可以优化的东西了

前端页面请求的资源过多

  • onload之前如果有几百行,速度自然会慢的,如果请求的资源不存在,那么速度将会更慢

网页本身中包含了追踪或者是分析用户的工具

  • 导致网页的加载时间变的慢,比如之前海盗湾中会给用户的电脑插入挖矿的js脚本

打开开发者工具看network里的瀑布图。

原因一:http请求次数太多

解决:减少http请求次数
① 图片地图:把多张图片整合到一张图片中,以位置定位超链接。
② CSS Sprites合并图片,通过指定CSS的backgroud-image和backgroud-position来显示元素。
③ 合并JS脚本和CSS样式表。
④ 使用外部JS和CSS文件。

原因二:接收数据时间过长,如下载资源过大

解决:对HTTP传输进行压缩,即在js,css、图片等资源已经压缩的基础上,在HTTP传输过程中的再次压缩。客户端可以通过Accept-Encoding头来声明浏览器支持的压缩方式,服务端通过Content-Encoding来启用压缩,配置压缩的文件类型,压缩方式。gzip使用无损压缩,压缩效果最佳,已经成为使用最为普遍、支持的浏览器最多的数据压缩格式。

原因三:JavaScript脚本过大,阻塞了页面的加载

解决:将JavaScript脚本放在标签前。script没有async和defer时,JS文件将在下载后立即执行。这种情况下,script放在顶部会阻塞页面呈现,在网速慢的情况下会导致“白屏”,直到脚本下载完毕才继续呈现页面。因此,script放在底部可以让页面尽快呈现。

原因四:CSS、JavaScript、图片等需要重复加载

解决:静态资源统一放在一个静态域名上,减轻重复下载静态资源的负担。

原因五:cookie影响

解决:减小cookie的影响
① 去除没有必要的cookie,如果网页不需要cookie就完全禁掉。
② 将cookie的大小减到最小:减小HTTP请求报文的大小,提高响应速度。
③ 设置合适的过期时间:cookie信息将存储到硬盘上,即使浏览器退出cookie还会存在,只要cookie未被清除且还在过期时间内,该cookie就会在访问对应域名时发送给服务器。
④ 通过使用不同的domain减少cookie的使用:cookie在访问对应域名下的资源时都会通过HTTP请求发送到服务器,但在访问一些资源,如js,css和图片时,大多数情况下cookie是多余的,可以使用不同的domain来存储这些静态资源,这样访问这些资源时就不会发送多余的cookie,从而提高响应速度。

原因六:网页资源过多

解决:使用CDN部署网络以提高下载速度,可以先通过免费的CDN供应商来分发网页资源。
原因:DNS解析速度
DNS解析是从域名到IP的解析。DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间。许多人无视了DNS解析的因素,其实它对网站解析速度也是十分重要的。可以更换延迟比较低的DNS服务器。

测试应该什么时候介入

  • 为避免软件缺陷造成的高成本支出或损失,软件测试越早介入越可以帮助规避风险。

一个项目中,测试工作如何介入?

  • 项目前期:跟进需求,充分理解功能需求
  • 项目开发阶段:准备测试素材,如测试用例,测试数据,测试自动化等。
  • 项目测试阶段:执行测试
  • 验收阶段:准备环境给产品负责人验收
  • 上线后:进行线上验证。

软件测试与软件开发的异同

  • 工作和产出

    • 软件开发是通过写代码来生成一个软件,也就是从无到有的过程。
    • 软件测试则是测试一个软件有没有问题,能不能上线,也就是把软件变得更好,起到把关质量的作用。
    • 软件开发是有产品产出的,而软件测试则没有,但是这并不影响软件测试的重要性。
        
  • 工作内容和压力

    • 软件开发需要写大量的代码,要有很多的创造力,比较费脑。
    • 软件测试代码则较少,相对来讲轻松一些,只要耐心、细心就可以胜任。
    • 软件开发从业者随着年龄的增长,可能会因为脑力和体力跟不上而被迫转行。
    • 但软件测试则不会,因为它是一个需要很多经验,越老越吃香的行业。
    • 软件开发人员有时为了赶项目进度常常需要加班熬夜,软件测试人员则不需要加班,正常跟着进度工作就可以了。
        
  • 行业开发与测试人员比例分析

    • 软件开发行业通常以男性为主导,软件测试行业则没有性别歧视,男女比例基本相当。
    • 国外企业软件开发与测试人员的比例为1:1到1:2.5,国内企业的比例却是4:1甚至是10:1,可见软件测试行业的人才缺口相当大。
    • 软件测试的薪资水平相比于开发也不低,刚入行的软件测试人员起薪一般都在8000元左右。
        

为什么选择软件测试

    • 1 在接触软件测试过程中,觉得对测试很感兴趣,愿意去学习一些相关知识,而没有排斥的感觉;
    • 2 目前的求职的行业选择是互联网IT行业,经过深入了解软件测试行业以后觉得还是比较有发展前景的;
    • 3 研发相比测试来说,需要技术上的深度研究,并且工作量更大更累,相比之下,我的技术水平和职业追求更适合测试;
    • 4 对比自身的技术水平和性格特点,比如认真踏实、耐心等,觉得我自己更适合测试岗

软件测试岗位的理解+职业规化

职业认识

  • 软件测试的意义

    • 尽早、尽量用最少的测试发现尽可能多的问题,以保证软件产品的质量。
  • 什么是测试工程师?

    • 以软件开发为例,宏观上说测试工程师就是软件质量的把关者,在一个软件开发流程中测试人员要与开发人员一起对软件的研发进行负责,软件进行质量把关,开发进行功能实现,相辅相成。
    • 测试又分为传统的测试工程师和测试开发工程师,测试开发工程师(以下简称测开)就要在上述的基础上最少在掌握一门脚本语言,两门及以上更好,脚本语言包括但不局限于Python,golang,shell等等因为测试开发工程师其实是造轮子的,换言之就是开发测试用的各种工具;测试工程师对代码要求较测开低一些,但不是一窍不通(我面试的时候都会遇到代码问题),不懂代码层次的问题的话其实就不好进行测试分析这个后面再解释为什么。
  • 测试开发工程师的工作职责和内容

    • 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。
    • 首先很明显的bug开发人员有时候自己就能找到,测试人员要有比开发人员更加全面的想法才能找到深层次的问题点,
    • 其次,要端正一个态度就是测试人员不是一个电脑小白,相反国外顶级的测试开发工程师同时也是顶级的开发工程师甚至更厉害,所以作为一个测试工程师一定要有继续学习的精神和心态,然后明白测试工程师要会写测试用例,要会使用自动化工具,甚至白盒测试工程师要懂代码,要具备广阔的知识面。
  • 自动化测试

    • 首先说一下自动化测试是什么?自动化测试从职能上讲就是去在一定的框架下去开发一些自动化测试脚本来实现QA所做不到的事情,拿fgo来举栗子比较合适,众所周知fgo核心玩法之一就是抽卡,这个抽卡是有概率的(欧皇请自动左滑),而QA是不可能去抽几十万次甚至上百万次来验证概率问题,这时候就要自动化脚本来模拟抽卡去抽,看看概率算法是否有问题,本来自动化测试其实在某种意义上是一种灰盒测试,但是现在很多公司会把自动化测试归到测开里面去,所以现在自动化就偏白盒一些。
    • 第二个要说的就是语言,现在自动化测试流行的语言就是Python,shell,golang,(据说要是cpp厉害的也可以),不是很死板,但主流一定是脚本语言。
    • 游戏QA的话要求会更高,因为传统软件测试要看的方面游戏要测试,而传统软件不作为重点的地方游戏也要测试,所以游戏测试工程师相对来说是工作量会大一些。
  • 技术向的晋升路线

    • 初级测试工程师:测试计划、测试文档、测试执行、结果整理等,门槛不高。
    • 测试开发工程师:核心-编程能力、自动化能力。
    • 测试架构师:在整个测试架构上参与和管理测试,更强调测试流程管理和质量监管,以及白盒测试能力,对测试工具和平台的开发等
  • 提升核心竞争力

    • 技术:编程、自动化、技术架构能力
      • 语言:java和Python等脚本语言。学生的能力。
      • 自动化:测试领域生产力,基础能力。3-5年核心。
      • 架构:更深入的能力,流程管理和白盒测试能力等。5年以上核心。
    • 领域知识:领域架构能力、业务领域、数据意识。
      • 数据:核心。
    • 软实力:沟通、管理
  • 测试工程师的核心业务

    • 前端UI测试:web,app,gui
    • 后端接口测试:sdk,restful,rpc
    • 非功能质量:性能,安全
    • 流程管理:持续集成,持续交付,devops
    • 数据分析:监控平台,数据分析平台,ai辅助平台

职业规划

  • 《软件测试质量保证》所述职业规划

    • [1~2年],测试技能:熟悉整个测试过程及产品业务领域,学习和掌握自动测试工具,学习测试自动化编程技术;开发和执行测试脚本,承担系统测试实施任务;学习编程语言、操作系统、网络与数据库方面的技能。
    • [3~4年],测试过程:深入了解测试过程,掌握测试过程设计及改进,参与软件工作产品的同行评审;进一步了解产品业务领域,改进测试自动化编程技术,能指导初级测试工程师;加强编程语言、操作系统、网络与数据库方面的技能。
    • [4~5年],测试组织工作:管理1~3名测试工程师,担任任务估算、管理及进度控制;进一步培养在软件项目管理及支持工具方面的技能。
    • [5~6年],技术管理:管理4~8名测试工程师,提高任务估算、管理及进度控制能力,完成测试规划冰制定测试计划;研究测试的技术手段,保持使用项目指导及支持工具的技能;用大量的时间为其他测试工程师提供技术及过程方面的指导;开始与客户打交道并做演示推介。
    • [6~12年],测试管理:管理8名以上测试工程师,负责一个或多个项目的测试工作,与客户打交道并做演示推介;保持使用项目管理及支持工具的技能。
  • 发展取决于三点:业务技能、专业技能(测试技能)、管理技能。

    • 通过对自己这三方面的评估,综合选择自己要走的道路。
    • 测试岗位路线
      • 管理:IT做管理,技术深度与广度都会有一定要求,基本管理技能为主,专业技能、业务技能为辅。管理者不懂技术,很难服众。
      • 技术:有技术不愁没工作,当然人品还是要的。
      • 建议技术高薪方向:白盒测试、自动化测试、性能测试、安全测试,当然有机会走管理也别放过机会,毕竟管理薪资不低哈。
    • 转岗其他路线
      • 方向选择:很多入行测试只是过渡。由测试岗位的锻炼,涉及到软件各个岗位的接触。此时转岗容易不少。
      • 比如业务技能强、市场敏感度、洞察力厉害的建议产品经理、运营方向;
      • 比如喜欢编码加班,咳咳,是喜欢与机器打交道建议研发、运维方向等;
      • 喜欢与机器打交道的可以走运维、研发路线。
      • 喜欢与人沟通的可走销售、HR路线。

软件测试概述/对测试的理解 

=====================================================

概述

  • 简单认识软件测试,可以从四个方面理解

    • 软件测试概述
    • 测试用例概述
    • 测试分类概述
    • 软件质量评估

=======================================================

1-软件测试概述

对软件测试的理解

  • 软件测试是软件工程中的一个重要组成部分,基本与开发并行,开发写代码,测试测代码。
  • 软件测试工程师通过多种测试方法,和代码管理工具、自动化工具等,对软件产品的多个模块,如功能和性能等进行测试,以检查软件产品是否有bug,来保证产品的质量。

软件测试的作用

  • 确保软件产品质量:软件测试是软件产品质量保证的重要措施之一
  • 术业有专攻:软件测试人员比其他人做软件测试测试工作,效率更高,效果更好;

软件测试的关键点

  • 尽早发现缺陷:伴随软件开发的各个环节,及时发现问题解决问题,避免最后问题堆积导致无法解决或解决工程量巨大。
  • 用尽量少的测试用例发现尽可能多的缺陷
  • 提升发现缺陷的效率

软件测试的定义

  • 测试定义

    • 通过设计和运行测试用例,来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。
      • 根本目的:确保被测系统符合用户需求
      • 基本手段:设计测试用例
      • 执行方式:手工/自动化
      • 测试策略:动态运行/静态审阅
      • 通用流程:计划、设计、实施、评估
    • 软件测试以需求为中心。
    • 需求:定义需求(委托方)--分析需求(双方)--实现需求(研发)--校验需求(测试)。
  • 测试分类:

    • 软件测试包括动态测试和静态检查两类方法;
    • 测试的执行包括人工和自动化两类策略。

=======================================================

2-测试用例概述

定义

  • 基于风险最低、效率最高、分而治之的测试设计原则;
  • 能代表需求的小的测试单元,描述用户预期输出,反映系统实际执行结果。

测试用例组成

  • 输入+输出+测试环境

    • 输入:测试数据和操作步骤
    • 输出:系统预期执行结果
    • 测试环境:是系统环境设置,即进行软件测试所必需的工作平台和前提条件
  • 具体:

    • 分为9个方面:用例编号/测试项/测试标题/用例属性/重要级别/预置条件/测试输入/操作步骤/预期结果/实际输出
       - 一般情况下分为以上几项可根据公司要求进行增删

测试用例的基本属性

  • 典型性:

    • 能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
  • 可测试性:

    • 一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
  • 可重现性:

    • 对于相同的测试用例,系统的预期执行结果应该完全相同;
    • 否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
  • 独立性:

    • 测试用例应尽量独立

=======================================================

3-测试分类概述

不同角度的测试分类

  • 从测试阶段或对象的角度:

    • 单元测试、集成测试、系统测试和验收测试;
  • 从测试技术的角度:

    • 黑盒测试、白盒测试和灰盒测试;
  • 从测试目标的角度:

    • 回归测试、功能测试、性能测试、 Alpha测试、Beta测试、压力测试、负载测试、安全性测试、配置测试、安装测试、可用性测试、可恢复性测试等。
  • 从测试执行方式的角度:

    • 手动测试、自动化测试和半自动化测试。

从测试阶段或对象的角度

  • V模型:与软件开发阶段呼应

    • 软件开发:需求分析-->概要设计-->详细设计-->编码阶段
    • 软件测试:单元测试-->集成测试-->系统测试-->验收测试

  • 单元测试

    • 是针对每个单元的测试。
    • 用于验证一个单元模块的功能是否正常。
    • 一个单元模块可以包括几行或上百行代码。
    • 单元测试与编码过程是紧密联系的,单元测试有时也认为是编码阶段的一个活动。
  • 集成测试:

    • 是将不同单元模块组合在一起,形成更大组件的过程。
    • 用于查找单元或组件间的接口错误,其关注的重点是那些在单元测试中不能被发现的缺陷。
  • 系统测试:

    • 检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
    • 用于评估整个系统的行为并确保系统行为符合用户需求,并评估系统与硬件设备、运行环境和应用程序等之间的接口。
  • 验收测试:

    • 部署软件之前的最后一个测试操作。
    • 测试范围类似系统测试,通常由系统提供者和客户共同完成的。
    • 验收测试使客户确信应用程序具有所需的特性并且能够正确的运行。

从测试技术的角度

  • 黑盒测试:

    • 关注的是与产品的外部行为相关的缺陷,此时并不考虑产品的内部结构或运行逻辑。
  • 白盒测试:

    • 关注的是与代码内部结构相关的缺陷,因此,需要测试人员掌握一定的编程技术。
  • 灰盒测试:

    • 是综合运用黑盒测试和白盒测试技术的一种混合测试方法。

从测试目标的角度

  • 功能测试:

    • 针对软件功能需求进行测试,目的是检查应用程序的行为是否符合预期。
  • 性能测试:

    • 用于验证系统是否满足规格说明的性能需求,例如容量和响应时间等。
  • Alpha测试( α测试):

    • 在软件发布前,有时会让小规模、有代表性的潜在用户试用软件;
    • 如果由开发机构人员来模拟潜在用户开展测试,则称为α测试。
  • Beta测试( β测试):

    • 软件的早期版本被发布给具有代表性用户群来测试,称为β测试。
    • β测试常被用于面向大众市场的系统、计算机游戏和类似的应用程序。
  • 回归测试:

    • 是软件版本修改后的重新测试,可应用于所有测试级别;
    • 目的是确保被修改组件的行为没有改变,不会造成意外结果.
  • 压力测试:

    • 以设计的最大负载或超过最大负载来运行软件,用于确定系统运行的负载界限。
  • 负载测试:

    • 通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。
  • 安全性测试:

    • 是对产品进行检验,以验证产品符合安全需求定义和产品质量标准的过程。
    • 用于测试系统在遭遇未授权访问、计算机犯罪和破坏时是否能保护自己
  • 配置测试:

    • 当开发的系统需要应用于多种环境配置时,需要对每种配置进行测试,以检测系统行为是否符合规格要求。
    • 包含硬件配置和软件配置。
  • 安装测试:

    • 在目标环境中通过安装来验证软件及其安装过程。
    • 目的是确保该软件在正常或异常情况的不同条件下都能进行安装,且安装后可立即正常运行。
  • 可用性测试:

    • 用于评估系统使用的简易程度,交互是否具有人机工程学设计以及用户文档使用的有效性。
  • 可恢复性测试:

    • 用于检验系统在灾难或意外宕机后的重启能力。

从测试执行方式的角度

  • 手动测试:

    • 人工执行测试。
    • 即根据测试用例中描述的规程,不借助特殊的软件工具,人工来运行被测系统,观察系统实际输出是否符合测试用例的预期输出。
  • 自动化测试:

    • 软件测试的自动化,是一个将以人为驱动的测试行为转化为机器执行的过程。
    • 目的是节省人力、时间或硬件资源,并提高测试效率。

=======================================================

4-软件质量评估

狭义和广义的软件质量

  • 狭义的软件质量:软件的内部质量,即软件无“故障”;
  • 广义的软件质量:产品质量、过程质量和客户满意度

软件测试和软件质量

    • 软件测试是软件质量保证的关键步骤。
    • 但提高软件质量的途径是改进软件开发过程的质量,而不是提高软件测试。

功能测试

1、链接测试  
(1)、测试所有链接是否按指示的那样确实链接到了该链接的页面;
(2)、测试所链接的页面是否存在;
(3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。

2、表单测试
(1)、注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性;
(2)、用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等;
(3)、检验默认值的正确性;
(4)、如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。

3、Cookies测试(session测试同)
(1)、Cookies是否起作用;
(2)、Cookies是否按预定的时间进行保存;
(3)、刷新对Cookies有什么影响。

4、设计语言测试
(1)、使用哪种版本的HTML;
(2)、验证不同的脚本语言。例如Java、Javascrīpt、 ActiveX、VBscrīpt或Perl等。

5、数据库测试
(1)、数据一致性错误:主要是由于用户提交的表单信息不正确而造成的;
(2)、输出错误:主要是由于网络速度或程序设计问题等引起的。

性能测试

1、连接速度测试
(1)、Web系统响应时间;
(2)、超时的限制。

2、负载测试
(1)、某个时刻同时访问Web系统的用户数量;
(2)、也可以是在线数据处理的数量。

3、压力测试
(1)、压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
(2)、压力测试的区域包括表单、登陆和其他信息传输页面等。

可用性测试

1、导航测试
(1)、导航是否直观
(2)、Web系统的主要部分是否可通过主页存取
(3)、系统是否需要站点地图、搜索引擎或其他的导航帮助
(4)、Web应用系统的页面结构、导航、菜单、连接的风格是否一致
(5)、Web应用系统导航帮助要尽可能地准确。Web应用系统的层次一旦决定,就要着手测试用户导航功能。

2、图形测试
一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
(1)、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间;
(2)、Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面;
(3)、验证所有页面字体的风格是否一致;
(4)、背景颜色应该与字体颜色和前景颜色相搭配;
(5)、图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。

3、内容测试
检验Web应用系统提供信息的正确性、准确性和相关性。
信息的正确性是指信息是可靠的还是误传的 。

4、整体界面测试
整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?当然,对界面的整体测试并不能单靠个人直觉来评定;每个人的审美观、专业角度、系统面向的行业及用户 、甚至性别与年龄等等,都是可能导致对界面作出不同评价的因素。所以要明白在对整体界面的测试过程中,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。

兼容性测试

1、平台测试
在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。

2、浏览器测试
(1)、浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、Javascrīpt、ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,Javascrīpt是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。
(2)、测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

安全性测试

(1)、现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等;
(2)、Web应用系统是否有超时的限制,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用;
(3)、为了保证Web应用系统的安全性,需要测试相关信息是否写进了日志文件、是否可追踪;
(4)、当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性;
(5)、服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
(6)、通过模拟攻击的形式拷贝Web应用程序的某个功能点的url地址,然后打开新的页面输入该url地址看其是否能跨过系统的登录模块直接进入该功能点。
(7)、服务器端IIS是否设置了默认文档功能。
(8)、IIS服务器的主目录应该与操作系统的安装路径设置在不同的盘符下。

性能测试

  • 是一个较大的范围,实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容。

压力测试(Stress Testing)

  • 压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。
  • 例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。
  • 人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。

负载测试(Volume Testing)

  • 用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。
  • 例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。
  • 在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
  • 是压力相对较大的测试,主要是测试系统在一种或者集中极限条件下的相应能力,是性能测试的重要部分。

压力测试和负载测试

  • 100个用户对系统进行连续半个小时的访问可以看作压力测试,那么连续访问8个小时就可以认为负载测试,1000个用户连续访问系统1个小时也可以看作是负载测试。
  • 实际上压力测试和负载测试没有明显的区分。测试人员应该站在关注整体性能的高度上来对系统进行测试。

自动化测试原理与框架

自动化测试

  • 概述

    • 自动化测试,就是把以人为驱动的测试行为转化为机器执行的过程。
    • 自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。
    • 阶段:一般落后于新功能的手工测试阶段,可以在手工用例执行完成或功能上线后,再补充。
  • 分类

    • 自动化测试广义说法包括,白盒自动化测试,GUI自动化测试,性能自动化测试
    • GUI自动化测试的原理:通过软件模拟用户实际的鼠标和键盘操作,实现自动化执行和操作的过程。
    • 性能自动化测试的原理:通过客户端模拟多个虚拟用户并发请求,来检验服务器的性能行为是否满足系统要求。
  • 自动化测试的优点:

    • 1、通过录制,编写脚本执行测试,减少回归测试
    • 2、执行手工测试困难,或不可能做得测试,(模拟多个用户并发测试)
    • 3、更好的利用资源,(将繁琐的任务自动化,利用晚上或周末的时间进行执行自动化测试)
    • 4、测试具有一致性和可重复性,(重复多次相同的测试,在不同配置下执行,可以在不同的操作系统测试)
    • 5、测试的复用性
    • 6、缩短测试的时间和周期
  • 自动化测试局限:

    • 1、不能取代手工测试:手工测试比自动化测试发现的bug要多;
    • 2、自动化测试对测试人员的要求相对更高;
    • 3、测试用例需要根据版本迭代进行更新,有一定维护成本;
    • 4、工具本身不具有想象力
    • 5、对测试质量的依赖性极大
  • 希望借助自动化流程解决的问题

    • 1、测试时间紧张,手工测试可能覆盖不全,容易错过某些边界情况;
    • 2、模块间强耦合时,单纯从页面进行测试时,比较难深入发现问题;
    • 3、回归测试时,需要投入较大的人力和工时;
    • 4、实现手工测试无法达成的测试任务,如并发;
    • 5、通过编写测试用例,加深对业务/数据的认知,有助于下阶段迭代中发现隐藏的问题。
  • 引入自动化测试的前提条件

    • 项目周期长,需求变动不频繁;
    • 自动化测试脚本可重复使用;
    • 测试任务手工测试难以实现;
  • 做自动化测试需要具备的能力

    • 编码能力;
    • 熟悉被测系统;
    • 掌握一个自动化测试框架/工具;
    • 不断学习;
  • 自动化测试用例设计原则

    • 保持case的独立性;
    • 保持case的可迁移性;
    • 提升case的执行效率;

自动化框架

  • 概述

    • 定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
    • 特定问题:什么问题?——自动化测试
    • 约束边界:为什么约束?——明确测试范围和目的
    • 解决方案:用什么方案解决问题?——编程语言+工具+其他
    • 构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
    • 工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合
  • 图示

  • 组件

    • Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
    • Report:测试报告生成和管理以及即时通知,测试结果快速响应;
    • Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
    • Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
    • TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
    • TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
    • TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
    • Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
    • Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!

常见的自动化测试框架

  • 1、接口自动化框架:

    • ①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
    • ②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
  • 2、UI自动化测试框架

    • ①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
    • ②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
  • 总结

    • 它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
    • 编程语言:编写测试脚本、日志记录和输出;
    • 单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
    • 扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
    • 持续集成工具:Jenkins,经典的持续集成工具;
    • 数据库:测试数据管理;
    • 项目管理工具:测试结果统计管理;
  • 面试总结

    • 框架:6项 -- 编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
    • 具体:10项
      • 日志记录和管理功能;测试报告;配置文件、静态资源;公共函数、方法以及通用操作;测试用例;测试数据;测试组件;测试结果统计;持续集成环境。

自动化测试的流程

  • 分析自动化测试需求,一般在手工测试之后开始;
  • 根据项目的特点、选择合适的自动化测试工具,并搭建测试环境
  • 测试用例设计和开发:设计测试用例;或提取手工测试的测试用例,转化为自动化测试用例
  • 开发自动化软件测试框架和测试脚本
  • 执行:通过工具、代码实现自动化的构造输入、自动检测输出结果是否满足预期
  • 生成自动测试报告
  • 持续改进、脚本优化

游戏自动化测试的思考

自动化测试工具脑图

软件测试的测试用例思路

软件测试主要从以下 16 种类型进行测试:

一:功能测试(10 个方面)

  • 面向需求
  • 菜单、工具栏、快捷键、下拉框、按钮、单选按钮、复选按钮、切换、链接、触发键

二:界面测试

  • 登陆界面、总界面、输入界面(增、删、改、查)、处理界面、输出界面、报表界面、提示界面

三:容错测试

  • 数据长度、数据类型、非法此操作

四:接口测试

  • 接口测试也叫业务流程测试(包括功能模块之间、模块与模块之间、子系统之间)
    • 内部接口:例如:导入、导出(通俗的讲是接口就是调用)
    • 外部接口:

五:性能测试

  • (TPS 吞吐量、响应速度、cpu 占用率、内存占用率)
  • 平均吞吐量:单位时间内处理事务的个数
  • 平均响应速度:做一个事务处理所用时间
    • 例如:界面操作效率测试;报表输出及查询效率测试

六:负载测试

  • (压力测试、强度测试、容量测试)
  • 压力测试即就是大用户测试(针对 B/S 而言)
  • 容量测试即就是大数据量测试

七:并发测试

  • 指多个用户在同一时间对同一条数据的删除或者修改等处理

八:稳定性测试

  • 例如:1 小时触发 600 条信息,那么 8 个、10 个等发信息的条数测试

九:恢复测试

  • 突然断电(系统触发正常启动;数据包要在断电的地方继续进行处理)

十:配置测试

  • 最低配置:
  • 推荐配置:大多数用户所用的配置

十一:安装测试

  • 安装过程;
  • 卸载过程

十二:文档测试

  • 交给用户的文档。
  • 例如:系统帮助、用户使用手册、用户安装手册

十三:可用性测试(纯粹靠经验)

十四:初始化测试

  • 是指系统刚刚安装完成后,在数据位空的情况下,如果被调用的模块为空,点击调用模块的时候,是否进行容错的测试。

十五:数据完整性测试

  • 是指当主表的某一条件信息被删除后,和这一条相关的从表的信息都应该被删除。
  • 如果某些数据的主键是由数据库本身而实现的,可以不用删除,如果有些主从表是由程序员写的代码而实现,则要进行数据完整性的测试。

黑盒测试

  • 定义:

    • 黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。
    • 在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。
    • 不需要了解具体代码,对测试工程师要求不高。
  • 测试用例与依据

    • 黑盒测试用例设计方法:基于用户需求的测试、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验法、场景法。
    • 依据:用户需求规格说明书,详细设计说明书。
  • 方法细节

    • 等价类划分:是把程序的输入域划分成若干部分,然后从每个部分中取少数具有代表性数据作为测试用例。
    • 边界值分析法: 是对输入或输出的边界值作为测试用例
    • 错误推测设计方法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。
    • 因果图法:利用图解法分析输入的各种组合关系,写出判定表,从而设计相应的测试用例
    • 判定表驱动:是把作为条件的所有输入的各种组合值以及对应输出值都列出来形成的表格称为判定表
    • 正交试验设计:从大量的实验数据中挑选适量的、有代表性的点来设计测试用例

白盒测试

  • 定义:

    • 白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。
    • 程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。
    • 对测试人员要求高:测试人员需要具备一定的编程经验;白盒测试工程师需要具备广博的知识面
  • 测试用例与依据

    • 白盒测试用例设计有如下方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
    • 依据:代码结构。
  • 方法细节

    • 覆盖:至少执行一次
    • 语句覆盖每条语句至少执行一次。
    • 判定覆盖每个判定的每个分支至少执行一次。
    • 条件覆盖每个判定的每个条件应取到各种可能的值。
    • 判定/条件覆盖同时满足判定覆盖条件覆盖。
    • 条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
    • 路径覆盖使程序中每一条可能的路径至少执行一次。
  • 静态白盒测试

    • 不需要实际运行被测软件,而是直接对软件形式和结构进行分析。
    • 静态白盒测试主要包括:代码检查、静态结构分析、代码质量度量等。
  • ps:

灰盒测试

  • 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试
  • 灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
  • 灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

辨析

  • 简单辨析:

    • 黑盒测试:关注程序的功能是否正确,面向实际用户;
    • 白盒测试:关注程序源代码的内部逻辑结构是否正确,面向编程人员;
    • 灰盒测试:介于白盒测试与黑盒测试之间的一种测试。
  • 具体辨析

    • 测试目标和依据:
      • 黑盒面对的是产品设计,白盒针对的是程序功能的实现,灰盒针对兼而有之,既要考虑产品设计要求,又考虑到功能实现的效果。
    • 实现者:
      • 黑盒在意的是客户的角度,白盒测试针对的研发人员。
    • 测试模块颗粒度:
      • 白盒在意的是代码实现层面,而灰盒更加侧重模块之间,颗粒度大于白盒。
    • 版本:
      • 白盒测试一般发生在debug版本,灰盒大多一般在release版本进行。
    • 测试效果:
      • 大量的bug在黑盒测试阶段测试出来,而白盒和灰盒测试的bug数目相对较少。
    • 耗时:
      • 在同等时间内,一般白盒和灰盒的耗时长,bug数量少,一般表现为时间产出比较低,很难大范围普及白盒。
      • 黑盒相对bug时间投入产出比较高。
    • 入门:
      • 黑盒入门较为容易,其次是灰盒,白盒入门门槛教黑盒高很多。

最后:【可能给你带来帮助的教程】

 需要刷题的可以点击下面小卡片领取喔

相关文章:

软件测试面试刷题app包含了各种难题

软件测试的生命周期: V模型:与软件开发阶段呼应 软件开发:需求分析-->概要设计-->详细设计-->编码阶段软件测试:单元测试-->集成测试-->系统测试-->验收测试从基本流程的角度讲: 需求阶段&#xff…...

19、ClickHouse企业中常见的20种用法

文章目录19、ClickHouse企业中常见的20种用法-- 1、表结构添加字段-- 2、删除语句-- 3、更新语法-- 4、查询表字段结构-- 5、展示字段加密处理 身份证号(字母加数字)加密-- 6、展示字段加密处理 手机号(纯数字)加密-- 7、计数 去重…...

怎么样用香港主机搭建游戏网站

香港是全球主要的互联网骨干节点,拥有质量较高的网络基础设施,在网络速度和稳定性方面表现良好。因此,使用香港主机搭建游戏网站可以使用户在游戏中的体验流畅且基本不会延迟情况。本文将向用户解释如何使用香港主机搭建游戏网站。在搭建游戏…...

重磅!GitLab 提出五大预测,洞见 2023 年 DevSecOps 发展趋势

本文来源:about.gitlab.com 作者:Sandra Gittlen 译者:极狐(GitLab) 市场部内容团队 2023 年,企业会将更多的时间和资源投入到持续的安全左移上,完成从 DevOps 到 DevSecOps 的演变。 GitLab CMSO Ashley Kramer 表示…...

内核模块(传参和依赖)

目录 一、模块传参 二、模块依赖 三、内核空间和用户空间 四、执行流 五、模块编程与应用编程的比较 六、内核接口头文件查询 七、小作业 一、模块传参 module_param(name,type,perm);//将指定的全局变量设置成模块参数 name:全局变量名 type: 使用符号 …...

基础篇:03-SpringCloud工程部署启动

目录 1.工程搭建部署 方案一:完整工程导入 方案二:从零开始搭建 1.工程与module创建 2.数据库导入 3.项目启动 3.1 启动并访问user-service 3.2 启动并访问order-service 4.服务远程调用 时序图说明 服务远程调用实现 注入RestTemplate Res…...

二、产品经理——【需求收集】【需求管理】

0. 学习目标 能够理解并描述需求能够收集并管理需求 1. 如何定义需求 1.1. 需求的定义 原始需求:没有经过任何分析,或者没有经过任何额外解读的需求信息 避免日后纠纷,尽量记录一下原始需求!先记录下来,后面再进行分…...

蓝桥杯stm32 USART 串口接收数据

文章代码使用 HAL 库。 文章目录 前言一、创建 CubeMX 工程:二、 中断接收数据 函数:三、串口接收回调函数实验效果四、接收固定长度的数据。五、串口接收 不定长数据。总结前言 上篇文章是 串口的发送数据,这篇文章接着上次的 讲 串口的接受数据。 一、创建 CubeMX 工程:…...

CellularAutomata元胞向量机-9-生命游戏MATLAB代码分享

主程序:%%Conways life with GUI clf % 清除图形clc, clear% %build the GUI %define the plot button plotbuttonuicontrol(style,pushbutton,... string,Run, ... fontsize,12, ... position,[100,400,50,20], ... callback, run1;); %define the stop button era…...

基于Java+Swing+mysql图书管理系统

基于JavaSwingmysql图书管理系统一、系统介绍二、功能展示1.用户登陆、注册2.类别管理--管理员3.图书管理--管理员4.用户管理--管理员5.图书借还情况查看--管理员7.用户主页8.办理还书--用户9.办理还书三、数据库四、其它系统五、获取源码一、系统介绍 该系统实现了 用户: 图书…...

高通IPQ支持串口转RS485

IPQ60xx支持串口转RS485 1. IPQ6018支持串口转RS4851.1 功能需求1.2 原理1.3 实现方法1.4 如何使用RS485?1.5 修改底层串口驱动来进行控制收发状态,上层应用可以直接当成串口来进行操作1. IPQ6018支持串口转RS485 1.1 功能需求 IPQ60xx/IPQ501x/IPQ80xx项目中使用RS485, 需…...

力扣-组合两个表

大家好,我是空空star,本篇带你了解一道简单的力扣sql练习题。 文章目录前言一、题目:175. 组合两个表二、解题1.left join提交SQL运行结果2.right join提交SQL运行结果总结前言 一、题目:175. 组合两个表 表: Person ----------…...

Linux权限概念

目录 Linux权限的概念 什么是权限 如何去操作权限 设置文件所属角色 设置文件属性 umask 粘滞位 Linux权限的概念 首先我们要了解到,在linux下有两种用户:超级用户(root)和普通用户。超级用户的命令提示符是“#”,普通用户的命令提示…...

备战金三银四,这些无数测试前辈们踩过的坑,在面试中,一定要注意这些

你觉得软件测试师这个职位怎么样?大多数人可能会给出答案:“测试?啊,没有技术含量。无非是看需求、业务手册、设计文档,然后点击功能是否实现。问题是测试中的部署和安装是否存在兼容性问题。” 是的,不可否认&#x…...

注解(加与不加的区别)

起因: 在看到这个文章时,对于注解的作用半知半解,由此,写了个例子,验证注解作用 以Override举例 新建一个父类,取名为textone(类名首字母应该大写) 写一个方法: 再新建一个类,继承…...

小众免费的短视频素材库

推荐5个小众但好用的视频素材网站,免费可商用,视频剪辑、自媒体必备~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky ​ 菜鸟图库网素材非常丰富,网站主要还是以设计素材为主,高清视频素材也很多,像风…...

docker-compose安装SonarQube

前言SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。一、docker-compose配置#v…...

《数字经济全景白皮书》金融篇:五十弦翻塞外声,金融热点领域如何实现增长?

易观分析:《数字经济全景白皮书》浓缩了易观分析对于数字经济各行业经验和数据的积累,并结合数字时代企业的实际业务和未来面临的挑战,以及数字技术的创新突破等因素,最终从数字经济发展大势以及各领域案例入手,帮助企…...

微服务门神-Gateway与Sentinel的集成

目录 引言 概述 集成Sentinel 限流维度 网关集成 Route维度 API分组 精准匹配 前缀匹配 正则匹配 自定义限流返回格式 转视频版 引言 书接上篇:微服务门神-Gateway过滤器Filter,讲完了解Gateway过滤器之后,接下来看下Gateway与…...

查找的基本概念

查找表是由同一类型的数据元素(或记录)构成的集合。根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或记录。关键字:用来标识一个数据元素(或记录)的某个数据项的值。查找算法的评价指标…...

安装v-router出错

一、场景 1、安装v-router npm i --save vue-router 2、报错: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: sph20.1.0 npm ERR! Found: vue2.7.14 npm ERR! node_modules/vue npm ERR! v…...

2023美赛C题:预测 Wordle 结果

以下内容全部来自本人人工翻译,仅供参考。 文章目录背景要求附件数据文件条目描述纽约时报网站上发布的Wordle指导方针词汇表参考文献服务背景 Wordle是目前纽约时报每天提供的一种受欢迎的谜题。玩家试图通过在六次或更少的机会内猜测一个五个字母的单词来解决谜题…...

minio public桶禁止在直接访问桶位置时列出所有文件url

minio的public桶因为没有限制,所以在直接访问到桶地址的时候会列出桶内所有文件的url,这样很不安全,如何禁止这个功能,可以使用三种方法 1、如果是新版的可以直接设置桶的Access Policy为自定义就好 编辑custom的Policy&#xff…...

Python 元组简介

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:实例(Python 2.0)tup1 (physics, chemistry, 1997…...

python gui构造openai api可视化页面

背景:最近chatgpt很火,前几天也想注册体验一下,一顿操作之后,卡在该国家不支持。最后发现自己的代理开在香港,改在漂亮国就行了。虽然有chatgpt可以用,但是小平是自己封装了一个,我不能输。正好…...

服务网格领域的百花齐放,是否存在一个更优解?

作者 lingsamuel,API7.ai 云原生技术专家,Apache APISIX Committer。作者 林志煌,API7.ai 技术工程师,Apache APISIX contributor。 服务网格是一种技术架构,它用于管理微服务系统中各个服务之间的通信,旨…...

Zynq 裸机 PS + PL 双网口实现之 lwip 库文件修改

基于 xilinx vivado 2017.4 库文件 lwip141_v2_0 的修改: 添加对 PHY 芯片 ksz9031 的支持; 添加 SDK 中 LWIP 参数设置对话框 emio_options 选项; 添加 XPAR_GMII2RGMIICON_0N_ETH0_ADDR 和 XPAR_GMII2RGMIICON_0N_ETH1_ADDR 宏配置&#…...

金三银四丨黑蛋老师带你剖析-CTF岗

作者丨黑蛋二进制是个庞大的方向,对应着许许多多方向的岗位,除了之前说过的逆向岗位,漏洞岗位,病毒岗位,还有专门打CTF的岗位,CTF是网络安全领域的一种比赛。普遍来讲,大学生学习网络安全都会参…...

Linux find命令

哈喽,大家好,我是有勇气的牛排(全网同名)🐮 有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。 1 介绍 find命令用来查找置顶目录下的文件。任何位于参数…...

vue项目实现会议预约(包含某天的某个时间段和某月的某几天)

一、一天的时间段预约 会议预约有以下操作: 1.点击预约按钮,弹窗最近一周的预约时间点(半小时一个点),预约时间为5:00到24:00; 2.超过当前时间的时间点不允许再预约,已经预约的时间不允许再预约&#xff0c…...

wordpress的分类目录做成树/seo培训教程

文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识四、加群须知一、题目 1、题目描述 给你一个字符串数组 words,找出并返回数组中的第一个回文字符串 。如果不存在满足要求的字符串,返…...

新手做网站免费教程/抖音广告代运营

文章参考微信公众号[嵌入式ARM]一、内存大话题 1.0、内存就是程序的立足之地,体现内存重要性。 1.1、内存理解: 内存物理看是有很多个Bank(就是行列阵式的存储芯片),每一个Bank的列就是位宽,每一行就是W…...

杭州网站建设代理商/今日军事新闻头条

pip更新及Requirement already up-to-date解决方法参考文章: (1)pip更新及Requirement already up-to-date解决方法 (2)https://www.cnblogs.com/tielemao/p/9628754.html 备忘一下。...

福州网站快速排名/阳泉seo

6 命名空间的应用在C中,使用“命名空间”,是为了更好地管理代码。例如,程序员A定义了一个处理字符串的string类,程序员B定义了一个处理字符串的string类。那么,都是同样的类名string,但是,功能可…...

wordpress顶部加载条/衡阳网站建设

1、对于N枚硬币每次翻转N-1枚,等价于有一枚硬币没有翻转,也等价于一枚硬币翻转了,那么对于第一个问题:最少次数也就是N次(直接输出) 2、对于N枚硬币翻N-1枚的理解:把整个过程分拆成两个步骤 1&a…...

哪个网站可以做视频外链/百度识图查另一半情头

04年IM软件评测:表情贴图(转)测试项目三 聊天辅助之表情贴图 朗玛UC UC的表情图标看起来比较可爱,无论是创意和颜色选取都属于上乘之作,它的默认贴图总数高达80个了,软件支持自定义表情贴图上传,还能够进行聊天表情贴…...