SlideShare a Scribd company logo
TESTING JAVASCRIPT APPLICATIONS
by Alexander Gerasimov and Dmitrey Gerasimov
¿POR QUÉ?
¡PORQUE!
refactoring
organization, modularization, extensibility
documentation
defect prevention
collaboration
"Any feature without a test doesn’t exist"
Steve Loughran HP Laboratories
TDD & BDD
TESTS FIRST
RED/GREEN/REFACTOR
Red: Write a failing test
RED/GREEN/REFACTOR
Green: Make it pass
RED/GREEN/REFACTOR
Refactor: Eliminate redundancy
STRUCTURE
Setup: Put the Unit Under Test (UUT) or the overall test system in the state needed
to run the test.
Execution: Trigger/drive the UUT to perform the target behavior and capture all
output, such as return values and output parameters.
Validation: Ensure the results of the test are correct.
Cleanup: Restore the UUT or the overall test system to the pre-test state.
http://en.wikipedia.org/wiki/Test-driven_development#Test_structure
TDD ASSERTIONS
var assert = chai.assert;
assert.typeOf(foo, 'string');
assert.equal(foo, 'bar');
assert.lengthOf(foo, 3)
assert.property(tea, 'favors');
assert.lengthOf(tea.flavors, 3);
BDD
Behavior-driven development
GIVEN-WHEN-THEN
Story: Returns go to stock
In order to keep track of stock
As a store owner
I want to add items back to stock when they're returned
Scenario 1: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
And I currently have three black sweaters left in stock
When he returns the sweater for a refund
Then I should have four black sweaters in stock
CUCUMBER
Feature: Addition
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two number
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
CUCUMBER
Given /I have entered (.*) into the calculator do
calculator = new Calculator();
calculator.push(n);
end
EXPECT
var expect = require("chai").expect
, foo = "bar"
, beverages = { tea: [ "chai", "matcha", "oolong" ] };
expect(foo).to.be.a("string");
expect(foo).to.equal("bar");
expect(foo).to.have.length(3);
expect(beverages).to.have.property("tea").with.length(3);
SHOULD
var should = require("chai").should()
, foo = "bar"
, beverages = { tea: [ "chai", "matcha", "oolong" ] };
foo.should.be.a("string");
foo.should.equal("bar");
foo.should.have.length(3);
beverages.should.have.property("tea").with.length(3);
FUNCTIONAL TESTING
UX/BEHAVIOR VERIFICATION
Unit tests just prove that your code doesn't work
AUTOMATION & CONTROL
↓
METRICS & PROFILING
Execution time
Loading, rendering, painting
CPU & Memory
Google Chrome Metrics
HELPS QA TESTERS
Why not let QA guys concentrate on quality rather than
routine?
TOOLS & EXAMPLES
generators
frameworks
[assertion] libraries
plugins
stat tools
complex solutions + Grunt
TECHNIQUES
DUMMIES
STUBS
MOCKS
SPIES
FIXTURES
JASMINE
What is it?..
JASMINE
Suites & specs
describe("A suite is just a function", function() {
var a;
it("and so is a spec", function() {
a = true;
expect(a).toBe(true);
});
});
JASMINE
Matchers
expect(x).toEqual(y);
expect(x).toBe(y);
expect(x).toMatch(pattern);
expect(x).toBeDefined();
expect(x).toBeUndefined();
expect(x).toBeNull();
expect(x).toBeTruthy();
expect(x).toBeFalsy();
expect(x).toContain(y);
expect(x).toBeLessThan(y);
expect(x).toBeGreaterThan(y);
expect(function(){fn();}).toThrow(e);
JASMINE
Spies
SPIES
Tracks
Functions calls
Arguments
Number of calls
SPIES
Access
All calls of function
Every argument of every call
SPIES
Can
Track and delegate
Substitute returning values
Call faked functions
Create mock objects
JASMINE
Any
describe("jasmine.any", function() {
it("matches any value", function() {
expect({}).toEqual(jasmine.any(Object));
expect(12).toEqual(jasmine.any(Number));
});
});
JASMINE
Clock
beforeEach(function() {
timerCallback = jasmine.createSpy("timerCallback"); //create spy
jasmine.Clock.useMock(); //use wrepper of system timer
});
it("causes a timeout to be called synchronously", function() {
setTimeout(function() {
timerCallback();
}, 100);
expect(timerCallback).not.toHaveBeenCalled();
jasmine.Clock.tick(101); //make time to go
expect(timerCallback).toHaveBeenCalled();
});
JASMINE
Async
It exists, but...
JASMINE
Reporter
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect (yourCode).toBeLotsBetter();
});
});
MOCHA
['mɔkə]
MOCHA
Supports TDD assertions and BDD should/expect
Reporting & CI integration
JavaScript API
Browser Test Runner
MOCHA
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when the value is not present', function(){
[1,2,3].indexOf(5).should.equal(-1);
[1,2,3].indexOf(0).should.equal(-1);
})
})
})
MOCHA
describe('User', function(){
describe('#save()', function(){
it('should save without error', function(done){
var user = new User('Luna');
user.save(function(err){
if (err) throw err;
done();
});
})
})
})
MOCHA
Hooks: before(), after(), beforeEach(), afterEach()
beforeEach(function(done){
db.clear(function(err){
if (err) return done(err);
db.save([tobi, loki, jane], done);
});
})
MOCHA
MOCHA
Console reporter
MOCHA
HTML reporter
MOCHA
Nyan reporter
CHAI
CHAI
Assert, expect/should
chai.should();
foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.length(3);
tea.should.have.property('flavors')
.with.length(3);
QUESTION TIME!
How would you test an RNG?
CHAI
Plugins
here
CASPERJS
PhantomJS
API
SlimerJS
SpookyJS
CASPERJS
var casper = require('casper').create();
casper.start('http://domain.tld/page.html', function() {
if (this.exists('h1.page-title')) {
this.echo('the heading exists');
}
});
casper.run();
QUESTION TIME!
What happens if not everyone on the team adopts TDD/BDD?
CODE COVERAGE
INSTRUMENTATION
INSTRUMENTATION
Testing JavaScript Applications
ISTANBUL
Statement, branch, and function coverage
Test running tools
HTML & LCOV reporting
esprima-based
TESTING + CI = ❤
fail builds
statistics & reporting
Github is integration paradise
GITHUB IS INTEGRATION PARADISE
IRL, 100% COVERAGE IS A LIE
legacy & untestable code
permissive tests
not applicable to functional testing
MUTATION TESTING
Who tests tests?
Coverage is paramount! (it isn't)
Mutations: remove lines, alter operators, rename identifiers
The Future of Unit Testing
QUESTION TIME!
What do you do when you're offerred a project without TDD?
YOU RUN LIKE HELL
THE END

More Related Content

What's hot (20)

Testing Javascript with Jasmine
Testing Javascript with Jasmine
Tim Tyrrell
 
Testing JS with Jasmine
Testing JS with Jasmine
Evgeny Gurin
 
PL/SQL Unit Testing Can Be Fun!
PL/SQL Unit Testing Can Be Fun!
Raimonds Simanovskis
 
Understanding JavaScript Testing
Understanding JavaScript Testing
jeresig
 
Painless JavaScript Testing with Jest
Painless JavaScript Testing with Jest
Michał Pierzchała
 
Good karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with Karma
ExoLeaders.com
 
JavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and Karma
Christopher Bartling
 
JavaScript Test-Driven Development with Jasmine 2.0 and Karma
JavaScript Test-Driven Development with Jasmine 2.0 and Karma
Christopher Bartling
 
AngularJS Unit Testing w/Karma and Jasmine
AngularJS Unit Testing w/Karma and Jasmine
foxp2code
 
Testing javascript in the frontend
Testing javascript in the frontend
Frederic CABASSUT
 
Intro to testing Javascript with jasmine
Intro to testing Javascript with jasmine
Timothy Oxley
 
Test-Driven Development of AngularJS Applications
Test-Driven Development of AngularJS Applications
FITC
 
Unit testing in JavaScript with Jasmine and Karma
Unit testing in JavaScript with Jasmine and Karma
Andrey Kolodnitsky
 
Unit Testing JavaScript Applications
Unit Testing JavaScript Applications
Ynon Perek
 
Understanding JavaScript Testing
Understanding JavaScript Testing
Kissy Team
 
Full Stack Unit Testing
Full Stack Unit Testing
GlobalLogic Ukraine
 
JavaScript Unit Testing with Jasmine
JavaScript Unit Testing with Jasmine
Raimonds Simanovskis
 
Introduction to Protractor
Introduction to Protractor
Jie-Wei Wu
 
Testing your javascript code with jasmine
Testing your javascript code with jasmine
Rubyc Slides
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testing
Visual Engineering
 
Testing Javascript with Jasmine
Testing Javascript with Jasmine
Tim Tyrrell
 
Testing JS with Jasmine
Testing JS with Jasmine
Evgeny Gurin
 
Understanding JavaScript Testing
Understanding JavaScript Testing
jeresig
 
Painless JavaScript Testing with Jest
Painless JavaScript Testing with Jest
Michał Pierzchała
 
Good karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with Karma
ExoLeaders.com
 
JavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and Karma
Christopher Bartling
 
JavaScript Test-Driven Development with Jasmine 2.0 and Karma
JavaScript Test-Driven Development with Jasmine 2.0 and Karma
Christopher Bartling
 
AngularJS Unit Testing w/Karma and Jasmine
AngularJS Unit Testing w/Karma and Jasmine
foxp2code
 
Testing javascript in the frontend
Testing javascript in the frontend
Frederic CABASSUT
 
Intro to testing Javascript with jasmine
Intro to testing Javascript with jasmine
Timothy Oxley
 
Test-Driven Development of AngularJS Applications
Test-Driven Development of AngularJS Applications
FITC
 
Unit testing in JavaScript with Jasmine and Karma
Unit testing in JavaScript with Jasmine and Karma
Andrey Kolodnitsky
 
Unit Testing JavaScript Applications
Unit Testing JavaScript Applications
Ynon Perek
 
Understanding JavaScript Testing
Understanding JavaScript Testing
Kissy Team
 
JavaScript Unit Testing with Jasmine
JavaScript Unit Testing with Jasmine
Raimonds Simanovskis
 
Introduction to Protractor
Introduction to Protractor
Jie-Wei Wu
 
Testing your javascript code with jasmine
Testing your javascript code with jasmine
Rubyc Slides
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testing
Visual Engineering
 

Viewers also liked (20)

Graceful degradation & Progressive enhancement
Graceful degradation & Progressive enhancement
The Rolling Scopes
 
D3 workshop
D3 workshop
The Rolling Scopes
 
Learn Frontend Testing
Learn Frontend Testing
Ryan Roemer
 
Node.js in Production
Node.js in Production
Ryan Roemer
 
CascadiaJS 2014 - Making JavaScript Tests Fast, Easy & Friendly
CascadiaJS 2014 - Making JavaScript Tests Fast, Easy & Friendly
Ryan Roemer
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case Design
Georgina Tilby
 
Garbage collection
Garbage collection
Mudit Gupta
 
Automation using Javascript
Automation using Javascript
khanhdang1214
 
5 Coding Hacks to Reduce GC Overhead
5 Coding Hacks to Reduce GC Overhead
Takipi
 
An efficient memory system for java Garbage Collection
An efficient memory system for java Garbage Collection
Rohit Deshpande
 
Angular js vs. Facebook react
Angular js vs. Facebook react
Keyup
 
JavaScript Testing: Mocha + Chai
JavaScript Testing: Mocha + Chai
James Cryer
 
Garbage Collection in Java
Garbage Collection in Java
Keyup
 
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
mlilley
 
How to do open and front end innovation. 5 Principles. Insights & experience...
How to do open and front end innovation. 5 Principles. Insights & experience...
Martin Malthe Borch
 
Testing with Express, Mocha & Chai
Testing with Express, Mocha & Chai
Joerg Henning
 
Cypress/VSAC Presentation at HIMSS13
Cypress/VSAC Presentation at HIMSS13
Saul Kravitz
 
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Prasid Pathak
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
Automated UI Testing Frameworks
Automated UI Testing Frameworks
TestObject - Mobile Testing
 
Graceful degradation & Progressive enhancement
Graceful degradation & Progressive enhancement
The Rolling Scopes
 
Learn Frontend Testing
Learn Frontend Testing
Ryan Roemer
 
Node.js in Production
Node.js in Production
Ryan Roemer
 
CascadiaJS 2014 - Making JavaScript Tests Fast, Easy & Friendly
CascadiaJS 2014 - Making JavaScript Tests Fast, Easy & Friendly
Ryan Roemer
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case Design
Georgina Tilby
 
Garbage collection
Garbage collection
Mudit Gupta
 
Automation using Javascript
Automation using Javascript
khanhdang1214
 
5 Coding Hacks to Reduce GC Overhead
5 Coding Hacks to Reduce GC Overhead
Takipi
 
An efficient memory system for java Garbage Collection
An efficient memory system for java Garbage Collection
Rohit Deshpande
 
Angular js vs. Facebook react
Angular js vs. Facebook react
Keyup
 
JavaScript Testing: Mocha + Chai
JavaScript Testing: Mocha + Chai
James Cryer
 
Garbage Collection in Java
Garbage Collection in Java
Keyup
 
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
mlilley
 
How to do open and front end innovation. 5 Principles. Insights & experience...
How to do open and front end innovation. 5 Principles. Insights & experience...
Martin Malthe Borch
 
Testing with Express, Mocha & Chai
Testing with Express, Mocha & Chai
Joerg Henning
 
Cypress/VSAC Presentation at HIMSS13
Cypress/VSAC Presentation at HIMSS13
Saul Kravitz
 
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Prasid Pathak
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
Ad

Similar to Testing JavaScript Applications (20)

Zero to Testing in JavaScript
Zero to Testing in JavaScript
pamselle
 
Jasmine
Jasmine
Alok Guha
 
Java Script Isn\'t a Toy Anymore
Java Script Isn\'t a Toy Anymore
Alexis Williams
 
JAVASCRIPT Test Driven Development & Jasmine
JAVASCRIPT Test Driven Development & Jasmine
Anup Singh
 
MidwestJS Zero to Testing
MidwestJS Zero to Testing
pamselle
 
Quick tour to front end unit testing using jasmine
Quick tour to front end unit testing using jasmine
Gil Fink
 
Quick Tour to Front-End Unit Testing Using Jasmine
Quick Tour to Front-End Unit Testing Using Jasmine
Gil Fink
 
Front end unit testing using jasmine
Front end unit testing using jasmine
Gil Fink
 
JS Lab`16. Сергей Селецкий: "Ретроспектива тестирования JavaScript"
JS Lab`16. Сергей Селецкий: "Ретроспектива тестирования JavaScript"
GeeksLab Odessa
 
Js fwdays unit tesing javascript(by Anna Khabibullina)
Js fwdays unit tesing javascript(by Anna Khabibullina)
Anna Khabibullina
 
JS Frameworks Day April,26 of 2014
JS Frameworks Day April,26 of 2014
DA-14
 
In search of JavaScript code quality: unit testing
In search of JavaScript code quality: unit testing
Anna Khabibullina
 
Tests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and Testacular
Paulo Cesar Ortins Brito
 
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
Ortus Solutions, Corp
 
jasmine
jasmine
Asanka Indrajith
 
JAVASCRIPT TDD(Test driven Development) & Qunit Tutorial
JAVASCRIPT TDD(Test driven Development) & Qunit Tutorial
Anup Singh
 
3 WAYS TO TEST YOUR COLDFUSION API
3 WAYS TO TEST YOUR COLDFUSION API
Gavin Pickin
 
3 WAYS TO TEST YOUR COLDFUSION API -
3 WAYS TO TEST YOUR COLDFUSION API -
Ortus Solutions, Corp
 
JavaScript Unit Testing
JavaScript Unit Testing
L&T Technology Services Limited
 
North Virginia Coldfusion User Group Meetup - Testbox - July 19th 2017
North Virginia Coldfusion User Group Meetup - Testbox - July 19th 2017
Ortus Solutions, Corp
 
Zero to Testing in JavaScript
Zero to Testing in JavaScript
pamselle
 
Java Script Isn\'t a Toy Anymore
Java Script Isn\'t a Toy Anymore
Alexis Williams
 
JAVASCRIPT Test Driven Development & Jasmine
JAVASCRIPT Test Driven Development & Jasmine
Anup Singh
 
MidwestJS Zero to Testing
MidwestJS Zero to Testing
pamselle
 
Quick tour to front end unit testing using jasmine
Quick tour to front end unit testing using jasmine
Gil Fink
 
Quick Tour to Front-End Unit Testing Using Jasmine
Quick Tour to Front-End Unit Testing Using Jasmine
Gil Fink
 
Front end unit testing using jasmine
Front end unit testing using jasmine
Gil Fink
 
JS Lab`16. Сергей Селецкий: "Ретроспектива тестирования JavaScript"
JS Lab`16. Сергей Селецкий: "Ретроспектива тестирования JavaScript"
GeeksLab Odessa
 
Js fwdays unit tesing javascript(by Anna Khabibullina)
Js fwdays unit tesing javascript(by Anna Khabibullina)
Anna Khabibullina
 
JS Frameworks Day April,26 of 2014
JS Frameworks Day April,26 of 2014
DA-14
 
In search of JavaScript code quality: unit testing
In search of JavaScript code quality: unit testing
Anna Khabibullina
 
Tests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and Testacular
Paulo Cesar Ortins Brito
 
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
Ortus Solutions, Corp
 
JAVASCRIPT TDD(Test driven Development) & Qunit Tutorial
JAVASCRIPT TDD(Test driven Development) & Qunit Tutorial
Anup Singh
 
3 WAYS TO TEST YOUR COLDFUSION API
3 WAYS TO TEST YOUR COLDFUSION API
Gavin Pickin
 
3 WAYS TO TEST YOUR COLDFUSION API -
3 WAYS TO TEST YOUR COLDFUSION API -
Ortus Solutions, Corp
 
North Virginia Coldfusion User Group Meetup - Testbox - July 19th 2017
North Virginia Coldfusion User Group Meetup - Testbox - July 19th 2017
Ortus Solutions, Corp
 
Ad

Recently uploaded (20)

Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
AI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA Technologies
SandeepKS52
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Software Testing & it’s types (DevOps)
Software Testing & it’s types (DevOps)
S Pranav (Deepu)
 
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Intelli grow
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Puppy jhon
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Software Engineering Process, Notation & Tools Introduction - Part 4
Software Engineering Process, Notation & Tools Introduction - Part 4
Gaurav Sharma
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
Migrating to Azure Cosmos DB the Right Way
Migrating to Azure Cosmos DB the Right Way
Alexander (Alex) Komyagin
 
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
AI and Deep Learning with NVIDIA Technologies
AI and Deep Learning with NVIDIA Technologies
SandeepKS52
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Software Testing & it’s types (DevOps)
Software Testing & it’s types (DevOps)
S Pranav (Deepu)
 
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Intelli grow
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Puppy jhon
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Software Engineering Process, Notation & Tools Introduction - Part 4
Software Engineering Process, Notation & Tools Introduction - Part 4
Gaurav Sharma
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 

Testing JavaScript Applications