Intro
This page is really old and I need to update. There was a time when only the development tools were being updated and the testing tools (and frameworks) were an afterthought. With the explosion of test automation and emphasis on producing quality software for digital business's reliability and availability, there is now a parallel advancement of development tools/frameworks AND test tools/frameworks.
Today's Software Tools & Framework for Testing
This is a quick list of test tools and frameworks that I am currently aware of.
- https://webdriver.io/ (test framework for NodeJS)
- Thunder Client (Lightweight Rest API Client for VS Code)
- Postman (API Testing)
- https://paw.cloud/
- https://rapidapi.com/
ToDo
- Research on 2019 test tool; which is best tool to use in 2019?
- Cypress.io
- If you skip the binary installation, then skip the following:
- https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Cypress-Is-Simple
- https://docs.cypress.io/examples/examples/tutorials.html#Best-Practices
- https://www.youtube.com/watch?v=l_Q7cbmYjDY (Execute Automation)
- Selenium
- Protractor
- repo/tree/branch-name/ui/src/main/javascript
- See README.md file
- https://dzone.com/articles/top-5-java-test-frameworks-for-automation-in-2019
- Test Automation Guide
- Add "Page Object Model (POM)" Design Pattern
- https://www.softwaretestingmaterial.com/page-object-model/
- https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html
- Add "Best Coding Practices"
- https://saucelabs.com/blog/patterns-and-coding-practices-for-stable-end-to-end-gui-tests
- Add examples
- Update based on
- https://www.softwaretestingmaterial.com/page-object-model/ for work project
- https://www.geeksforgeeks.org/static-class-in-java/
- https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html
- Learn the Page Factory concept and its lazy loading using AjaxElementLocatorFactory
- Is this useful?
- UserAgreement page object should have all the WebElements and functions for the page; not a PageUtility. I don't want a page to have to wait for access to the Utility in order to continue being tested. If I have 3 users on their own UserAgreement and the all click Accept, 2 of the users have to wait to use the isAccepted() utility method because they don't have their own isAccepted page method.
- Utilities should be for all pages, and not page specific.
- Can make a PageBase which is extended by multiple Pages
- Can make a PageUtility for PageBase
- Do I need any other kind of Utility?
- https://www.youtube.com/watch?v=fUSl-WhqymU
- YouTube "Page Object Model" "Page Object Selenium"
- https://github.com/SeleniumHQ/selenium/wiki/PageFactory
- Test Automation Design @ https://saucelabs.com/blog/patterns-and-coding-practices-for-stable-end-to-end-gui-tests
- Selenium + Maven @ https://www.coveros.com/
running-selenium-tests-with- maven/ - Move everything from my Software Testing Google Doc into this Page. This makes for easier info mgmt.
- https://medium.freecodecamp.org/how-to-dockerize-your-end-to-end-acceptance-tests-dbb593acb8e0 (Dockerizing end-to-end testing)
- Talk about how the Page Object Pattern misses a key part of testing with the Driver. That is, instead of Page -> Test, have Browser <interface> FF/GC/IE -> Page -> Test, and also have Components extend off of Browser because some components are not related to a page, but to the webapp itself. Puppeteer has addressed this a little bit with the ability to test Chrome Extensions.
- Does Page Object Model design work in other Test Automation Tools?
- Buy this or no?
Google "co-locate selenium tests with app"
Google "end to end testing repo"
Google "where to save end to end tests"
Google "end to end testing repo"
Google "where to save end to end tests"
Testing & QA
Why Test Automation?
https://smartbear.com/solutions/automated-testing/https://www.guru99.com/automation-testing.html
Requirements & Documentation
The beginning of each test scenario or test case is a requirement. What is the system or software expected to do? What is the input or trigger? What is the output or event (reacting to the trigger)? What response time is expected?
Test Knowledge
https://martinfowler.com/articles/practical-test-pyramid.htmlhttps://saucelabs.com/blog/patterns-and-coding-practices-for-stable-end-to-end-gui-tests
Agile Testing book presents a clear quadrant for the major test areas of an application:
Test Snapshot
https://medium.freecodecamp.org/the-front-end-test-pyramid-rethink-your-testing-3b343c2bca51Types of Testing
There are many types of testing. Instead of re-listing the different types, I'll point to webpages that already have this list. Be mindful that some of the definitions are slightly off from my understanding. Like, functional testing is based on user functional testing and not including system functionalities (because system functionalities would be categorized more precisely like system testing, system integration testing, unit testing, etc.).- https://www.quora.com/What-are-the-types-of-system-testing
- http://enfocussolutions.com/types-of-system-testing/
Test Automation
has test step, test object, test action, and test data
End-to-End (E2E) Frameworks
These test automation frameworks have tools for cross-browser testing. Some including mobile app testing.
- https://www.seleniumhq.org/ (multiple language support, platform independent)
- https://www.cypress.io/ (NodeJS)
- https://jbehave.org/
- http://nightwatchjs.org/
- https://jestjs.io/
- Facebook Developer's Testing Framework
- JestJS + Puppeteer
- Jest runs previously failed tests first and re-organizes runs based on how long test files take
- Most useful framework for testing ReactJS
- Puppeteer (NodeJS)
- Google Developer's Testing Framework
- https://developers.google.com/web/tools/puppeteer/
- Source: https://github.com/GoogleChrome/puppeteer
- Browser testing includes Google's Chromium and Chrome ONLY
- Chrome "browser extension" testing support
- Generate PDFs of pages
- CodeceptJS
- https://codecept.io/
- https://easytesting.io/
- CodeceptJS + Puppeteer
- TestCafe (NodeJS)
- https://devexpress.github.io/testcafe/
- Source: https://github.com/DevExpress/testcafe
- IDE: https://www.devexpress.com/products/testcafestudio/
- Doc: https://testcafe.devexpress.com/Documentation/
- TypeScript support
- URL Rewriting support (i.e. doesn't need webdriver to request, test)
- Gauge
- ThoughtWorks's Testing Framework (Beta)
- https://gauge.org/index.html
- Source:
- Protractor
- https://www.protractortest.org/#/
- Angular support
https://jbehave.org/
https://cucumber.io/
http://www.thucydides.info/# (Serenity)
https://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/
Unit Frameworks
- Karma (NodeJS) - Unit Test
Other Frameworks
GoogleTesthttps://github.com/google/googletest/
Online Testing Platforms
https://www.getpostman.com/ (API Testing)https://applitools.com/
https://testproject.io/
https://www.testim.io/
https://www.browserstack.com/
https://www.lambdatest.com/
https://www.gurock.com/
Blogs & Channels
- Execute Automation (YouTube)
- https://blog.testim.io
- https://cdinsight.wordpress.com/
Companies
Is there a difference between the Online Testing Platforms and these Companies? Or are the companies providing these platforms as well as testing services?
- https://saucelabs.com/ (seems to focus on selenium and appium test tools?)
- https://www.browserstack.com/ (online testing of mobile and web apps)
Company Test Team References
- https://developers.facebook.com/docs/apps/test-apps/
- https://developer.android.com/studio/test/
- https://developer.apple.com/testflight/
Universities & Online Education
https://testautomationu.applitools.com/Further Thoughts
- https://angiejones.tech/shared-repository-for-dev-and-automation-code/
- https://techbeacon.com/app-dev-testing/6-reasons-co-locate-your-app-automation-code
- https://medium.freecodecamp.org/why-end-to-end-testing-is-important-for-your-team-cb7eb0ec1504
- https://medium.freecodecamp.org/the-front-end-test-pyramid-rethink-your-testing-3b343c2bca51
- https://www.thoughtworks.com/insights/blog/guidelines-structuring-automated-tests
https://blog.testim.io/7-critical-tips-for-quality-code/
https://dzone.com/articles/top-5-java-test-frameworks-for-automation-in-2019
Era of Non-Selenium automation testing tools 2019
https://www.youtube.com/watch?v=EbENbe8mmGM&index=311&list=WL&t=0sTop 15 Selenium Alternatives in 2019
dated: April 17, 2019Source: https://www.guru99.com/selenium-alternatives.html
- TestCraft
- Mabl
- Squish (GUI Test Automation Tool)
- Cypress*
- Ranorex Studio
- TestLeft
- Functionize
- TestArchitect
- iMacros
- Cucumber
- Unified Functional Test (UFT)
- Serenity**
- uses Selenium
- IBM Rational Functional Tester
- Galen framework*
- uses Selenium
- SikuliX
- RedwoodHQ* - watch overview
- uses Selenium
- Watir*
- uses Selenium
- open source Ruby library
- Telerik Test Studio
- Screenster
- cloud-based UI testing platform
- Katalon Studio
- Tricentis Tosca
- Cloud QA
- uses Selenium
- TestIM
- uses artificial intelligence
*open source
**selenium alternative that includes generating test reports
Testing vs Hacking
There are tons of people including self-taught students who making "hacking" through testing public software a fun, but profitable vocation.One of the differences between being a Tester and a Hacker is that usually a Tester is an in-house hacker.
Nowadays (and near future), hacking will be the new type of "exploratory testing" or "real-user" testing. Whereas, most of the Tester roles will be filled by Software Developers specializing in creating test tools and methods to test products and/or services developed.
Why become a Tester when one can become an ethical Hacker?
The biggest reason is the guaranteed pay (i.e. salary) rather than by a reward system (payment per bug found and confirmed by company as a bug).Why not do both, test and hack?
You actually can be a Tester and a Hacker. If you have the time, then here are some sites to further discover softwares for ethical hacking.Creating Test Plan
https://qacomplete.com/resources/articles/how-to-implement-an-effective-test-planning-proces/Testing Back in the Days (before 2006)
https://www.riceconsulting.com/home/index.php/Web-Testing/how-to-develop-test-cases-and-test-scripts-for-web-testing.html
https://youtu.be/T3q6QcCQZQg (eureka software testing tutorial / feb 2019 / interesting to see so much old knowledge in this video)
The problem with these traditional methods of testing including the training of software testing is that it takes too long to even just start officially testing the software. Hence, why in Agile the conversations around testing are kept short and done instantly whether the code is implemented or not. A test script can be created with clear design direction stemming from the requirement(s) and clear design patterns / best programming practices to state whether the application fails or passes. A test script does NOT wait for the implemented code in order to test.
Other References
- https://techbeacon.com/app-dev-testing/9-top-open-source-testing-automation-frameworks-how-choose
- Serenity (formerly Thucydides)
- watch quick tutorial
- Source: https://github.com/serenity-bdd
- Doc: http://www.thucydides.info/#/documentation
- Guide: https://serenity-bdd.github.io/theserenitybook/latest/index.html
- Cypress
- Robot
- RedwoodHQ
- Sahi
- Galen
- Gauge (by ThoughtWorks)
- Citrus - framework to test messaging protocols and integration
- Karate-DSL - web services testing made simple 🤔
Learn
- Eureka Tutorials
- Eureka's Test Automation via Selenium - YouTube Playlist
- How to Become a Test Automation Engineer (Feb 2019)
- Eureka Software Test Automation Overview (Feb 2019)
- Eureka Automated Testing Playlist (Mar 2017)
- Eureka "How to Write and Run a Test Case" via Selenium (May 2018)
- Eureka Software Test Automation Overview (Mar 2017)
- Eureka "Designing a Keyword Driven Test Automation Framework" (Oct 2015)
- Creating a Test Automation Framework Architecture with Selenium (Nov 2014)
- SmartBear
- Products
- TestComplete
- Overview: Automating Tests of Web Applications with TestComplete (Dec 2010)
- Supported Third Party Controls in addition to ASP, ASP.NET, ColdFusion, PHP, and HTML
- TestLeft
- Types of Testing
- Agile Testing
- Unit Testing
- Functional Testing
- Regression Testing
- Integration Testing
- Keyword Testing
- Data-Driven Testing
- Smoke Testing
- Load Testing
- Test Script vs Test Case vs Test Scenario
No comments:
Post a Comment