秋招笔试准备——客观题

目录

    • Python
    • **软件测试**
    • **操作系统**
    • **数据结构**
    • **数据库**
    • ** 络基础**
    • **通信原理**
    • **软件工程**

Python

Python内存(垃圾回收机制):https://www.cnblogs.com/yhll/p/8908882.html

爬虫如何工作:https://www.cnblogs.com/sunBinary/p/11055626.html

在Python中所有的对象都可以进行真值测试,下面罗列一下判断为假的情况:

  • None
  • False
  • 数值中的零,包括0,0.0,0j(虚数)
  • 空序列,包括空字符串(”),空元组(()),空列表([])
  • 空的字典{}
  • 自定义的对象的实例,该对象的__bool__方法返回False或者__len__方法返回0

迭代和递归的特点,并比较优缺点

面向对象的特点:
封装 对外部隐藏对象的工作细节
继承 子类自动共享父类之间数据和方法的机制
多态 可以对不同类的对象调用相同的方法,产生不同结果

手写出python数列、字典、元组的定义方式

软件测试

软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,QA面向生产过程防范于未然,QC面向成品。

bug的生命周期及分类

测试 告如何写

测试计划包括哪些
(1)测试环境:测试环境+生产环境

(2)测试范围:新增需求+全功能回归

(3)测试重点:优先级为high的

(4)注意事项:开发提供修改点

(5)测试级别:常规啥的

(6)测试方法:功能测试能测试

(7)测试文档:测试依据、测试条件、测试用例

(8)计划测试资源:人员以及安排的工作日

(9)是否需要外部支持:是/否

(10)测试出口:发布时间

软件测试分类

  • 人工测试:如个人复查,抽查和会审等
  • 机器自动测试,又有不同的分类:
    按照否关软件内部结构具体实现角度划
    A.白盒测试B.黑盒测试 C.灰盒测试
    按照软件发程按阶段划
    A.单元测试 B.集测试 C.确认测试 D.系统测试 E.验收测试

https://www.cnblogs.com/test-my/p/6019336.html

测试框架:https://www.cnblogs.com/ceshi2016/p/9110695.html

需求分析阶段的研究对象是用户要求

软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求格式说明书以及需求评审

黑盒测试用例方法:等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法、功能图分析方法

白盒测试用例方法:由弱到强的6种:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。

  • 语句覆盖是一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 条件组合覆盖是除路径覆盖外最强的。

静态测试不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。包括代码测试、界面测试、文档测试。

动态测试:指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。

静动态与黑白盒:

  • 黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)
  • 白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)
  • 动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)
  • 静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

对 页上的安全测试,一些攻击手段的了解。

  1. SQL注入攻击
  2. FTP文件上传漏洞
  3. XSS跨站脚本攻击
  4. socket欺骗等等

一个登陆界面中,用户在输入框输入东西的时候,如何保证输入信息正确。

  1. 前端 通过JS、正则表达式等技术验证
  2. 后端接收到数据后,同样要再次验证,防止攻击者绕过前端直接向后台发起攻击

系统测试是对整个系统的测试,包括相关的软硬件平台、 络以及相关外设的测试。包括安全性测试、可靠性测试(容错性和易恢复性)、界面测试、文档测试、性能测试(负载、压力、强度)、容量测试、稳定性测试、兼容性测试(硬件:整机和外设,软件(操作系统、应用软件、浏览器、数据库),软硬件,数据, 络)、安装测试、替换性测试

负载测试、压力测试与性能测试

  • 手机软件的压力测试通常包括:存储压力、响应能力压力、 络流量压力

系统测试用例设计应该从需求完成的时候开始:设计测试用例越靠近需求阶段,我们就能越早发现需求问题,在软件开发过程问题得到越早的修正,那么所花的代价就会越小。在需求阶段发现问题,我们可能只需要修改下文档。

系统集成测试主要包括以下过程:

  1. 构建的确认过程。
  2. 补丁的确认过程。
  3. 系统集成测试测试组提交过程。
  4. 测试用例设计过程。
  5. 测试代码编写过程。
  6. Bug的 告过程。
  7. 每周/每两周的构建过程。
  8. 点对点的测试过程。
  9. 组内培训过程。

性能测试指标:

  • 响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。
  • 加载速度:通俗的理解为页面内容显示的快慢。
  • 内存占用:APP的内存开销。
  • 电量:APP的耗电量。
  • 流量:APP所消耗的流量
  • 并发用户数:同一时间点请求服务器的用户数。
  • 吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。
  • 错误率:失败的事务数/事务总数。
  • 资源使用率:CPU占用率、内存使用率、磁盘I/O、 络I/O。
  • 最佳并发用户数:用户无等待时间,资源无浪费时的并发数。
  • 最大并发用户数:被所有用户接受的最大响应时间时的并发数。

测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于敏感词开发方法和过程。TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。
优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品。
缺点:增加代码量。测试代码是系统代码的两倍或更多。

软件验收测试分为三类:
正式验收测试;
非正式验收测试其中包括α测试(由用户、测试人员、开发人员共同参与的内部测试。)
和β测试(内测后的公测,即完全交给最终用户测试。)

软件验收测试的合格通过准则是:

  • 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
  • 所有测试项没有残余一级、二级和三级错误。
  • 立项审批表、需求分析文档、设计文档和编码实现一致。
  • 验收测试工件齐全。

负载压力测试:LoadRunner:预测系统行为和性能的工业标准级负载测试工具。模拟上千万用户同时实施并发操作,来实时监控可能发生的问题。 JMeter+Badboy:基于JAVA的压力测试工具,Badboy用来进行脚本的录制 。
功能测试: QTP(quicktest professional):自动测试工具
白盒测试:C++ TEST(做C和C++的白盒测试)、JUnit(Java白盒测试)
缺陷管理工具:Mantis、BugFree、QC、TD
用例管理工具:TestLink、QC
测试辅助工具:SVN

操作系统

作业调度:从处于提交状态的队列中选择适当的作业投入运行

虚拟设备:通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用, 通常把这种经过虚拟的设备称为虚拟设备。优势:增加效率、灵活性和响应能力。

进程与线程、协程:https://blog.csdn.net/daaikuaichuan/article/details/82951084#font_size5font_72

多线程:https://blog.csdn.net/qq_41911569/article/details/82791269

多线程通信(线程等待与唤醒机制概述)
* void wait(); 等待,让当前正在执行的线程释放cpu的使用权,进入等待。
* void notify(); 唤醒,随机唤醒一个正在等待的线程,让线程进入就绪状态。
* void notifyAll(); 唤醒所有正在等待的线程,让线程进入就绪状态。
* 以上三个方法必须由锁对象调用且必须在同步代码块或同步方法中调用。

线程状态转换

守护进程:Daemon(守护进程)是运行在后台的一种特殊线程。它独立于终端并在后台周期性地执行任务或等待处理某些发生的事件,它不需要用户输入就能运行并且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器都是通过守护进程实现的,如系统日志进程syslogd,web服务器httpd,邮件服务器sendmail。https://blog.csdn.net/QEcode/article/details/93667852

进程状态转换:

好的软件结构:低耦合、高内聚

程序流程图,N-S图和PAD图是设计阶段的详细设计使用的表达工具

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月25日
下一篇 2019年7月25日

相关推荐