一个优秀的软件测试工程师需具备的技能

今天早上看到一篇文章写的很好,软件测试工程师的地位在圈里的地位低下,甚至有些技术比较厉害的开发工程师觉得软件测试工程师没有存在的必要,而作为软件测试工程师的一员如何保持自己的技能和竞争力哪?下面简要介绍一下软件测试从低阶到高阶之路:

1.功能测试:功能测试是最基本的测试,保证可用性和正确性;编写测试用例一般用到的方法:等价类划分,边界值分析,错误推测,因果图,判断表驱动,正交试验法,功能图,最关键的是分析好业务逻辑,用户操作场景,异常场景,关联业务;执行测试用例的时候要掌握常用的linux命令,用来查看后台日志,还要掌握常用的sql语句,熟练掌握对数据库的操作;最后是写测试报告,体现测试价值的是测试过程中你发现的问题,进行风险点总结;

2.接口测试:

                1)了解常用的网络协议,如:http,htttps,soup,rpc,ftp,ssh,telnet

                2)了解常用抓包协议,如:fiddler,wireshark,burpsuit

                3)了解一些接口测试的工具,如:postman,soupui,java语言调用(httpclient包,jmeter包),python语言调用(request库)

3.自动化测试:

               1)自动化测试一般有UI功能自动化,接口自动化,接口参数化

               2)做自动化测试需要熟练掌握一门语言,python,java,c++

               3)具备一定的调试能力,最长用的就是打断点,虽然笨,但是最有效

               4)做好分析设计,以免后面频繁改动,维护成本不高的业务做成自动化,设计相关的测试用例,原则是还原用户操作

4.性能测试:

               1)常用软件:jmeter,loadrunner,测试报告一定要注意细节,细节才能体现报告中指示的问题

               2)要会一门编程语言,脚本编写用语言,由于系统的特殊性,例如jemeter调用dubbo接口,打印日志,都要用语言完成

               3)深入理解linux,系统配置会影响测试结果,要监控CPU,磁盘,内存,网络

               4)熟悉各种数据结构和算法

               5)使用各种辅助工具帮你解决程序出现的问题,内存溢出,CPU占用过高,读写数据库,网络长短连接

               6)熟悉各种中间件,tomcat,nginx,node,redis,mysql,

5.敏捷开发:

               1)敏捷开发就是快速开发,具体要团队间了解彼此之间的进度,遇到问题共同讨论,促进问题快速解决,保证项目按期完成

                2)持续集成(CI)持续交互(CD):一个项目由项目负责人拆分成多个模块,分给团队的每个人合作完成,其中一部分功能模块完成要做持续集成以便进行测试,持续集成部分完成测试即可持续交互,敏捷测试过程中最重要的是保证持续交互

               3)谈敏捷最重要的是了解,把任务分配给合适的人,才能保证快速高质量完成

 

posted @ 2018-06-29 12:00  pei-金秋十月  阅读(5353)  评论(0编辑  收藏  举报