随笔- 177  文章- 0  评论- 0  阅读- 1475 

union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

1)综合素质

快速学习能力沟通能力文字能力开发能力

2)掌握白动化测试技术

项目测试+技术事务(自动化测试)

3〕优秀的测试用例的编写能力

4)探索性思维。

5)兴趣

6)责任感和压力

如何提高测试的效率,以及准确性?

增加测试经验文档积累 降低需求实现方案复杂度,提高可测试性 降低耗时重复的手工操作,

提高自动化 提升测试人员技能不要做无效的测试  不要做重复的测试   不同测试版本的测试侧重点

为什么选测试

我做事情和处理问题喜欢刨根问底,喜欢把问题全都找出来再一一解决

选择测试是看中了发展的前景,并且个人很喜欢站在客户的角度去看待产品很适合这个行业,所以我选择测试

理解测试

测试是产品上线的最后一道把关,如果测试工作做得到位,就能避免很多的问题,像复工后钉钉系统短崩、

12306高峰期买票老进不去,这其实就是性能做的不够好,测试人员在性能测试时也没测出来它的饱和值

需求分析——计划——设计——编码——测试——运行维护

对某个字段进行排序

比如根据下面这个类的 age 字段进行排序:

public class Person {

    private String name;

    private int age;

}

排序可以根据 java.utils 下的 Collections 里有一个sort 方法排序,两种写法如下:

public class X {

    public static void main(String[] args) {

        List<Person> l = new ArrayList<>();

        Person p1 = new Person();

        Person p2 = new Person();

        Person p3 = new Person();

        l.add(p1); l.add(p2);l.add(p3);

        p1.setAge(13);

        p2.setAge(15);

        p3.setAge(11);

        l.sort(new Comparator<Person>() {

            @Override

            public int compare(Person person1, Person person2) {

                return person1.getAge()-person2.getAge();

            }

        });

        for(Person list:l){

            System.out.println(list.getAge());

        }

    }

Linux 常用命令

关机

  shutdown

立刻重启

  shutdown -r

帮助命令(help)

  ifconfig  --help

切换用户(su)

 切换目录(cd)

  cd /                 //切换到根目录

  cd /bin              //切换到根目录下的bin目录

  cd ../               //切换到上一级目录

创建目录(mkdir

查看目录(ls)

删除目录与文件(rm)

修改目录(mv)

拷贝目录(cp)

查看当前目录(pwd)

新增文件(touch)

grep

  grep -i "the" 在文件中查找字符串

top    显示当前系统中占用资源最多的一些进程

mount 挂载一个文件系统

ps -ef查看所有正在运行的进程

delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。 执行速度方面:drop > truncate > delete。 

Python的却偏

object[start_index : end_index : step]

start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;

end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;

step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素

那为什么还要引入线程呢?

1.更加易于调度

2.提高并发性,因为可以创建多个线程去执行同一个进程的不同部分

3.开销少,因为创建进程的话要创建PCB,存放上下文信息,文件信息等等,开销比较大,二创建线程的话开销就会比较少

4.充分发挥多处理器的功能,如果创建出多线程进程,那么可以让线程在不同的处理器上运行,这样不仅可以提高效率,同时也发挥了每个处理器的作用。

进程和线程的关系

1.一个线程只能属于一个进程,但是一个进程可以有多个线程(至少一个线程),一个线程的进程叫做单线程进程,多个线程的进程叫做多线程进程

2.资源分配给进程之后,进程内部的线程都可以共享该进程的资源

3.在处理机上运行的是线程

4.线程在执行的过程中需要协作同步,不同进程的线程需要利用消息通信来实现同步

进程和线程的区别

根本区别: 进程是操作系统分配资源的基本实体,线程是CPU调度的基本单位

开销方面: 每个进程都有自己独立的代码和数据空间,因此进程之间的切换会有较大的开销。但是线程在进程的地址空间内部运行,因此同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,因此线程之间的切换开销小。

所处环境: 在操作系统中能同时运行多个进程,在同一个进程中有多个线程同时执行

内存分配: 系统在运行的时候会给每个进程分配不同的内存空间,但是不会给线程分配,线程使用的资源均来自于进程

包含关系: 线程是进程的一部分,没有线程的进程叫做单线程进程,有多个线程的进程叫做多线程进程

区别:

1) TCP是面向连接的,可靠性高;UDP是基于非连接的,可靠性低
2) 由于TCP是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差,同时过程复杂,也使其易于攻击;UDP没有建立连接的过程,因而实时性较强,也稍安全
3) 在传输相同大小的数据时,TCP首部开销20字节;UDP首部开销8字节,TCP报头比UDP复杂,故实际包含的用户数据较少。TCP在IP协议的基础上添加了序号机制、确认机制、超时重传机制等,保证了传输的可靠性,不会出现丢包或乱序,而UDP有丢包,故TCP开销大,UDP开销较小
4) 每条TCP连接只能时点到点的;UDP支持一对一、一对多、多对一、多对多的交互通信

应用场景选择

  • 对实时性要求高和高速传输的场合下使用UDP;在可靠性要求低,追求效率的情况下使用UDP;
  • 需要传输大量数据且对可靠性要求高的情况下使用TCP

左连接:left [outer] join,左连接从左表(t1)取出所有记录,与右表(t2)匹配。如果没有匹配,以null值代表右边表的列。outer 可以不写,默认情况下不写outer关键字

右连接:right [outer] join,右连接从右表(t2)取出所有记录,与左表(t1)匹配。如果没有匹配,以null值代表左边表的列。语法:

内连接,也叫等值连接, inner join得出同时存在t1表和t2表的数据集,通俗一点说就是求两个表的交集。

选择走测试为什么还要学这么多的开发知识?

从个人爱好出发:个人对开发技术比较感兴趣,所以在校期间看了较多开发方面的专业知识(目的是凸显自己爱学习)。

从工作性质出发:测试不仅包含黑盒测试,还有白盒测试。测试人员也需要具备扎实的开发能力来提高个人项目测试质量。另外测试人员也需要开发效能工具来辅助提高测试效率。(凸显自己对软件测试工作的了解)

结合上面两点进行表达。

2、为什么选择软件测试开发岗位而不是软件开发岗位?    软件开发:主要以业务编码为主。

    测试:不管是测试还是测试开发都统称为测试人员,所以测试人员主要以保障项目测试质量为主,通过开发一些效能工具(比如我们学的自动化就是效能工具,除此之外还有我们课件上写的内存泄漏工具等等)来提高测试效率。

3、个人的职业规划是什么?

  建议规划为(1~3年内,太长就有点假、大、空)

  入职之后我将在一年内积极积累个人的测试经验,夯实测试能力和开发能 力,做好个人的项目测试管理。提高个人的测试影响力,不管是项目测试还是技术能力上都能够独挡一面。

4、测试中遇到的问题如何进行解决?

 我写的web项目(仅设计到前端代码和后端代码)在测试的时候发现有个字段展示的数据不正确,我首先通过在页面上使用F12开发者工具查看接口的请求参数和返回值是否正确,当时发现接口返回值是正确的,所以我判定是前端代码写的有问题。如果是接口返回值就是错误的,那可能是代码逻辑出现了问题,需要对后端代码进行调试。

5、对自己的项目做过哪些测试工作?

项目中需要体现对项目的测试,先对个人的项目输出测试用例

如果同学对自动化掌握的还不错,可以对自己的web项目实施web自动化测试

1)对项目编写测试用例

参考测试用例对项目进行测试,选取几个用例把测试过程记录下来写一篇博客,把博客链接放到项目下面。

2)自动化测试

这里分两类同学,

第二类为简历上没有写了对自己的项目做过相关测试工作

  可以告诉面试官,我目前还没有针对自己的项目做特定的测试手段。但是我了解了selenium工具,能够使用selenium工具来针对个人的项目实现自动化测试,继续告诉面试官如果我针对自己的项目做自动化测试我会如何实现。

描述如何针对selenium工具来实现自动化测试?

首先针对自己的项目设计测试用例,再针对测试用例来实现自动化测试用例。

自动化测试用例采用到selenium包里提供的

1)元素定位、元素的操作实现页面的交互

2)获取页面相关元素并使用断言来校验元素或者文本是否符合预期

3)最后使用套件将我写的测试用例串起来,通过套件来批量执行测试用例。

接口测试

检查数据正确性:不同的参数对应的不同接口返回结果;检查数据库数据是否正确

不同的请求类型:get post不同的请求类型下是否符合预期

校验接口兼容性:传入异常数据接口是否会崩溃,接口之间互相调用的情况下是否兼容老版本的接口

校验接口的安全性:参数是否加密,SQL注入,XSS漏洞(select * from user where userId = '1' or 1=1 <script>alert("hello")</script>)

开发不认可提测试的bug该怎么办

具备批判性思维,自己在提bug时是否是误操作导致的,是否存在创建bug时描述不规范等问题。

如果是对bug的等级不认可,bug等级要有理有据,讲出bug这样定级的原因

站在用户的角度看待问题,反问:“如果你是用户,你能接受这样的问题吗

不光要能提出bug,最好也能提出解决方案

果沟通无效,则组织bug评审,邀请开发、测试、产品等代表参会,针对该问题进行分析如何进行解决,什么时候解决,由谁解决。

软件测试和软件测试开发的区别

共同点:测试和测试开发都统称为测试人员,主要职责就是保障项目质量安全

不同点:测试开发比测试多“开发”二字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发指的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化就属于效率工具 。

11.项目研发流程中出现需求变更,测试人员应该怎么做?

及时了解需求变更情况,对测试用例进行灵活的修改。

12.当不同的项目存在大量重复的用例,如何做使得用例的创建更高效?

使用用例库,预先把通用的用例编辑好,每次有项目存在大量重复的用例时可通过导入用例库的方式来提高用例创建的效率。

13. 如何提高测试人员和开发人员的沟通效率?

  1)沟通之前准备好需要讨论的问题

  2)沟通时注意合理且有礼貌的表达,若讨论出现对立意见,不要上升情绪,保持讨论对事不对人的原则

  3)秉持批判性思维,反思自己,对他们的建议不排斥并辩证性吸取经验。

  4)对于讨论会议要做好记录,避免会后遗忘造成无效的沟通

  5)尽量采取面对面的高效沟通,减少低效的沟通工具来传递信息。

14.给项目测试留的时间只有3天,而测试评估需要5天,这种情况该怎么办?

  第一步:秉持测试质量为上原则。询问是否可以适当压缩上游(设计&开发)时间,从而增加保留的测试时间。

  第二步:告知测试风险。是否可以接受只测试主要功能,次要功能可能会遗留风险。

  第三步:向上反馈,若上述步骤都无法得到同意。将问题和历史沟通反馈给上级/测试经理并请求帮助

 posted on   dapaige  阅读(2)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示