SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Automate your tests
with Cypress
Yong Shean
About myself
Yong Shean
Frontend Engineer /
WWCodeKL member
Blog :
:
:
yshean
@shin_chong
yshean.logdown.com 

(moving to yshean.github.io)
What this talk covers
• Helps you convince yourself / your manager to put time
and effort into writing tests

• High-level use cases

• 🔥 Some tips and tricks

• Link you up to key resources
What would not be covered
• Advanced use cases

• What is already covered in Cypress official documentation
What is ?
• A UI end-to-end testing framework

• Test scripts are written in Javascript

• Doesn’t matter how your web application is built
The Testing Trophy 🏆
Source: https://testingjavascript.com/
Why do we need it?
• Give confidence, to you and to your users

• ⌛ Save time from repetitive work

• Less worries when refactoring and dealing with change
requests
Why Cypress out of <…>?
• <…> : Selenium, Puppeteer, TestCafe, etc.

• Easy to setup

• Easy to write (it is Javascript)

• 🐞 Easy to debug

• Well-documented and easy to understand

• Fast to execute - can be incorporated into CI/CD pipeline
What Cypress cannot do
• Doesn’t support:

• certain native browser events: https://github.com/cypress-io/cypress/issues/
311 (file upload, mouse over, etc.)

• cross browser testing - yet (only Chrome and Electron for now)

• headless Chrome - yet

• iframe - yet

• Cross-domain testing

• OAuth 

• Read up on permanent and temporary trade-offs (https://docs.cypress.io/
guides/references/trade-offs.html#Permanent-trade-offs-1) and known issues:
https://docs.cypress.io/guides/references/known-issues.html
How to get started
• Create a new folder (say, test-my-app)

• Inside your folder, run yarn add cypress —dev
(or npm install cypress —save-dev) (yes, you need Node
installed)

• npx cypress open
npx cypress open
Where are the test
scripts?
• Open test-my-app folder

• Your tests will sit under cypress/
integration folder. 

• Usually name as <module>.spec.js
Real-world example
http://demo.realworld.io/#/
Today’s content is inspired by this video:

https://www.youtube.com/watch?v=5XQOK0v_YRE
What to test?
List down all the pages inside:

1. Register

2. Login

3. Settings

4. List Articles

5. View Article

6. Create New Article
What to test?
List down all the pages inside:

1. Register

2. Login

3. Settings

4. List Articles - Pagination, likes, tags, information displayed
properly?

5. View Article - Title, description displayed properly? Can edit or
delete article? Comments - can add new comment, edit comment?

6. New Article - Form validation, links working properly? Does publish
button creates a new article with the provided input?
Form validation, links and
buttons are working properly?
Identify the sequence
• What should be tested first? - Depends on your app

1. Register (before login)

2. Login (before login) - need to register first

3. Settings (after login) - need to login first

4. List Articles (before/after login) - need to create new article first

5. View Article (before/after login) - need to create new article first

6. Create New Article (after login) - need to login first
Create the files
1. Register: register.spec.js

2. Login: login.spec.js

3. Settings: settings.spec.js

4. Create New Article: article_new.spec.js

5. List Articles: articles.spec.js

6. View Article: article.spec.js
register.spec.js
https://speakerdeck.com/brianmann/cypress-best-practices
register.spec.js
beforeEach:
is where you put the function
to run before every “it”
Useful for:

- visiting the target page

- log in process

- setting up clean state
register.spec.js
register.spec.js
register.spec.js
It works!
What if the element to
select has a dynamic
classname?
Let’s say you want to test the
“Home” link…
Tips: You can copy from Cypress’ selector
playground…
And it works, but…
When the classname change, you need to
change your test script
NOT ROBUST to
development code
refactoring
Cypress-testing-library to the rescue!
https://github.com/testing-library/cypress-testing-library
Usage
Add this line to your project's cypress/support/
commands.js:

import “cypress-testing-library/add-commands”;
Now you can just write like
this…
What if the element you
wanna test is not visible?
Let’s say you want to click on the
“Basic” link inside the side menu…
Because it’s hidden, you need to click
on the menu icon first…
Of course, you also can get the selector
from Cypress’ selector playground…
Then click on the “Basic” link when it
becomes visible…
But if you (or your team) use styled-components,
the generated classname might change!
And just put inside the get()…
Tips for selecting icon/image
element: look for alt text or title
This should work… 🤔
Oops… Cypress complains that the
element is not visible (or covered by
another element)
Add {force: true} if you know
what you’re doing…
And it works! 🎉
Comparing both
approaches
There is countless ways to select an
element… but which is the most suitable
one?
https://testing-library.com/docs/guide-which-query
Luckily there’s a guide! Use this as your testing bible:
Takeaways
• Cypress can be used to test your web application as long
as it can be opened with Chrome

• Planning your tests is as important as executing them

• Test as if you’re the tester, not as if you’re the developer

• Read up docs and guides on Cypress 

• Listen to Kent C. Dodds for testing advice
We’re hiring!
• React developers

• Node + GraphQL developers

• QA engineers (bonus if you know how to write automated
tests ;))
Both experienced and non-experienced (but
passionate at learning) are welcomed!



Pls send resume to joel.choo@finexusgroup.com
(or talk to me!) if you’re interested.
finexusgroupofficial

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Cypress for Testing
Cypress for TestingCypress for Testing
Cypress for Testing
 
Cypress testing
Cypress testingCypress testing
Cypress testing
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
 
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
 
Cypress E2E Testing
Cypress E2E TestingCypress E2E Testing
Cypress E2E Testing
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Introduction cypress
Introduction cypressIntroduction cypress
Introduction cypress
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
 
Component testing with cypress
Component testing with cypressComponent testing with cypress
Component testing with cypress
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
Introduction to E2E in Cypress
Introduction to E2E in CypressIntroduction to E2E in Cypress
Introduction to E2E in Cypress
 
Cypress report
Cypress reportCypress report
Cypress report
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
Cypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests courseCypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests course
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Cypress Automation Testing Tutorial (Part 1).pdf
Cypress Automation Testing Tutorial (Part 1).pdfCypress Automation Testing Tutorial (Part 1).pdf
Cypress Automation Testing Tutorial (Part 1).pdf
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 

Semelhante a Automated testing with Cypress

Semelhante a Automated testing with Cypress (20)

Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.js
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
 
Selenium training in chennai
Selenium training in chennaiSelenium training in chennai
Selenium training in chennai
 
Easy Bolt-on Docs Using React Styleguidist
Easy Bolt-on Docs Using React StyleguidistEasy Bolt-on Docs Using React Styleguidist
Easy Bolt-on Docs Using React Styleguidist
 
Testing mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkTesting mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP framework
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Owasp tds
Owasp tdsOwasp tds
Owasp tds
 
JAVASCRIPT Test Driven Development & Jasmine
JAVASCRIPT Test Driven Development & JasmineJAVASCRIPT Test Driven Development & Jasmine
JAVASCRIPT Test Driven Development & Jasmine
 
Selenium training in chennai
Selenium training in chennaiSelenium training in chennai
Selenium training in chennai
 
Sync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpnSync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpn
 
Automated testing in javascript
Automated testing in javascriptAutomated testing in javascript
Automated testing in javascript
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
 

Último

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Último (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 

Automated testing with Cypress

  • 1. Automate your tests with Cypress Yong Shean
  • 2. About myself Yong Shean Frontend Engineer / WWCodeKL member Blog : : : yshean @shin_chong yshean.logdown.com 
 (moving to yshean.github.io)
  • 3. What this talk covers • Helps you convince yourself / your manager to put time and effort into writing tests • High-level use cases • 🔥 Some tips and tricks • Link you up to key resources
  • 4. What would not be covered • Advanced use cases • What is already covered in Cypress official documentation
  • 5. What is ? • A UI end-to-end testing framework • Test scripts are written in Javascript • Doesn’t matter how your web application is built
  • 6. The Testing Trophy 🏆 Source: https://testingjavascript.com/
  • 7. Why do we need it? • Give confidence, to you and to your users • ⌛ Save time from repetitive work • Less worries when refactoring and dealing with change requests
  • 8. Why Cypress out of <…>? • <…> : Selenium, Puppeteer, TestCafe, etc. • Easy to setup • Easy to write (it is Javascript) • 🐞 Easy to debug • Well-documented and easy to understand • Fast to execute - can be incorporated into CI/CD pipeline
  • 9. What Cypress cannot do • Doesn’t support: • certain native browser events: https://github.com/cypress-io/cypress/issues/ 311 (file upload, mouse over, etc.) • cross browser testing - yet (only Chrome and Electron for now) • headless Chrome - yet • iframe - yet • Cross-domain testing • OAuth • Read up on permanent and temporary trade-offs (https://docs.cypress.io/ guides/references/trade-offs.html#Permanent-trade-offs-1) and known issues: https://docs.cypress.io/guides/references/known-issues.html
  • 10. How to get started • Create a new folder (say, test-my-app) • Inside your folder, run yarn add cypress —dev (or npm install cypress —save-dev) (yes, you need Node installed) • npx cypress open
  • 12. Where are the test scripts? • Open test-my-app folder • Your tests will sit under cypress/ integration folder. • Usually name as <module>.spec.js
  • 13. Real-world example http://demo.realworld.io/#/ Today’s content is inspired by this video: https://www.youtube.com/watch?v=5XQOK0v_YRE
  • 14.
  • 15. What to test? List down all the pages inside: 1. Register 2. Login 3. Settings 4. List Articles 5. View Article 6. Create New Article
  • 16. What to test? List down all the pages inside: 1. Register 2. Login 3. Settings 4. List Articles - Pagination, likes, tags, information displayed properly? 5. View Article - Title, description displayed properly? Can edit or delete article? Comments - can add new comment, edit comment? 6. New Article - Form validation, links working properly? Does publish button creates a new article with the provided input? Form validation, links and buttons are working properly?
  • 17. Identify the sequence • What should be tested first? - Depends on your app 1. Register (before login) 2. Login (before login) - need to register first 3. Settings (after login) - need to login first 4. List Articles (before/after login) - need to create new article first 5. View Article (before/after login) - need to create new article first 6. Create New Article (after login) - need to login first
  • 18. Create the files 1. Register: register.spec.js 2. Login: login.spec.js 3. Settings: settings.spec.js 4. Create New Article: article_new.spec.js 5. List Articles: articles.spec.js 6. View Article: article.spec.js
  • 20. register.spec.js beforeEach: is where you put the function to run before every “it” Useful for: - visiting the target page - log in process - setting up clean state
  • 24. What if the element to select has a dynamic classname?
  • 25. Let’s say you want to test the “Home” link… Tips: You can copy from Cypress’ selector playground…
  • 26. And it works, but… When the classname change, you need to change your test script NOT ROBUST to development code refactoring
  • 27.
  • 28.
  • 29. Cypress-testing-library to the rescue! https://github.com/testing-library/cypress-testing-library
  • 30. Usage Add this line to your project's cypress/support/ commands.js: import “cypress-testing-library/add-commands”;
  • 31. Now you can just write like this…
  • 32. What if the element you wanna test is not visible?
  • 33. Let’s say you want to click on the “Basic” link inside the side menu… Because it’s hidden, you need to click on the menu icon first…
  • 34. Of course, you also can get the selector from Cypress’ selector playground… Then click on the “Basic” link when it becomes visible…
  • 35. But if you (or your team) use styled-components, the generated classname might change! And just put inside the get()…
  • 36. Tips for selecting icon/image element: look for alt text or title
  • 38. Oops… Cypress complains that the element is not visible (or covered by another element)
  • 39. Add {force: true} if you know what you’re doing…
  • 42. There is countless ways to select an element… but which is the most suitable one? https://testing-library.com/docs/guide-which-query Luckily there’s a guide! Use this as your testing bible:
  • 43. Takeaways • Cypress can be used to test your web application as long as it can be opened with Chrome • Planning your tests is as important as executing them • Test as if you’re the tester, not as if you’re the developer • Read up docs and guides on Cypress • Listen to Kent C. Dodds for testing advice
  • 44. We’re hiring! • React developers • Node + GraphQL developers • QA engineers (bonus if you know how to write automated tests ;)) Both experienced and non-experienced (but passionate at learning) are welcomed!
 
 Pls send resume to joel.choo@finexusgroup.com (or talk to me!) if you’re interested. finexusgroupofficial