- ¿Qué es QA y por qué no debe faltar en tu proyecto?
- ¿Que es un QA Tester?
- Tester vs Quality Assurance
- Wikipedia | Aseguramiento de la calidad
- Qué es QA
- Quality Assurance no es sólo Testing
- La misión del QA Manager dentro de la Organización
- QA (Quality Assurance) y su mundo
- Caja Blanca
- Caja Negra
- Pruebas aleatorias
- Pruebas unitarias (Unit Testing)
- Pruebas de integración (Integration testing)
- Pruebas de sistema (System testing)
- Pruebas de sanidad (Sanity check)
- Pruebas de humo (Smoke testing)
- Pruebas alpha (Alpha Testing)
- Pruebas beta (Beta Testing)
- Pruebas de aceptación (Acceptance Testing)
- Pruebas de regresión (Regression testing)
- Pruebas de compatibilidad
- Pruebas de Accesibilidad (Accessibility testing)
- Pruebas de seguridad (Security Testing)
- Pruebas de destrucción (Destructive testing)
- Pruebas de Stress (Stress Testing)
- Pruebas de Carga (Load Testing)
- Pruebas de usabilidad (Usability testing)
- Pruebas de rendimiento (Performance Testing)
- Pruebas de internacionalización y localización
- Pruebas de escalabilidad
- A/B testing
- Pruebas de concurrencia (Concurrent testing)
- Prueba de conformidad (Conformance testing)
- Acceptance test–driven development (ATDD)
- Behavior-driven development (BDD)
- ¿Cuál es la diferencia entre Unit Testing, TDD y BDD?
- BDD + TDD para descubrir el diseño de tu código
- TDD, BDD & Test de Aceptación
- TDD vs BDD vs ATDD
- BDD y TDD en el mundo real (I) – Metodologías y herramientas
- BDD y TDD en el mundo real (II) – Ciclo desde la fuente
- The Difference Between TDD and BDD
- Orígenes de TDD, BDD, ATDD y sus diferencias
- Wikipedia | Desarrollo guiado por comportamiento
- ¿ATDD? ¿BDD?… ¿Cómo? Aclarando el lío de siglas en Testing
- Youtube | BDD vs TDD (explained)
- De testers y code reviews
- Strict mode
assert(value[, message])
assert.deepEqual(actual, expected[, message])
assert.deepStrictEqual(actual, expected[, message])
assert.deepStrictEqual
: Comparison detailsassert.doesNotReject(block[, error][, message])
assert.doesNotThrow(block[, error][, message])
assert.equal(actual, expected[, message])
assert.fail([message])
assert.ifError(value)
assert.notDeepEqual(actual, expected[, message])
assert.notDeepStrictEqual(actual, expected[, message])
assert.notEqual(actual, expected[, message])
assert.notStrictEqual(actual, expected[, message])
assert.ok(value[, message])
assert.rejects(block[, error][, message])
assert.strictEqual(actual, expected[, message])
assert.throws(block[, error][, message])
BDD/TDD
BDD
Documentación
- Web Oficial
- Documentación
- Introduction to Unit Testing
- QUnit en Github
- El equipo
- @qunitjs en Twitter
- QUnit Forum
- QUnit Cookbook
QUnit.module( name [, hooks] [, nested ] )
QUnit.only( name, callback )
QUnit.skip( name )
QUnit.start()
QUnit.test( name, callback )
QUnit.todo( name, callback )
async( [ acceptCallCount = 1 ] )
deepEqual( actual, expected [, message ] )
equal( actual, expected [, message ] )
expect( amount )
notDeepEqual( actual, expected [, message ] )
notEqual( actual, expected [, message ] )
notOk( state [, message ] )
notPropEqual( actual, expected [, message ] )
notStrictEqual( actual, expected [, message ] )
ok( state [, message ] )
propEqual( actual, expected [, message ] )
pushResult( data: { result, actual, expected, message } )
rejects( promise[, expectedMatcher][, message ] )
step( [ message ] )
strictEqual( actual, expected [, message ] )
throws( blockFn[, expectedMatcher][, message ] )
timeout( duration )
verifySteps( steps [, message ] )
QUnit.assert
QUnit.config
QUnit.dump.parse( data )
QUnit.extend( target, mixin )
QUnit.push( result, actual, expected, message )
QUnit.stack( [ offset = 0 ] )
QUnit.begin( callback )
QUnit.done( callback )
QUnit.log( callback )
QUnit.moduleDone( callback )
QUnit.moduleStart( callback )
QUnit.on( eventName, callback )
QUnit.testDone( callback )
QUnit.testStart( callback )
Chai plugins
- chai-semver
- chai-fs
- Chai Events
- Chai HTTP
- chai-spy
- Chai Assertions for RxJS Observables
- chai-moment-string
- chai-fireproof
- chai-eventemitter
- Chai Spies
- Sinon.JS Assertions for Chai
- chai-url
- chai-dom
- In-Order Sinon-Chai Assertions
Documentación
- A guide to unit testing in JavaScript
- How Netflix does A/B Testing
- An Overview of JavaScript Testing in 2018
- I Spent $30,000 Testing Different Blog Designs — Here’s What I Found
- An Overview of JavaScript Testing in 2017
- Airbnb Guerilla Usability Testing
- A crash course on testing with Node.js
- The easy way to start automatically testing your website
- Why End-to-End Testing is Important for Your Team
- JS Vanilla Test Code Coverage
- Vanilla JS Testing — Part II
- AVA, low-config testing for JavaScript
- Revisiting Node.js Testing: Part 1
- How to test JavaScript with Mocha — The Basics
- Node.js End-to-End Testing with Nightwatch.js
- How to automate tests and deployments of Node.js apps
- Github | TheJambo/awesome-testing
- Github | atinfo/awesome-test-automation
- Github | ligurio/awesome-software-quality
- 7 Things Awesome Testers do That Don't Look Like Testing
- 5 Awesome Mobile Application Testing Tools & Platforms for Testers
- Software Testing for Continuous Delivery
- API Unit Testing with Node JS
- Node Hero - Node.js Unit Testing Tutorial
- Unit Testing and TDD in Node.js – Part 1
- JavaScript — Unit Testing using Mocha and Chai
- Lo mejor y peor de Mocha y de los unit tests en JavaScript
- How to mock a dependency in a Node.js, and why you should do it.
- How to mock requests for unit testing in Node
- Using Jasmine to Test Node.js Applications
- How to correctly unit test Express server
- Node.js Unit Testing Tutorial with Jasmine
- Testing Node.js with Mocha and Chai
- Getting Started with Node.js and Mocha
- Github | unicodeveloper/awesome-tdd
- 8 Reasons Why Unit Tests are Awesome
- The No. 1 unit testing best practice: Stop doing it
- Unit Tests, How to Write Testable Code and Why it Matters
Librerías Clásicas
- WebDriverJs
- WebdriverIO
- Protractor
- CodeceptJS
- Nightwatch.js
- Dalek.js
- Nemo
- Frisby
- TestCafe
- Nightmare
- Gemini
- Hermione
- Gremlins.js
- Chromeless
- Chrominator
- Chromy
- Navalia
- Lambdium
- GhostJS
- CasperJS
- Mailosaur
- Cypress.io
- Differencify
Otras librerias
Recursos
- End-to-End Testing With Puppeteer
- End-to-end Tests that Don’t Suck with Puppeteer
- Unit test vs. Integration test
- Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.
- matcha - Simplistic approach to benchmarking.