软件测试:关于面试的一些小总结

Apipost官方支持 测试技术 2021-08-27

一、前言

        测试的面试相对于开发的面试来说,对于技术的询问其实相对来说较少的,主要针对以下几个方面。测试理论,接口,数据库,linux,自动化,性能、个人情况这几大块。

二、常见问题

        1、软件测试理论基础

            ①、什么是软件测试?

                在规定条件下对程序进行操作,发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

            ②、软件测试主要测试用例设计方法是什么?

                白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

                黑盒测试:等价类、边界值、因果图、状态图法、错误猜测、测试大纲、随机测试、场景。

             ③、测试计划、方案以及测试报告主要包括哪些方面?

                 测试计划主要包括:

                    Ⅰ 测试范围(功能性测试;非功能性测试)

                    Ⅱ 测试通过/失败的标准(通过准则;失败准则)

                    Ⅲ 测试挂起恢复条件

                    Ⅳ 测试进度人力分布计划

                    Ⅴ 测试交付物

                测试方案主要包括:

                    Ⅰ 测试环境(软硬件构成;网络构成;环境搭建;测试工具)

                    Ⅱ 测试策略

                    Ⅲ 测试风险评估与预防

                测试报告:

                    Ⅰ 测试BUG记录

                    Ⅱ 测试BUG统计分析

                    Ⅲ 测试用例执行情况清单

                    Ⅳ 遗留问题清单

            PS:具体情况具体分析格式不一定一致。

            ④、测试流程

                阅读需求—评审—判定开发时间—测试计划、方案—编写测试用例—开发提交版本—进行测试—提交bug—追踪—提交新版本进行回归—测试完毕—进行走查上线。

            ⑤、Bug的管理,测试提交bug,开发不认可

                首先,在bug的管理工具上进行记录;查找需求文档,与开发人员进行沟通进行复现bug;询问产品人员需求情况;寻找相关上级进行评定。

            ⑥、fiddler对于测试来说有什么好处?

                抓包,查看请求,确认问题所在,是功能问题还是网络问题还是接口问题

            ⑦、微信朋友圈有哪些测试点?

                封面,发布,自己头像,朋友头像和昵称,评论,点赞,删除,权限(重点)

            ⑧、软件测试原则和策略?

                Ⅰ、测试应基于用户需求;

                Ⅱ、做好软件测试计划是做好软件工作的关键;

                Ⅲ、应尽早的开始软件测试并不断的进行软件测试;

                Ⅳ、测试前必须明确定义好产品的质量标准;

                Ⅴ、避免测试自己的软件;

                Ⅵ、应充分注意测试中的集群现象;

                Ⅶ、必须检查每个实际输出结果;

                Ⅷ、穷举测试是不可能的;

                Ⅸ、测试设计决定了测试的有效性和效率;

                Ⅹ、注意保留测试设计和说明文档,并注意测试设计的可重用性。

        2、数据库基本操作

            ①、创建表

                Create table table_name(column_name property(length)……);

            ②、修改表(modify—修改表字段类型和长度)

                Alter table table_name modify column column_name property(length);

            ③、新增表数据

                Insert into table_name values(value, value ,value……);

                Inset into table_name(column_name, …) values(value, …);

            ④、查询表数据

                Select * from table_name;

                Select column_name from table_name;

                Select * from table_name where column = value;

            ⑤、修改表数据

                Update table_name set column = value where column = value;

            ⑥、删除表数据

                Delete from table_name;

                Delete from table_name where column = value;

                Truncate table table_name;

            ⑦、多表查询(内连接,左外连接,右外连接,子查询)

                内连接:Select column_name from table1 [inner] join table2 on table1.column = table2.column;

                左外连接:Select table1.column,table2.column from table1 left join table2 on table1.column = table2.column;

                右外连接:Select table1.column,table2.column from table1 right join table2 on table1.column = table2.column;

                子查询:Select column from table1 where column = (select column from table2 where column = value);

                 区别:内连接旨在得到两表之间的交集数据,可能会造成数据丢失;左外右外分别是以左表或右表为主表,添加另外一张表的数据;子查询旨在查询结果只需要显示一张表中的数据,但是需要从另一张表得到相关条件。

            ⑧、聚合函数、分组查询、排序

                COUNT();统计行数量;

                SUM();统计某列合计值;

                ANG();统计某列平均值;

                MAX();计算列最大值;

                MIN();计算列最小值;

                Select column_name, count(*) from table_name Group by(column_name);

                Select column_name from table_name order by column_name limit 10 DESC;(倒序)

            ⑨、视图

                Create VIEW view_name as select * from table where condition;

            ⑩、存储过程

                Create procedure pro_name

                as

                Begin

                Select * from table_name

                End

                Execute pro_name

        3、Linux环境安装部署以及使用的基本命令

            1)、启动mysql服务:systemctl start mysql;service mysqld start

            2)、解压文件:tar –zxvf 文件名

            3)、创建用户分组:groupadd 分组名

            4)、创建新用户:useradd 用户名

            5)、下载安装文件:yum install -y文件名

            6)、编辑文件:vi 文件名

            7)、保存: :wq

            8)、强制退出::q!

            9)、创建文件:mkdir 文件名

            10)、本机复制文件:cp file /remote_file/file

            11)、移动文件:mv file /remote_file/file

            12)、多台主机传输文件:scp local_file remote_username@remote_ip:remote_folder(需要注意的是需要知道目标主机的密码密码以及网络通畅)

            13)、删除文件:rm –rf file

            14)、查看主机信息:top

            15)、查看进程:ps –ef | grep mysql

            16)、查看端口:netstat -tunlp | grep 3306

            17)、杀死进程:kill -9 进程号

            18)、切换目录:cd

            19)、显示磁盘信息:df –h

            20)、Docker

        4、接口

            http协议;TCP/IP协议;fiddler;postman;自动化;get、post请求

            http:应用层--网络传输协议

           TCP:数据传输层—应用程序之间

            IP:网络层—连接计算机与计算机通信

            fiddler工具对测试的好处:看请求,确认问题所在,是功能问题还是网络问题还是接口问题;

        5、自动化

            Selenium;appium;monkey;robotframework

        6、性能

            Loadrunner:规划,录制,参数化,关联,场景,分析

            jmeter:断言,树分析

        7、个人的情况

            ①、为什么会选择软件测试?

                1)、软件测试看待产品的角度是不一样的,会从产品、用户、市场需求、开发、设计、运营等多个角度去思考产品适合度;

                2)、软件测试入门相对简单,但是做成一个好的测试却是不简单的,这个工作是很有挑战性;

                3)、软件测试是一个积累工作经验的工作,能够在工作的同时能够总结自己,使自己不断的成长。

            ②、你的优点和缺点是什么?

                我自己的优点有学习能力,理解能力,善于思考,很有耐心,执行力强;而我的缺点对一件事情不够钻研,喜欢看到事情的表面;不太喜欢说话,更喜欢用做的方式去体现自己。当然作为测试,日常的沟通交流没有问题。

            ③、关于未来的规划

                丰富自己知识,在工作中不断成长,能够为公司出谋划策并担任更重要的职务。

————————————————

版权声明:本文为CSDN博主「MokWing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_38374974/article/details/84571096

Apipost 私有化火热进行中

评论