美文网首页
初探软件测试

初探软件测试

作者: 我叫何家明 | 来源:发表于2021-02-02 01:20 被阅读0次

    每个软件工程师其实都应该了解软件测试,合适的软件测试方法可以将bug前置,提升软件质量。这里主要聚焦于辛勤劳动的测试工程师 ,lisa镇楼~

    image.png

    软件行业发展至今,软件测试已经成为软件工程中不可缺失的一环,演进了很多测试方法论,发展了多个测试平台。其实是最近遇见了一个很可爱的测试妹子,毕竟我也在这个开发行业混了四年了,肯定要有足够的知识来展示自己无可匹敌的魅力并且产生话题。so 赶紧补一波软件测试方面的知识,帮助妹子能快速捕捉到令人叹服的bug,升职加薪~

    现状

    需求交接后,测试爸爸们就开始设计测试用例了,开发之完毕之后,进入SIT(System Integration Testing)系统集成测试阶段。这时,测试工程师就会用设计好的测试用例来验证功能是否符合预期。一般三个开发配一个测试。这里包括了功能测试和性能测试。

    测试阶段

    单元测试、SIT、UAT、安全测试、性能测试、回归测试、冒烟测试、灰度测试

    测试理论

    测试可从书籍或视频中获取,经典黑皮书《软件测试》《软件测试的艺术》《Google软件测试之道》


    image.png

    文档能力

    测试用例

    合适的测试用例和测试方法对于测试是极其重要的。

    功能测试

    最基础的功能测试就是手动点巴点巴,验证流程结果是否符合预期,特殊字符是否有限制,条件是否满足,表单校验的正确性,接口返回是否超时,基础测试,称为level1级别,这都没过,就算是回归不通过,等着吃单吧~

    工具

    接口测试

    postman

    前后端必须会的工具呀,只有调过接口才能说是ok。专业的测试人员不仅要会基础的调用接口,并且还要熟练使用批量跑接口以及断言(preRequest和test,需要js语法支持)。

    soupUI

    支持Groovy脚本扩展

    抓包工具

    Fiddler

    首推的抓包工具,修改request和response测试软件是否合理的处理了各种异常场景,比如对于500、400等返回值的处理,loading是否自动停止。可以拦截request修改入参、拦截response修改返回值,达到测试目的。mac可以用最近免费推出的全平台版本Fiddler Everywhere

    Charles茶壶

    同样也是很出色的抓包工具

    Wireshark

    wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark.

    chrome调试

    了解network的调用链路更好设计合理的用例,发现漏洞。

    自研测试平台

    根据自家软件特性,一般都会搭建自动化测试平台。上下文参数传递,自动化接口测试。

    移动端测试

    不仅仅要回web端的测试,还需要对app测试有了解,毕竟前端也是日新月异的。安卓需要了解adb(Android Debug Bridge 安卓连接桥)指令,可以用于安装sdk

    Appium

    继承于Selenium的一个app测试客户端桌面应用。

    chrome

    需要移动端的浏览器为chrome内核,通过usb连接电脑和移动设备,并且使用chrome查看移动设备网页的展示效果和html布局样式。

    性能测试

    Jmeter

    基于java开发的GUI 性能测试工具,也支持SDK调用,多线程并发接口调用,定时、专业的观察树图表展示。


    image.png

    LoadRunner

    同著名性能测试框架

    自动化测试

    Selenium

    最流行的 自动化测试框架,支持java和python的sdk。测试行业人员必学。可以打开浏览器驱动,模拟用户进行一整套流程操作,完成UI全自动测试,解放人力,可快速回归测试。此时就需要前端基础,获取xpath来定位元素。 so~前端也是我的强项,可以加强而攻之。

    Robot Framework

    Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架。 它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。 它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。

    QTP(UTP)

    CS端自动测试框架,已经慢慢不使用了

    持续集成测试

    jenkins

    持续交付,自动化测试平台,在DevOps中占大头,当开发提交代码后,就触发出发流水线从而触发自动化测试。

    单元测试

    一般开发自测或者开发转测试,都需要进行黑盒测试,在功能小单元做好逻辑的头尾对接。

    JUnit

    经典java单元测试框架

    testNG

    经典后的经典 java单元测试框架

    UnitTest & Pytest

    python的单元测试框架,可以配合自动化测试框架联合测试。

    数据库能力

    有些程序的运行结果是体现在数据库上的,并且还有些是存储过程,那就更依赖数据库了,所以基础的sql能力也是要有的。

    how to become 测试经理

    毕竟不是这个方向,也只能分析下周围厉害的测试兄弟有什么优秀的特性。

    产品owner意识

    其实测试就是潜在的用户,如果在测试过程中,交互体验不顺畅,就需要和产品经理、需求分析等进行讨论,是否有更合理的方案,优化产品的易用性。

    测试即业务

    对业务了如指掌,只有对业务非常了解才能在各种复杂场景中发现异常,并且对于功能改动影响范围有所把握,是否需要回归测试。

    人员管理

    对的人做对的事,根据每个人对功能模块的熟悉程度来划分测试任务

    测试手段

    需要定下测试手段和规则,交叉测试就是很好检验是否完成测试的手段,发现别人用例的盲点。

    版本测试复盘

    每个版本的测试任务完毕后,需要分析这个版本的测试团队整体的good things 和 bad things,并且归档后找出解决方案,并且严格按照标准践行。专业性就体现在有想法并能高效执行,这样才会信服。

    联调协作能力

    实际测试中,可能会涉及到多个系统,那么就需要分析测试边界,是否从创建表单到表单结束整个生命流程都需要参与

    版本控制&项目管理

    开发是测试的好弟弟,只有开发完成了,才能启动测试,所以也需要盯紧开发的进度,防止测试时间紧张造成未全面覆盖测试。

    方法论

    TDD 测试驱动开发 。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。

    技术

    搭建自动化测试平台能力,一般来说自动化测试平台都是jenkins+jmeter可以搞定。

    相关文章

      网友评论

          本文标题:初探软件测试

          本文链接:https://www.haomeiwen.com/subject/kjazzktx.html