笔试
笔试的话我们需要揣测具体会考什么内容,我们可以通过招聘信息去了解该公司需要什么样的技能,以此来准备笔试。一般必考的内容会有编程,测试用例设计,工作流程,逻辑思维等内容,除此之外每个公司可能还会关注其他方面,例如网络行业会考网络基本知识,大数据行业会考数据结构等。
附一些我遇到的笔试题:
1、Python:请写一个Python逻辑,计算一个文件中的大写字母数量
>>> import os
>>> os.chdir('C:\Users\lifei\Desktop')
>>> with open('Today.txt') as today:
count=0
for i in today.read():
if i.isupper():
count+=1
print(count)
运行结果:
26
2、软件测试:软件测试分几个阶段?各阶段重点测试什么?
开发的5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试。(回归测试)(软件发布后)。
每阶段都有5个步骤:测试计划、测试设计、用例设计、执行结果、测试报告
1、单元测试是对软件中的基本组成单元进行测试,如一个模块、一个过程等等,它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件最基本组成单元的正确性。
2、集成测试在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。其主要目的是检验软件各单位之间的接口是否正确。实践表明,一些模块虽然可以单独工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上可能暴露。测试重点是模块间的衔接以及参数的传递等。
3、确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般由第三方测试机构进行。
4、系统测试是对已经集成好的软件系统进行彻底的测试,已验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确。重点:整个系统的运行以及与其他软件的兼容性。
5、验收测试旨在向软件的购买者展示该软件满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。
回归测试是在软件的维护阶段,对软件进行修改之后进行的测试,其目的是检验对软件的修改是否正确。
面试
面试这一块的话,主要是看自己的临场发挥。面试一定要注意诚实,自信。
面试官通常会针对一个知识点一直往深了问,以此来了解我们到底掌握了多少。有些知识点我们可能不太清楚,这时不要去猜,不要去编,我们可以坦诚的告诉面试官,我们暂时未涉及到这部分知识,但是如果公司需要,我们可以在入职前提前学习。
我们也别因为某个问题答不上来就觉得自己会被fail掉,导致我们开始忧心忡忡,无心应对接下来的问题,我们要时刻保持自信去面对后续的问题。
附一些面试题:
1、软件测试:给你一个杯子如何测试?
界面测试:查看杯子的外观是否得体。(外形、图案)
易用性:杯子是否烫手、是否有防滑措施、是否方便饮水、是否易用手端着或手拿。
安全性:使用过程中杯口是否容易给身体造成伤害,,杯子有没有毒和细菌。
可靠性:杯子从不同高度掉下的损坏程度。
稳定性:杯子一直盛着水,时间长了是否会漏水。
兼容性:是否可容纳高温度水、果汁、酒精、汽油等。
2、Python:在Python中如何实现多线程?
Python并不支持真正意义上的多线程,一个线程就是一个轻量级进程,多线程能让我们一次执行多个线程。我们都知道,Python是多线程语言,其内置有多线程工具包。
Python中的GIL(全局解释器锁)确保一次执行单个线程。一个线程保存GIL并在将其传递给下个线程之前执行一些操作,这会让我们产生并行运行的错觉。但实际上,只是线程在CPU上轮流运行。当然,所有的传递会增加程序执行的内存压力。