功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做性能测试、自动化测试。
很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。
在这里,我把我对功能测试的理解写下来。
一、功能测试所需要掌握的技能1.熟练使用SQL
常用的sql语句一定会写。比如说增删改查之类。
了解数据库的事务、会编写存储过程、熟练常用的系统函数。
了解并可以进行数据库的备份、迁移、还原、镜像等操作
对sql语句进行调优,并对可以对运行的语句监控查看性能
了解数据库集群等操作。
2.LinuxLinux是测试人员的基础功,不需要掌握太难或者很不常见的Linux命令,正常能做到查看日志,定位问题就可以了。
2.1 基本命令
常用的Linux基本命令,面试经常会问的,或者给出一种场景,问你用什么命令。
2.2 查看日志
初级测试人员在工作时经常遇到,发现bug,开发不承认或者不愿意解决的情况,测试人员怎么摆脱这样的问题呢?
那就是根据发现的bug根据日志级别,来查看日志,定位问题。
那这里首先要说一下日志级别了。
首先记住这一点:日志级别越高,输出的信息越少 。
具体的日志级别分为四级:
info : 代码 info 信息,不包括sql语句等一些debug信息
warning: 代码警告信息
error: 程序本身报错信息java.lang.outindexERROR…
critical:几乎用不到
一般不符合需求的bug在debug中,程序本身报错的bug在error中。
3.使用数据库,跟数据流向3.1 数据库的本质
常见数据库主要是MYSQL、ORECAL、Redis,其中Mysql数据库是典型的关系型数据库
3.2 数据库操作
数据库和表操作
表数据操作
复杂sql查询
4.写好测试用例在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。编写测试用例,是测试人员的基本功,但是真正能写好的人并不多。
测试用例必须包含的内容:
用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。
4.1 测试用例的编写流程
需求分析->提取测试点->测试用例编写->测试用例评审
4.2 编写测试用例的思路
根据产品的RPD,提取测试点。
根据数据流的走向。
根据的架构部署。
测试用例的常用方法:等价类划分法、边界值分析法、流程图法等。
网测试、接口测试、安全测试、性能测试等。
测试工具有:postman、Charles、Fiddler、Jmeter、Loadrunner等。
4.3 编写测试用例注意事项
根据项目的实际情况设计测试用例表格
用例格式不要生搬硬套
根据具体情况编写
学会质疑需求,不要完全按照需求来写测试用例,要从客户和产品的角度来理解需求,看到需求之外的功能和体验
5.管理测试用例为什么要管理测试用例?
测试用例数目巨大
测试用例会根据需求的改变而改变
测试用例需要长期补充完善
6.如何管理测试用例?原始的Excel管理
专业的项目管理系统(eg:git、禅道、JIRA、Confiuence等)一般都为web格式
7.http与https协议面试经常关于Http协议的下面几个问题
Http协议原理
http和http协议的区别
TCP和UDP的区别
session和token的区别
公钥和私钥的理解
get和post的区别
从输入URL到页面加载发生了什么
什么叫代理,正向代理和反向代理?
8.了解业务做功能测试,一定要了解业务,甚至理解业务。只有把业务吃透,才能把功能测试做好,并且有一定的提高。
业务熟悉后,会知道很多常识,知道下面的常识之后,你就可以尝试进阶,学习做自动化测试、接口测试、性能测试
什么时候介入自动化 => 当你系统趋于稳定的时候
什么时候介入接口测试 => 当接口开发完毕的时候
什么时候介入性能测试 => 当出现促销的时候,或者抢购的时候(618大促,过年抢火车票,抢优惠券)
比如说,5000张优惠券,大概有多少人抢,在多长时间内抢完
9.bug管理做功能测试,还有个很重要的工作就是bug管理,一个优秀的的测试人员,线上bug非常多,多于和你一起工作的其他同事,但是线上bug非常少,少于其他同事。
9.1 bug定义
不符合需求的
程序本身报错
不符合用户的使用习惯
9.2 bug生命周期
当我们测试人员提交一个bug的时候,自始bug就有它的生命周期,从开始到结束
9.3 bug单内容
Bug描述(summary)
环境信息:操作系统/数据库/浏览器/软件版本 (OS/Database/Project/Build/Release)
所属功能模块、测试/开发人员、严重等级(1-5)、客户优先级、风险程度、状态、重现步骤、实际结果、是否要回归问题等
10.测试报告把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,
同时为软件验收和交付打下基础测试报告和测试计划一样,一般由测试leader编写,有些则由测试人员编写,视情况而定。
11.典型bug11.1 抓包作用
测试一个app搜索功能,抓包,抓到一个搜索接口,突然发现抓到了两个请求接口 -> 当访问量上来了,服务的压力上升两倍
11.2 数据流走向
测试时候发现页面上数据只有一条,但是数据库里面多了一条 ->1、数据量变大,查询变慢;2、脏数据太多,瞬间爆满,程序崩溃了
11.3 弱网测
app项目一定要有弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断
开后重连、3g切换到4g/wifi等)
总结下来,做好功能测试并不是一件容易的事情。我也做过不少的互联网功能测试,还是有很多知识不明白,只有不断的学习,自己才能成才。
很多人功能测试都做不好,就想做性能测试、自动化测试,其实是好高骛远,我觉得基础打好了,再去学习性能测试、自动化测试什么的,肯定事半功倍。
最后推荐一个大佬公众号:伤心的辣条 !(我也是在其中收获颇丰) 进去你能免费获取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
包装成1年工作经验的测试工程师,我给他的面试前的建议如下
“入职一年,那个被高薪挖来的自动化软件测试被劝退了。”
4个月自学软件测试面进阿里!如何从功能测试转成自动化…我经历了什么
6000元报了培训班,3个月后我成功“骗”进了腾讯大厂,月薪15000



