• 前端测试&OA工程师区别


    前端测试&OA工程师

    • 黑盒测试.谁都能测试。
    功能测试行为测试结果 test正确结果测试人测试时间
    登录点击的按钮没有反应;loading 请求…延期2021、04、18
    • 白盒测试(编写测试代码的)

    测试分类

    为什么要有测试

    测试通常考虑的问题如下

    • **正确性:**验证代码的正确性。在上线前做到心里有数(例如代码编写规范)

    • 自动化:测试是可以通过手工测试,也可以通过console.log测试结果。但是问题:只能测试这么一次,再有内容重新测试。编写测试用例;一次编写,第多次测试,只需要运行测试代码就可以了
    • **解释性:**测试用例用于测试接口,模块的重要性,那么测试用例中就会涉及到如何使用这些API ,其他开发人员如何要使用这些API 。阅读测试用例有时候比阅读文档好很多

    • 驱动开发:指导设计:代码被测试的前提是代码本身的可测试性,那么要保证代码 的可测试性,就需要在开发中注意API的设计,TDD将测试前移就是起到这么一个 作用

    • **保证重构:**互联网行业产品迭代速度很快,迭代后必然存在代码重构的过程,那怎 么才能保证重构后代码的质量呢?有测试用例做后盾,就可以大胆的进行重构

    单元测试

    • 目的:单元测试能够让开发者明确知道代码结果
    • 原则:单一职责、接口抽象、层次分离 断言库:保证最小单元是否正常运行检测方法
    • 测试风格:测试驱动开发(Test-Driven Development,TDD)、(Behavior Driven Development,BDD)行为驱动开发均是敏捷开发方法论。 TDD关注所有的功能是否被实现(每一个功能都必须有对应的测试用 例),suite配合test利用assert(‘tobi’ == user.name); BDD关注整体行为是否符合整体预期,编写的每一行代码都有目的提 供一个全面的测试用例集。expect/should,describe配合it利用自然语 言expect(1).toEqual(fn())执行结果
    单元测试的框架
    • better-assert(TDD断言库Github 190star 19fork)
    • should.js(BDD断言库Github 2295star 194fork)
    • expect.js(BDD断言库Github 1391star 162fork)
    • chai.js(TDD BDD双模Github 2823star 271fork)
    • Jasmine.js(BDD Github10723star1680fork)
    • Node.js本身集成 require(“assert”);
    • Intern 更是一个大而全的单元测试框架
    • QUnit 一个游离在jQuery左右的测试框架
    • Macaca 一套完整的自动化测试解决方案 国产神器来自阿里巴巴
    • jest
    单元测试流程
    • 1 每一个【测试用例组】通过 describe进行设置
    • 2 before
    • 3 beforeEach
    • 3 it
    • 4 after
    • 5 afterEach
    1.before单个测试用例(it)开始前
    2.beforeEach每一个测试用例开始前
    3.it定义测试用例 并利用断言库进行
    设置chai如:expect(x).to.equal(true);
    异步mocha
    4.以上专业术语叫mock
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    自动化单元测试
    • karma 自动化runner集成PhantomJS无刷新
    npm install -g karma
    npm install karma-cli —save-dev
    npm install karma-chrome-launcher —save-dev
    npm install karma-phantomjs-launcher —save-dev
    npm install karma-mocha —save-dev
    npm install karma-chai —save-dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    报告和单测覆盖率检查

    npm install karma-coverage —save-dev
    coverageReporter: { type: 'html',dir:
    'coverage/' } //配制代码覆盖测试率生成结果
    
    • 1
    • 2
    • 3

    性能测试

    • 面向切面编程AOP无侵入式统计
    • Benchmark基准测试方法,它并不是简单地统计 执行多少次测试代码后对比时间,它对测试有着 严密的抽样过程。执行多少次取决于采样到的数 据能否完成统计。根据统计次数计算方差。

    压力测试

    • 对网络接口做压力测试需要检查的几个常用指标有吞吐率、响应时间 和并发数,这些指标反映了服务器并发处理能力。
    • PV网站当日访问人数 UV独立访问人数。PV每天几十万甚至上百万就 需要考虑压力测试。换算公式QPS=PV/t ps:1000000/ 106060=27.7(100万请求集中在10个小时,服务器每秒处理27.7 个业务请求)
    • 常用的压力测试工具是ab、siege、h
    • ab -c 100 -n 100 http://localhost:8001 每秒持续发出28个请求 Request per second 表示服务器每秒处理请求数 即为QPS Failed requests 表示此次请求失败的请求数 理论上压测值越大增加 Connection Times 连接时间,它包括客户端向服务器端建立连接、服 务器端处理请求、等待报文响应的过程

    安装测试

    安全漏洞检查
    • XSS
    • SQL
    • CSRF

    功能测试

    用户真实性检查
    • selenium-webdriver
    • protractor selenium-standalone
    • http://webdriver.io/ WEBDRIVERI/O
    • 冒烟测试 SmokeTest 自由测试的一种,找到一个BUG开发 修复,然后专门针对此BUG,优点节省生煎防止build失败, 缺点是覆盖率极低。
    • 回归测试 修改一处对整体功能全部测试,一般配合自动化 测试。

    JsLint&JsHint、

    JavaScript Lint&Hint
    目的:检测JavaScript代码标准
    原因:JavaScript代码诡异,保证团队代码规范
    lint:http://www.jslint.com/
    hint: http://www.jshint.com/
    搭配自动化任务管理工具完善自动化测试grunt
    jshint、grunt-jslint
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Spark、Filnk简单介绍
    二叉树的操作
    【每日一题】实现 Trie (前缀树)
    nacos安装踩坑笔记
    关于红包雨功能的探索
    GODIVA论文阅读
    【电源专题】电源芯片散热垫(PowerPAD)布局指南
    【JavaScript保姆级教程】数组的基本使用
    RSA加密算法(后端)
    Django应用部署实战:从开发到生产,全程解析
  • 原文地址:https://blog.csdn.net/CarrreyYan_979292/article/details/126591319