Difference between revisions of "Testing"

From BC$ MobileTV Wiki
Jump to: navigation, search
(CBUT)
(Automated)
(126 intermediate revisions by the same user not shown)
Line 93: Line 93:
 
* [[wikipedia: Unit testing]]
 
* [[wikipedia: Unit testing]]
 
* See also: [[jUnit]]
 
* See also: [[jUnit]]
 +
<ref>The Complete Unit Testing Collection (ROUND-UP): https://dzone.com/articles/the-complete-unit-testing-collection</ref>
 
<ref>What does “DAMP not DRY” mean when talking about unit tests?: https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests</ref>
 
<ref>What does “DAMP not DRY” mean when talking about unit tests?: https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests</ref>
 
<ref>Lean Testing or Why Unit Tests are Worse than You Think: https://blog.usejournal.com/lean-testing-or-why-unit-tests-are-worse-than-you-think-b6500139a009</ref>
 
<ref>Lean Testing or Why Unit Tests are Worse than You Think: https://blog.usejournal.com/lean-testing-or-why-unit-tests-are-worse-than-you-think-b6500139a009</ref>
Line 100: Line 101:
 
<ref>Unit testing Bash scripts: https://advancedweb.hu/unit-testing-bash-scripts/</ref>
 
<ref>Unit testing Bash scripts: https://advancedweb.hu/unit-testing-bash-scripts/</ref>
 
<ref>Pragmatic Front-End Testing Strategies: https://medium.com/@toastui/pragmatic-front-end-testing-strategies-1-4a969ab09453</ref>
 
<ref>Pragmatic Front-End Testing Strategies: https://medium.com/@toastui/pragmatic-front-end-testing-strategies-1-4a969ab09453</ref>
 +
<ref>6 Small Unit Testing Tips: https://henrikwarne.com/2020/12/28/6-small-unit-testing-tips/</ref>
 +
<ref>Rethinking Unit Test Assertions with "RITEway wrapper" on top of "Tape" lightweight Unit Testing library: https://medium.com/javascript-scene/rethinking-unit-test-assertions-55f59358253f | [https://github.com/ericelliott/riteway SRC]</ref>
 +
<ref>How I Wish I Had Some Unit Tests! An Example: https://blog.thecodewhisperer.com/permalink/how-i-wish-i-had-some-unit-tests-an-example</ref>
  
 
==== CBUT ====
 
==== CBUT ====
Line 110: Line 114:
 
<ref>Concierge Test .vs. "Wizard of Oz" Test: https://medium.com/@Kromatic/concierge-vs-wizard-of-oz-test-b6d2f71524a</ref>
 
<ref>Concierge Test .vs. "Wizard of Oz" Test: https://medium.com/@Kromatic/concierge-vs-wizard-of-oz-test-b6d2f71524a</ref>
 
<ref>What Type of Lean Startup Experiment Should I Run?: https://grasshopperherder.com/what-type-of-lean-startup-experiment-should-i-run/ (Generative Research .vs. Evaluative Experiment)</ref>
 
<ref>What Type of Lean Startup Experiment Should I Run?: https://grasshopperherder.com/what-type-of-lean-startup-experiment-should-i-run/ (Generative Research .vs. Evaluative Experiment)</ref>
 +
<ref>Testing Storybook Components in Any Browser – Without Writing Any New Tests!: https://applitools.com/blog/storybook-components-cross-browser-testing/ (simple "Test Stack" diagram that actually includes separate "Component Testing" category)</ref>
  
 
==== Mocks ====
 
==== Mocks ====
Line 132: Line 137:
 
<ref>You Don't Hate Mocks; You Hate Side-Effects: https://blog.thecodewhisperer.com/permalink/you-dont-hate-mocks-you-hate-side-effects</ref>
 
<ref>You Don't Hate Mocks; You Hate Side-Effects: https://blog.thecodewhisperer.com/permalink/you-dont-hate-mocks-you-hate-side-effects</ref>
 
<ref>How to Mock in Bash Unit Tests using aliases, functions, and PATH override: https://advancedweb.hu/how-to-mock-in-bash-tests/</ref>
 
<ref>How to Mock in Bash Unit Tests using aliases, functions, and PATH override: https://advancedweb.hu/how-to-mock-in-bash-tests/</ref>
 +
<ref>How to Test Java HTTP Client Usages (e.g. OkHttp, Apache HttpClient): https://rieckpil.de/how-to-test-java-http-client-usages-e-g-okhttp-apache-httpclient/</ref>
 +
<ref>"Wiremock" for RSocket: https://spring.io/blog/2021/06/02/wiremock-for-rsocket (yet another "tricky to Mock" area now covered)</ref>
  
 
=== Functional ===
 
=== Functional ===
Line 153: Line 160:
 
* [[wikipedia: Integration testing]]
 
* [[wikipedia: Integration testing]]
 
* [[wikipedia: System integration testing]]
 
* [[wikipedia: System integration testing]]
 +
<ref>'''Splitting Unit and Integration Tests using Maven & Surefire plugin: https://tech.asimio.net/2019/04/08/Splitting-Unit-and-Integration-Tests-using-Maven-and-Surefire-plugin.html'''</ref>
 
<ref>Integrated Tests Are A Scam: http://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam</ref>
 
<ref>Integrated Tests Are A Scam: http://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam</ref>
 
<ref>The Pitfalls of SIT: https://blog.scottlogic.com/2018/08/20/the-pitfalls-of-sit.html</ref>
 
<ref>The Pitfalls of SIT: https://blog.scottlogic.com/2018/08/20/the-pitfalls-of-sit.html</ref>
 
<ref>System INTEGRATION Testing (SIT): Complete Tutorial: https://www.guru99.com/system-integration-testing.html</ref>
 
<ref>System INTEGRATION Testing (SIT): Complete Tutorial: https://www.guru99.com/system-integration-testing.html</ref>
<ref>What is Integration Testing (Tutorial with Integration Testing Example): https://www.softwaretestinghelp.com/what-is-integration-testing/</ref>
+
<ref>What is Integration Testing (tutorial with Integration Testing example): https://www.softwaretestinghelp.com/what-is-integration-testing/</ref>
 +
<ref>'''Easy Jakarta EE Integration Testing with the Payara Platform and Testcontainers: https://blog.payara.fish/jakarta-ee-integration-testing-with-testcontainers'''</ref>
  
 
==== Smoke ====
 
==== Smoke ====
Line 163: Line 172:
  
 
* [[wikipedia: Smoke testing (software)]]
 
* [[wikipedia: Smoke testing (software)]]
 +
<ref>About the origin of Smoke Testing and the confusion it comes with: https://medium.com/@AikoPath/about-the-origin-of-smoke-testing-and-the-confusion-it-comes-with-dfa18eb8ce0 (origin was either in Electrical Engineering i.e. "turn on your circuit and if you see smoke from any wires, its wrong/bad", or, Mechanical Engineering/plumbing to check for leaks in pipes or buildings by pumping in safe smoke/steam to see if any escapes... or maybe both)</ref>
  
 
==== Automated ====
 
==== Automated ====
Line 169: Line 179:
  
 
* [[wikipedia: Test automation]]<ref>Automated Front-end Testing (PRESENTATION): https://rupl.github.io/frontend-testing/#/</ref><ref>'''Top 15 Benefits of Automated Testing Tools: http://dzone.com/articles/top-15-benefits-of-automated-testing-tools'''</ref>
 
* [[wikipedia: Test automation]]<ref>Automated Front-end Testing (PRESENTATION): https://rupl.github.io/frontend-testing/#/</ref><ref>'''Top 15 Benefits of Automated Testing Tools: http://dzone.com/articles/top-15-benefits-of-automated-testing-tools'''</ref>
 +
* Automation Cookbook: https://applitools.com/cookbook/ (free bite-sized tutorials on test automation)
 
* '''THE INTERNET app: https://the-internet.herokuapp.com/''' (comprehensive "generic" Webpage/WebApp functionality for Automated Testing "training/practice")<ref>PHP Travels: https://phptravels.com/demo/ (sample PHP application for Automated Testing "training/practice")</ref><ref>Address Book example: https://address-book-example.herokuapp.com (good example where all functionality is completely behind Sign Up & Login processes)</ref><ref>Automation Practice (PHP-based) site: http://automationpractice.com/index.php?id_product=1&controller=product</ref><ref>BlazeMeter demo site: http://blazedemo.com/</ref>
 
* '''THE INTERNET app: https://the-internet.herokuapp.com/''' (comprehensive "generic" Webpage/WebApp functionality for Automated Testing "training/practice")<ref>PHP Travels: https://phptravels.com/demo/ (sample PHP application for Automated Testing "training/practice")</ref><ref>Address Book example: https://address-book-example.herokuapp.com (good example where all functionality is completely behind Sign Up & Login processes)</ref><ref>Automation Practice (PHP-based) site: http://automationpractice.com/index.php?id_product=1&controller=product</ref><ref>BlazeMeter demo site: http://blazedemo.com/</ref>
 
<ref>Eradicating Non-Determinism in Tests: https://martinfowler.com/articles/nonDeterminism.html</ref>
 
<ref>Eradicating Non-Determinism in Tests: https://martinfowler.com/articles/nonDeterminism.html</ref>
Line 176: Line 187:
 
<ref>3 ways to get test automation done within your sprints: https://techbeacon.com/app-dev-testing/3-ways-get-test-automation-done-within-your-sprints</ref>
 
<ref>3 ways to get test automation done within your sprints: https://techbeacon.com/app-dev-testing/3-ways-get-test-automation-done-within-your-sprints</ref>
 
<ref>'''Angie Jones presents -- Test Automation Beyond Java 8: https://applitools.com/blog/java-test-automation/'''</ref>
 
<ref>'''Angie Jones presents -- Test Automation Beyond Java 8: https://applitools.com/blog/java-test-automation/'''</ref>
 +
<ref>Using GitHub Copilot to Automate Tests: https://applitools.com/blog/using-github-copilot-to-automate-tests/</ref>
 +
<ref>'''Bad Spin – An Example of Ignoring the Automation Ecosystem: https://responsibleautomation.wordpress.com/2021/07/27/bad-spin-an-example-of-ignoring-the-automation-ecosystem/'''</ref>
 +
<ref>Automation Testing vs. Manual Testing - What's the Difference (side-by-side)?: https://dzone.com/articles/automation-testing-vs-manual-testing-whats-the-dif?edition=738519</ref>
  
 
===== Page Object Pattern =====
 
===== Page Object Pattern =====
Line 198: Line 212:
 
'''Regression Testing''' is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them. The intent of regression testing is to ensure that changes such as those mentioned above have not introduced new faults. One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software. Common methods of regression testing include rerunning previously completed tests and checking whether program behavior has changed and whether previously fixed faults have re-emerged. Regression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change.
 
'''Regression Testing''' is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them. The intent of regression testing is to ensure that changes such as those mentioned above have not introduced new faults. One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software. Common methods of regression testing include rerunning previously completed tests and checking whether program behavior has changed and whether previously fixed faults have re-emerged. Regression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change.
  
 +
* A Comprehensive Guide to Regression Testing: https://applitools.com/blog/regression-testing-guide/?
 
* [[wikipedia: Regression testing]]
 
* [[wikipedia: Regression testing]]
 +
* [[wikipedia: Traceability matrix]] (commonly referred to as "Requirements Traceability Matrix" or ''RTM'')
 
<ref>Measuring Agility and Architectural Integrity: http://walkerroyce.com/PDF/Measuring_Agility.pdf</ref>
 
<ref>Measuring Agility and Architectural Integrity: http://walkerroyce.com/PDF/Measuring_Agility.pdf</ref>
 
+
<ref>What is Regression Testing?: https://www.mabl.com/articles/what-is-regression-testing</ref>
  
 
=== Acceptance ===
 
=== Acceptance ===
Line 255: Line 271:
 
<ref>Things to consider when running visual tests in CI/CD pipelines - Azure Devops & GitHub Actions (Part 2): https://jessicadeen.com/visual-testing-actions-azdevops/</ref>
 
<ref>Things to consider when running visual tests in CI/CD pipelines - Azure Devops & GitHub Actions (Part 2): https://jessicadeen.com/visual-testing-actions-azdevops/</ref>
 
<ref>Things to consider when running visual tests in CI/CD pipelines - Container Pipeline Edition (Part 3): https://jessicadeen.com/visual-test-consider-container/</ref>
 
<ref>Things to consider when running visual tests in CI/CD pipelines - Container Pipeline Edition (Part 3): https://jessicadeen.com/visual-test-consider-container/</ref>
 +
<ref>Visual Test-Driven Development For Responsive Interface Design (using the "Galen framework"): https://www.smashingmagazine.com/2015/04/visual-test-driven-development-responsive-interface-design/</ref>
 +
<ref>Galen framework: https://galenframework.com | [https://galenframework.com/docs/reference-galen-spec-language-guide/#SpecsReference DOCS - syntax] (DSL-based Visual Testing)</ref>
 +
<ref>Applitools Recognized as ‘Major Player’ in IDC MarketScape: Worldwide Cloud Testing 2022 Vendor Assessment: https://applitools.com/blog/applitools-recognized-major-player-idc-marketscape-worldwide-cloud-testing-2022/</ref>
 +
<ref>Applitools Eyes for Storybook: https://github.com/applitools/eyes.sdk.javascript1/tree/master/packages/eyes-storybook</ref>
 +
<ref>Storybook Play Functions Now Supported in Applitools: https://applitools.com/blog/storybook-play-functions-now-supported-in-applitools/</ref>
  
 
==== A/B Testing ====
 
==== A/B Testing ====
Line 268: Line 289:
 
* “Test What Matters: Automated Analytics Testing” – by Marcus Merrell (WEBINAR): https://applitools.com/blog/webinar-recording-test-what-matters-automated-analytics-testing<ref>'''ProxyManager class, for managing your BrowserMob proxy, manipula: ting HAR files, etc https://gist.github.com/mmerrell/f3409f5e9366cb62457f100bc92d46ba'''</ref>
 
* “Test What Matters: Automated Analytics Testing” – by Marcus Merrell (WEBINAR): https://applitools.com/blog/webinar-recording-test-what-matters-automated-analytics-testing<ref>'''ProxyManager class, for managing your BrowserMob proxy, manipula: ting HAR files, etc https://gist.github.com/mmerrell/f3409f5e9366cb62457f100bc92d46ba'''</ref>
 
* '''Puppeteer: https://pptr.dev/ | [https://github.com/puppeteer/puppeteer/ SRC]''' (Puppeteer is an NPM package for NodeJS which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol; it can also be configured to use full (non-headless) Chrome or Chromium)<ref>Google tutorial on Puppeteer: https://developers.google.com/web/tools/puppeteer/</ref><ref>Puppeteer - quick start guide: https://developers.google.com/web/tools/puppeteer/get-started</ref><ref>'''Browser Automation with Puppeteer: https://www.sitepen.com/blog/browser-automation-with-puppeteer/''' (nice recap of Chrome headless command-line run commands)</ref><ref>Headless Testing with Puppeteer: https://dev.to/headlesstesting/headless-testing-with-puppeteer-bbo</ref><ref>Puppeteer with Firefox: https://chercher.tech/puppeteer/puppeteer-with-firefox</ref><ref>Puppeteer .vs. Selenium: https://linuxhint.com/puppeteer_vs_selenium/</ref><ref>The power of Headless Chrome and browser automation (Google I/O '18): https://www.youtube.com/watch?v=lhZOFUY1weo</ref><ref>Puppeteer -- step-by-step tutorial series: https://www.youtube.com/playlist?list=PL-hNDoK1-od_-4jX3ZL8LMpvlxmZ4cp10</ref>
 
* '''Puppeteer: https://pptr.dev/ | [https://github.com/puppeteer/puppeteer/ SRC]''' (Puppeteer is an NPM package for NodeJS which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol; it can also be configured to use full (non-headless) Chrome or Chromium)<ref>Google tutorial on Puppeteer: https://developers.google.com/web/tools/puppeteer/</ref><ref>Puppeteer - quick start guide: https://developers.google.com/web/tools/puppeteer/get-started</ref><ref>'''Browser Automation with Puppeteer: https://www.sitepen.com/blog/browser-automation-with-puppeteer/''' (nice recap of Chrome headless command-line run commands)</ref><ref>Headless Testing with Puppeteer: https://dev.to/headlesstesting/headless-testing-with-puppeteer-bbo</ref><ref>Puppeteer with Firefox: https://chercher.tech/puppeteer/puppeteer-with-firefox</ref><ref>Puppeteer .vs. Selenium: https://linuxhint.com/puppeteer_vs_selenium/</ref><ref>The power of Headless Chrome and browser automation (Google I/O '18): https://www.youtube.com/watch?v=lhZOFUY1weo</ref><ref>Puppeteer -- step-by-step tutorial series: https://www.youtube.com/playlist?list=PL-hNDoK1-od_-4jX3ZL8LMpvlxmZ4cp10</ref>
 +
* A/B Testing Test Automation Guidehttps://blog.testproject.io/2021/02/25/ab-testing-automation-guide/
 
* Testing Google Analytics with PhantomJS: https://www.viget.com/articles/testing-google-analytics-with-phantomjs/ | [https://github.com/nhunzaker/phantomjs_ga SRC]<ref>The Ultimate Unit Testing Cheat-sheet: https://gist.github.com/yoavniran/1e3b0162e1545055429e (for Mocha, Chai & Sinon)</ref><ref>An Overview of JavaScript Testing in 2020: https://medium.com/welldone-software/an-overview-of-javascript-testing-7ce7298b9870</ref>
 
* Testing Google Analytics with PhantomJS: https://www.viget.com/articles/testing-google-analytics-with-phantomjs/ | [https://github.com/nhunzaker/phantomjs_ga SRC]<ref>The Ultimate Unit Testing Cheat-sheet: https://gist.github.com/yoavniran/1e3b0162e1545055429e (for Mocha, Chai & Sinon)</ref><ref>An Overview of JavaScript Testing in 2020: https://medium.com/welldone-software/an-overview-of-javascript-testing-7ce7298b9870</ref>
 
<ref>Applitools Visual Test Automation of A/B Testing cases — Validating Multiple Variations: https://dzone.com/articles/ab-testing-validating-multiple-variations</ref>
 
<ref>Applitools Visual Test Automation of A/B Testing cases — Validating Multiple Variations: https://dzone.com/articles/ab-testing-validating-multiple-variations</ref>
 
<ref>10 Best A/B and Multivariate Testing Tools for Conversion Rate Optimization: https://uxplanet.org/10-best-a-b-and-multivariate-testing-tools-for-conversion-rate-optimization-d5f461f06a1d</ref>
 
<ref>10 Best A/B and Multivariate Testing Tools for Conversion Rate Optimization: https://uxplanet.org/10-best-a-b-and-multivariate-testing-tools-for-conversion-rate-optimization-d5f461f06a1d</ref>
 +
<ref>'''Selecting the best artwork for videos through A/B testing: https://netflixtechblog.com/selecting-the-best-artwork-for-videos-through-a-b-testing-f6155c4595f6'''</ref>
 +
<ref>Decision Making at Netflix: https://netflixtechblog.com/decision-making-at-netflix-33065fa06481</ref>
 +
<ref>Quasi Experimentation at Netflix: https://netflixtechblog.com/quasi-experimentation-at-netflix-566b57d2e362</ref>
 +
<ref>What is an A/B Test? (how Netflix thinks about them anyway): https://netflixtechblog.com/what-is-an-a-b-test-b08cc1b57962</ref>
 +
<ref>Interpreting A/B test results - false positives and statistical significance: https://netflixtechblog.com/interpreting-a-b-test-results-false-positives-and-statistical-significance-c1522d0db27a</ref>
 +
<ref>Experimentation is a major focus of Data Science across Netflix: https://netflixtechblog.com/experimentation-is-a-major-focus-of-data-science-across-netflix-f67923f8e985</ref>
 +
<ref>From weeks to seconds - building “mega-assets” to uncover joyful moments!: https://netflixtechblog.medium.com/from-weeks-to-seconds-building-mega-assets-to-uncover-joyful-moments-b3cedcf37ffc (testing/optimizing thumbnail variations)</ref>
  
=== Mobile ===
+
=== Mobile Testing ===
  
 
* [[wikipedia: Mobile application testing]]
 
* [[wikipedia: Mobile application testing]]
Line 281: Line 310:
 
* '''Introducing MAD LAB - for Mobile Automation: https://essenceoftesting.blogspot.ca/2017/04/introducing-mad-lab-for-mobile.html<ref>A new beginning - entertainment on mobile: https://essenceoftesting.blogspot.in/2016/12/a-new-beginning-entertainment-on-mobile.html</ref><ref>How to enable seamless running of appium tests on developer machines?: https://essenceoftesting.blogspot.in/2016/12/how-to-enable-seamless-running-of.html</ref><ref>Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.in/2017/02/features-of-my-android-test-automation.html</ref><ref>How to upgrade the appium-uiautomator2-driver version for appium 1.6.3?: https://essenceoftesting.blogspot.in/2017/02/how-to-upgrade-appium-uiautomator2.html</ref><ref>Finding my way out of bottomless pit with Appium & Android 7.0 for parallel test runs: https://essenceoftesting.blogspot.in/2017/02/finding-my-way-out-of-bottomless-pit.html</ref><ref>Sharing implementation of ''cucumber-jvm'' - Appium test framework: https://essenceoftesting.blogspot.in/2017/02/sharing-implementation-of-cucumber-jvm.html</ref><ref>Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.ca/2017/02/features-of-my-android-test-automation.html</ref>
 
* '''Introducing MAD LAB - for Mobile Automation: https://essenceoftesting.blogspot.ca/2017/04/introducing-mad-lab-for-mobile.html<ref>A new beginning - entertainment on mobile: https://essenceoftesting.blogspot.in/2016/12/a-new-beginning-entertainment-on-mobile.html</ref><ref>How to enable seamless running of appium tests on developer machines?: https://essenceoftesting.blogspot.in/2016/12/how-to-enable-seamless-running-of.html</ref><ref>Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.in/2017/02/features-of-my-android-test-automation.html</ref><ref>How to upgrade the appium-uiautomator2-driver version for appium 1.6.3?: https://essenceoftesting.blogspot.in/2017/02/how-to-upgrade-appium-uiautomator2.html</ref><ref>Finding my way out of bottomless pit with Appium & Android 7.0 for parallel test runs: https://essenceoftesting.blogspot.in/2017/02/finding-my-way-out-of-bottomless-pit.html</ref><ref>Sharing implementation of ''cucumber-jvm'' - Appium test framework: https://essenceoftesting.blogspot.in/2017/02/sharing-implementation-of-cucumber-jvm.html</ref><ref>Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.ca/2017/02/features-of-my-android-test-automation.html</ref>
 
* The iOS Testing Manifesto: https://medium.com/@hesham.salman/the-ios-testing-manifesto-e1bc821cc4c3
 
* The iOS Testing Manifesto: https://medium.com/@hesham.salman/the-ios-testing-manifesto-e1bc821cc4c3
 +
 +
==== Open Device Labs ====
 +
 +
* Open Device Labs: https://opendevicelab.com/
 +
* Where Are The World's Best Open Device Labs?: https://www.smashingmagazine.com/2016/11/worlds-best-open-device-labs/
 +
<ref>How To Establish An Open Device Lab For Better Mobile TestingL https://www.smashingmagazine.com/2012/09/establishing-an-open-device-lab/</ref>
 +
<ref>Testing Mobile -- Emulators, Simulators And Remote Debugging: https://www.smashingmagazine.com/2014/09/testing-mobile-emulators-simulators-remote-debugging/</ref>
 +
<ref>Test on Real Mobile Devices without Breaking the Bank: https://bradfrost.com/blog/post/test-on-real-mobile-devices-without-breaking-the-bank/</ref>
 +
<ref>An Experience Report Building a Mobile Automated Test Lab With SOASTA TouchTest: evolvingtowardagile.blogspot.com/2013/04/an-experience-report-building-mobile.html</ref>
 +
<ref>3 Ways to run Automated Tests on Azure DevOps: https://blog.techfabric.com/3-ways-to-run-automated-tests-on-azure-devops/</ref>
 +
* What is Azure Load Testing Preview?: https://docs.microsoft.com/en-us/azure/load-testing/overview-what-is-azure-load-testing
 +
<ref>Microsoft Introduces a Fully-Managed Azure Load Testing Service in Preview : https://www.infoq.com/news/2021/12/azure-load-testing-preview/</ref>
  
 
==== Layout ====
 
==== Layout ====
Line 288: Line 329:
 
* '''Galen Framework: http://galenframework.com''' (Galen is the leading [[OSS]] ''Layout Testing'' framework)
 
* '''Galen Framework: http://galenframework.com''' (Galen is the leading [[OSS]] ''Layout Testing'' framework)
  
 +
 +
=== Accessibility ===
 +
 +
Accessibility Testing is checking for any potential or known [[A11Y]] blockers, such as (but not limited to) those defined by [[WCAG]].
 +
 +
* See also: [[A11Y]]
 +
* Accessibility Testing With Selenium Webdriver with code example: https://www.softwaretestinghelp.com/accessibility-testing-with-selenium/
 +
<ref>Shifting Accessibility Testing to the Left: https://applitools.com/blog/shifting-accessibility-testing-to-the-left/</ref>
 +
<ref>'''Mobile-Accessibility Testing Toolbox (iOS & Android): https://www.tpgi.com/on-demand-webinar-mobile-accessibility-testing-toolbox-2'''</ref>
  
 
=== Performance ===
 
=== Performance ===
Line 303: Line 353:
 
<ref>'''Top Performance Metrics for Java, .NET, PHP, Node.js, and Python: https://dzone.com/articles/top-performance-metrics-for-java-net-php-nodejs-an'''</ref>
 
<ref>'''Top Performance Metrics for Java, .NET, PHP, Node.js, and Python: https://dzone.com/articles/top-performance-metrics-for-java-net-php-nodejs-an'''</ref>
 
<ref>Automated Performance Tests in Jenkins CI Environments: http://dzone.com/articles/automated-performance-tests-in-jenkins-ci-environm</ref>
 
<ref>Automated Performance Tests in Jenkins CI Environments: http://dzone.com/articles/automated-performance-tests-in-jenkins-ci-environm</ref>
 +
<ref>Measuring Web Page Performance with Selenium 2 and the Web Timings API: http://deanhume.com/measuring-web-page-performance-with-selenium-2-and-the-web-timings-api/</ref>
  
 
==== Load Testing ====
 
==== Load Testing ====
Line 308: Line 359:
 
* [[wikipedia: Load testing]]
 
* [[wikipedia: Load testing]]
 
<ref>'''SOAK TEST – A PRACTICAL EXAMPLE: https://octoperf.com/blog/2019/02/21/soak-test-practical-example/'''</ref>
 
<ref>'''SOAK TEST – A PRACTICAL EXAMPLE: https://octoperf.com/blog/2019/02/21/soak-test-practical-example/'''</ref>
 +
<ref>A Beginner’s Guide to Interpreting Load Test Results: https://www.redline13.com/blog/2021/04/a-beginners-guide-to-interpreting-load-test-results/</ref>
  
 
=== Penetration Testing ===
 
=== Penetration Testing ===
Line 315: Line 367:
 
* [[wikipedia: Penetration testing]]
 
* [[wikipedia: Penetration testing]]
 
* "Awesome Hacking" list of links to useful PenTest/Hacking resources: https://github.com/Hack-with-Github/Awesome-Hacking
 
* "Awesome Hacking" list of links to useful PenTest/Hacking resources: https://github.com/Hack-with-Github/Awesome-Hacking
 +
* OAuth 2.0 Threat Model Penetration Testing checklist: https://www.binarybrotherhood.io/oauth2_threat_model.html
 +
<ref>'''Tamper Dev: https://tamper.dev''' | [https://www.youtube.com/watch?v=drY7U2jEQOM DEMO] (extension to edit HTTP/HTTPS requests & responses as they happen without need of a proxy)</ref>
 
<ref>Top 10 Free Hacking Tools for Penetration Testers: https://dzone.com/articles/top-10-free-hacking-tools-for-penetration-testers</ref>
 
<ref>Top 10 Free Hacking Tools for Penetration Testers: https://dzone.com/articles/top-10-free-hacking-tools-for-penetration-testers</ref>
 +
<ref>PortDog - Simple Python Script to Detect Port Scanning Techniques: https://www.kitploit.com/2015/08/portdog-simple-python-script-to-detect.html</ref>
 
<ref>REST API Security -- Pen Tests: https://dzone.com/articles/rest-api-security-tests-pen-test</ref>
 
<ref>REST API Security -- Pen Tests: https://dzone.com/articles/rest-api-security-tests-pen-test</ref>
 
<ref>9 Load Testing Best Practices (Don’t Make These Mistakes): https://testguild.com/best-load-testing/</ref>
 
<ref>9 Load Testing Best Practices (Don’t Make These Mistakes): https://testguild.com/best-load-testing/</ref>
 
<ref>API path discovery and more PenTesting tips with Chrome Developer Tools: https://www.youtube.com/watch?v=Y1S5s3FmFsI</ref>
 
<ref>API path discovery and more PenTesting tips with Chrome Developer Tools: https://www.youtube.com/watch?v=Y1S5s3FmFsI</ref>
 
<ref>Introduction to GraphQL pentesting: https://www.youtube.com/watch?v=OQCgmftU-Og</ref>
 
<ref>Introduction to GraphQL pentesting: https://www.youtube.com/watch?v=OQCgmftU-Og</ref>
 +
<ref>My Favorite Pentest Tools (Top 15): https://medium.com/geekculture/my-favorite-pentest-tools-top-15-52e923d77d45</ref>
 +
<ref>Penetration Testing To Prevent API Attack: https://outpost24.com/blog/Penetration-testing-to-prevent-API-attack</ref>
  
  
Line 348: Line 405:
 
* [[wikipedia: Five Ws]] (aka. 5 questioons... ''Who'', ''What'', ''When'', ''Where'', ''Why''... bonus question for brainstorming/problem-solving is ''How'')
 
* [[wikipedia: Five Ws]] (aka. 5 questioons... ''Who'', ''What'', ''When'', ''Where'', ''Why''... bonus question for brainstorming/problem-solving is ''How'')
 
* [[wikipedia: 5 Whys]] (aka. '''Why?''' five times... each one getting closer to the root cause and sufficient information to then form solutions)
 
* [[wikipedia: 5 Whys]] (aka. '''Why?''' five times... each one getting closer to the root cause and sufficient information to then form solutions)
 +
 +
<ref>QA best practices -- How to Do Smart TV Application Testing Right: https://stage-red.exadel.com/news/qa-best-practices-how-to-do-smart-tv-application-testing-right/</ref>
  
 
=== Continuous Testing ===
 
=== Continuous Testing ===
Line 383: Line 442:
 
<ref>TDD Classic State Based UI (an example in Java+Swing): http://blog.code-cop.org/2020/02/tdd-classic-state-based-ui.html</ref>
 
<ref>TDD Classic State Based UI (an example in Java+Swing): http://blog.code-cop.org/2020/02/tdd-classic-state-based-ui.html</ref>
 
<ref>A Natural Microflow in TDD: https://blog.thecodewhisperer.com/permalink/a-natural-microflow-in-tdd (sometimes ''Red-Green-Refactor-Refactor-RemoveTests'' is ok too)</ref>
 
<ref>A Natural Microflow in TDD: https://blog.thecodewhisperer.com/permalink/a-natural-microflow-in-tdd (sometimes ''Red-Green-Refactor-Refactor-RemoveTests'' is ok too)</ref>
 +
<ref>How TDD Can Prevent Over-Engineering (on the front-end too): https://itnext.io/how-tdd-can-prevent-over-engineering-1265a02f8863</ref>
  
 
===== ATDD =====
 
===== ATDD =====
Line 415: Line 475:
 
<ref>Behaviour-Driven Development: https://www.future-processing.pl/blog/behaviour-driven-development/</ref>
 
<ref>Behaviour-Driven Development: https://www.future-processing.pl/blog/behaviour-driven-development/</ref>
 
<ref>What are the different Agile Testing Methodology? Test Driven Development, Behavior Driven Development: http://istqbexamcertification.com/what-are-the-different-agile-testing-methodology-test-driven-development-behavior-driven-development/</ref>
 
<ref>What are the different Agile Testing Methodology? Test Driven Development, Behavior Driven Development: http://istqbexamcertification.com/what-are-the-different-agile-testing-methodology-test-driven-development-behavior-driven-development/</ref>
 +
<ref>What is BDD and What Does It Mean for Testers?: https://dzone.com/articles/what-is-bdd-and-what-does-it-mean-for-testers-abst</ref>
 
* Cucumber: https://www.cucumber.io
 
* Cucumber: https://www.cucumber.io
 
<ref>'''TDD and BDD in Java 8 - what's in it for me?: https://www.slideshare.net/wakaleo/tdd-and-bdd-in-java-8-whats-in-it-for-me'''</ref>
 
<ref>'''TDD and BDD in Java 8 - what's in it for me?: https://www.slideshare.net/wakaleo/tdd-and-bdd-in-java-8-whats-in-it-for-me'''</ref>
Line 421: Line 482:
 
<ref>Do you really need that Cucumber with your Selenium?: https://www.ontestautomation.com/do-you-really-need-that-cucumber-with-your-selenium/</ref>
 
<ref>Do you really need that Cucumber with your Selenium?: https://www.ontestautomation.com/do-you-really-need-that-cucumber-with-your-selenium/</ref>
 
<ref>'''Cucumber BDD Automated Acceptance Testing example''': https://www.katalon.com/resources-center/blog/cucumber-bdd-automation-testing/</ref>
 
<ref>'''Cucumber BDD Automated Acceptance Testing example''': https://www.katalon.com/resources-center/blog/cucumber-bdd-automation-testing/</ref>
 +
<ref>Gherkin Reference: https://cucumber.io/docs/gherkin/reference/</ref>
 +
<ref>Using “Given-When-Then” to Discover and Validate Requirements: https://www.ebgconsulting.com/blog/using-given-when-then-to-discover-and-validate-requirements-2/</ref>
 
<ref>Behavior Driven Development - BDD (YOUTUBE PLAYLIST): https://www.youtube.com/playlist?list=PLngnoZX8cAn9kbu_bI_YUCZIkrcyIG_M6</ref>
 
<ref>Behavior Driven Development - BDD (YOUTUBE PLAYLIST): https://www.youtube.com/playlist?list=PLngnoZX8cAn9kbu_bI_YUCZIkrcyIG_M6</ref>
 
<ref>To-Do app to demonstrate "SubSecond" BDD Framework tests: https://github.com/subsecondtdd/todo-subsecond</ref>
 
<ref>To-Do app to demonstrate "SubSecond" BDD Framework tests: https://github.com/subsecondtdd/todo-subsecond</ref>
 
<ref>'''Acceptance Criteria -- Purposes, Formats, and Best Practices: https://www.altexsoft.com/blog/business/acceptance-criteria-purposes-formats-and-best-practices/'''</ref>
 
<ref>'''Acceptance Criteria -- Purposes, Formats, and Best Practices: https://www.altexsoft.com/blog/business/acceptance-criteria-purposes-formats-and-best-practices/'''</ref>
 
<ref>Hybrid Development - The Value at the Intersection of TDD, DDD & BDD: https://dzone.com/articles/hybrid-development-with-tdd-ddd-bdd</ref>
 
<ref>Hybrid Development - The Value at the Intersection of TDD, DDD & BDD: https://dzone.com/articles/hybrid-development-with-tdd-ddd-bdd</ref>
 +
<ref>'''Examples to show different ways of creating Cucumber feature files (spec converted to Java): https://medium.com/@bcarunmail/examples-to-show-different-ways-of-creating-cucumber-feature-files-dbe8c04366bc'''</ref>
 +
<ref>Specify Business Rules by Example: https://itsadeliverything.com/specifying-business-rules-by-example</ref>
 +
<ref>Modern Best Practices for Testing in Java: https://phauer.com/2019/modern-best-practices-testing-java/</ref>
 +
<ref>BDD - Writing an Automated Test Suite Isn’t Rocket Science: https://betterprogramming.pub/bdd-writing-a-test-suite-before-writing-code-6279e4cf4be6</ref>
 +
<ref>What BDD Is and Why You Need It -- Java & Behavior Driven Development: https://dzone.com/articles/java-bdd-simple-and-clear-with-examples | [https://github.com/isicju/bdd_cucumber_tutorial SRC]</ref>
 +
<ref>Introducing Protocol-Oriented BDD in Swift for iOS Apps (Part 1): https://dzone.com/articles/introducing-protocol-oriented-bdd-in-swift-for-ios</ref>
  
  
===== DDT =====
+
===== Three Amigos =====
 +
 
 +
The "Three Amigos" model for building "Acceptance Criteria" that inform any Test Suites, Test Cases, Test Steps and/or Test Scenarios and clearly define the testing that QA and/or Business Acceptance Testers carry out.
 +
 
 +
[[File:Agile_3-amigos.png]]
 +
 
 +
* '''AgileAlliance -- 3 amigos: https://www.agilealliance.org/glossary/three-amigos/''' (Business owner/analyst/product-owner, Developer, Tester)
 +
* Three Amigos in the World of Agile: http://www.edgetesting.co.uk/news-events/blog/three-amigos-in-the-world-of-agile
 +
* What are the Three Amigos Development Strategy in Agile?: https://www.visual-paradigm.com/scrum/agile-three-amigos-development-strategy/
 +
<ref>Behavior Driven Development with 3 Amigo’s task: https://pritamsen.wordpress.com/2014/05/07/behavior-driven-development-with-3-amigos-task/</ref>
 +
<ref>Agile product delivery - the Three Amigos approach: https://www.lendinvest.com/blog/product-delivery-the-three-amigos-approach/</ref>
 +
<ref>The importance of three amigos in agile!: https://www.devopsonline.co.uk/the-importance-of-three-amigos-in-agile/</ref>
 +
<ref>The 3 Amigos Meeting: https://awhnet.medium.com/the-3-amigos-meeting-one-meeting-is-all-you-need-8af8b4a58ba2</ref>
 +
<ref>Three Amigos Meeting – Agree the tests before development starts: https://itsadeliverything.com/three-amigos-meeting-agree-the-tests-before-development-starts</ref>
 +
<ref>3 Amigos – Bytesize Agile (VIDEO): https://www.scrum.org/resources/blog/3-amigos-bytesize-agile</ref>
 +
 
 +
==== DDT ====
  
 
'''D'''ata-'''D'''riven '''T'''esting is the loading of initialization values and/or test case input parameters from a source external to the Test(s) such as a properties file, CSV/TSV file, XML/JSON data, or some other form of configuration.
 
'''D'''ata-'''D'''riven '''T'''esting is the loading of initialization values and/or test case input parameters from a source external to the Test(s) such as a properties file, CSV/TSV file, XML/JSON data, or some other form of configuration.
Line 456: Line 541:
  
 
* [[wikipedia: Code review]]
 
* [[wikipedia: Code review]]
 +
* [[wikipedia: Software technical review]]
 
* '''Code Review guidelines: https://docs.google.com/document/d/101FGZ0B1QqrPKl5F9x9-2vpr4xm6ku8sGqG1nALRwKA/edit'''<ref>5 Code Review Tricks the Experts Use - Based on 3.2 Million Lines of Code: http://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m (based on Cisco & OverOps commissioned studies)</ref>
 
* '''Code Review guidelines: https://docs.google.com/document/d/101FGZ0B1QqrPKl5F9x9-2vpr4xm6ku8sGqG1nALRwKA/edit'''<ref>5 Code Review Tricks the Experts Use - Based on 3.2 Million Lines of Code: http://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m (based on Cisco & OverOps commissioned studies)</ref>
 
* Code Review tips: https://github.com/ryanmcdermott/code-review-tips#basics
 
* Code Review tips: https://github.com/ryanmcdermott/code-review-tips#basics
Line 475: Line 561:
 
<ref>Lightweight Code Review -- Episode 4 - The Largest Case Study of CodeReview, Ever: https://support.smartbear.com/support/media/resources/cc/Episode_4_TheLargestCaseStudyOfCodeReviewEver.pdf</ref>
 
<ref>Lightweight Code Review -- Episode 4 - The Largest Case Study of CodeReview, Ever: https://support.smartbear.com/support/media/resources/cc/Episode_4_TheLargestCaseStudyOfCodeReviewEver.pdf</ref>
 
<ref>Code Review study developed by OverOps & Cisco's 10-month studies on Code Review processes: https://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m</ref>
 
<ref>Code Review study developed by OverOps & Cisco's 10-month studies on Code Review processes: https://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m</ref>
<ref>The Code Review: The Most Important Developer Practice : https://dzone.com/articles/the-most-important-developer-practice</ref>
+
<ref>The Code Review - The Most Important Developer Practice: https://dzone.com/articles/the-most-important-developer-practice</ref>
 +
<ref>Why code reviews matter (and actually save time!): https://www.atlassian.com/agile/software-development/code-reviews</ref>
 
<ref>Atlassian - The (written) unwritten guide to pull requests: https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests</ref>
 
<ref>Atlassian - The (written) unwritten guide to pull requests: https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests</ref>
 
<ref>Atlassian - Making a Pull Request: https://www.atlassian.com/git/tutorials/making-a-pull-request</ref>
 
<ref>Atlassian - Making a Pull Request: https://www.atlassian.com/git/tutorials/making-a-pull-request</ref>
Line 501: Line 588:
 
<ref>How to Do Code Reviews Like a Human Pt2: https://mtlynch.io/human-code-reviews-2/</ref>
 
<ref>How to Do Code Reviews Like a Human Pt2: https://mtlynch.io/human-code-reviews-2/</ref>
 
<ref>What does it mean to write “good code”?: https://softwareengineering.stackexchange.com/questions/17443/what-does-it-mean-to-write-good-code (WTFs per minute)</ref>
 
<ref>What does it mean to write “good code”?: https://softwareengineering.stackexchange.com/questions/17443/what-does-it-mean-to-write-good-code (WTFs per minute)</ref>
 +
<ref>Code Review Best Practices: https://blog.palantir.com/code-review-best-practices-19e02780015f</ref>
 
<ref>Modern Code Review -- A Case Study at Google: https://www.zora.uzh.ch/id/eprint/152982/1/icse2018seip.pdf</ref>
 
<ref>Modern Code Review -- A Case Study at Google: https://www.zora.uzh.ch/id/eprint/152982/1/icse2018seip.pdf</ref>
 
<ref>CodeFlow -- Improving the Code Review Process at Microsoft: https://queue.acm.org/detail.cfm?id=3292420</ref>
 
<ref>CodeFlow -- Improving the Code Review Process at Microsoft: https://queue.acm.org/detail.cfm?id=3292420</ref>
 
<ref>How 680 Developers Say We Can Increase Code Quality: https://hackernoon.com/how-680-developers-say-we-can-increase-code-quality-339908809d19</ref>
 
<ref>How 680 Developers Say We Can Increase Code Quality: https://hackernoon.com/how-680-developers-say-we-can-increase-code-quality-339908809d19</ref>
<ref>How one code review rule turned my team into a dream team: https://medium.com/inside-league/how-one-code-review-rule-turned-my-team-into-a-dream-team-fdb172799d11 (if PR is for a bug fix, change must include a Unit Test or other test that will catch a future breakage)</ref>
+
<ref>How one (of 4 core) code review rule(s) turned my team into a dream team: https://medium.com/inside-league/how-one-code-review-rule-turned-my-team-into-a-dream-team-fdb172799d11 (Rule#4 - if PR is for a bug fix, change must include a Unit Test or other test that will catch a future breakage)</ref>
 +
<ref>The 8-Part Guide to Better Code Review Checklists: https://dzone.com/articles/the-8-part-guide-to-better-code-review-checklists</ref>
 +
<ref>9 Best Practices for Effective Code Review: https://dzone.com/articles/9-best-practices-for-effective-code-review?edition=671395</ref>
 +
<ref>Guidelines for Java Code Reviews: https://dzone.com/articles/guidelines-for-java-code-reviews</ref>
 +
<ref>9 Best Practices for Effective Code Review: https://leobit.com/blog/effective-code-review-best-practices/</ref>
 +
<ref>Don’t do Code Review, try Mob instead: https://medium.com/verotel/dont-do-code-review-try-mob-instead-82149ef035df</ref>
 +
 
  
 
==== Software Composition Analysis ====
 
==== Software Composition Analysis ====
Line 511: Line 605:
 
===== Static Code Analysis =====
 
===== Static Code Analysis =====
  
Static Code Analysis is one of the main disciplines of the broader Software Composition Analysis (SCA) which focuses on code syntax, spacing, variable naming, and quality markers such as closing connections, prevention of memory leaks, detecting coding efficiency anti-patterns, etc.
+
'''S'''tatic '''C'''ode '''A'''nalysis (''SCA'') is one of the main disciplines of the broader Software Composition Analysis (SCA) which focuses on code syntax, spacing, variable naming, and quality markers such as closing connections, prevention of memory leaks, detecting coding efficiency anti-patterns, etc.
  
 
'''Frontend'''
 
'''Frontend'''
Line 545: Line 639:
 
JS minification
 
JS minification
 
  java -jar yuicompressor-x.y.z.jar -v main.js -o main.min.js
 
  java -jar yuicompressor-x.y.z.jar -v main.js -o main.min.js
 +
 +
<ref>Minify Javascript and CSS with YUI Compressor: https://electrictoolbox.com/minify-javascript-css-yui-compressor/</ref>
  
 
Node.JS Unit Testing (optional... WIP)
 
Node.JS Unit Testing (optional... WIP)
 
  npm-run-all test:*
 
  npm-run-all test:*
  
* [[wikipedia: List_of_tools_for_static_code_analysis#Java]]
+
 
 +
* [[wikipedia: List_of_tools_for_static_code_analysis#Java]] (SCA tools)
 +
* OWASP - Source Code Analysis (SCA) tools: https://owasp.org/www-community/Source_Code_Analysis_Tools
 
* '''EditorConfig spec: https://editorconfig.org''' | [https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties DOCS] (helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs)
 
* '''EditorConfig spec: https://editorconfig.org''' | [https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties DOCS] (helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs)
 
* PMD: https://pmd.github.io/ | [https://pmd.sourceforge.io/pmd-5.4.1/usage/running.html DOCS - CLI]<ref>'''Apache Maven plugin - PMD: https://maven.apache.org/plugins/maven-pmd-plugin/'''</ref><ref>PMD-Jenkins -- how to use it: https://stackoverflow.com/questions/17294515/pmd-jenkins-how-to-use-it</ref><ref>PMD Eclipse Tutorial: https://www.javatips.net/blog/pmd-in-eclipse-tutorial?view=all</ref><ref>'''Running all PMD rulesets from command line: https://stackoverflow.com/questions/23116108/running-all-pmd-rulesets-from-command-line'''</ref><ref>How to generate reports in PMD using:  Command Linehttps://stackoverflow.com/questions/9682149/how-to-generate-reports-in-pmd-using-command-line</ref>
 
* PMD: https://pmd.github.io/ | [https://pmd.sourceforge.io/pmd-5.4.1/usage/running.html DOCS - CLI]<ref>'''Apache Maven plugin - PMD: https://maven.apache.org/plugins/maven-pmd-plugin/'''</ref><ref>PMD-Jenkins -- how to use it: https://stackoverflow.com/questions/17294515/pmd-jenkins-how-to-use-it</ref><ref>PMD Eclipse Tutorial: https://www.javatips.net/blog/pmd-in-eclipse-tutorial?view=all</ref><ref>'''Running all PMD rulesets from command line: https://stackoverflow.com/questions/23116108/running-all-pmd-rulesets-from-command-line'''</ref><ref>How to generate reports in PMD using:  Command Linehttps://stackoverflow.com/questions/9682149/how-to-generate-reports-in-pmd-using-command-line</ref>
Line 564: Line 662:
 
* YUI Compressor: http://yui.github.io/yuicompressor/<ref>Compressing JS & CSS files using YUI compressor: https://stackoverflow.com/questions/24858977/compressing-js-and-css-files-using-yui-compressor</ref><ref>How to automate JavaScript files compression with YUI Compressor?: https://stackoverflow.com/questions/227288/how-to-automate-javascript-files-compression-with-yui-compressor</ref><ref>How to use YUI Compressor in Ant build script for Javascript & CSS: https://stackoverflow.com/questions/16595802/how-to-use-yui-compressor-in-ant-build-script-for-javascript-and-css</ref><ref>Minifying JS/CSS: http://wiki.ubik-ingenierie.com/ubikwiki/index.php?title=Minifying_JS/CSS</ref>
 
* YUI Compressor: http://yui.github.io/yuicompressor/<ref>Compressing JS & CSS files using YUI compressor: https://stackoverflow.com/questions/24858977/compressing-js-and-css-files-using-yui-compressor</ref><ref>How to automate JavaScript files compression with YUI Compressor?: https://stackoverflow.com/questions/227288/how-to-automate-javascript-files-compression-with-yui-compressor</ref><ref>How to use YUI Compressor in Ant build script for Javascript & CSS: https://stackoverflow.com/questions/16595802/how-to-use-yui-compressor-in-ant-build-script-for-javascript-and-css</ref><ref>Minifying JS/CSS: http://wiki.ubik-ingenierie.com/ubikwiki/index.php?title=Minifying_JS/CSS</ref>
 
* Microsoft Edge's "static code scan" website scanning tool: https://github.com/MicrosoftEdge/static-code-scan
 
* Microsoft Edge's "static code scan" website scanning tool: https://github.com/MicrosoftEdge/static-code-scan
 +
* CodeMR: https://www.codemr.co.uk/ | [https://www.codemr.co.uk/case-reports/spring-framework/html/html_report_spring-core/htmlx/lbd/dashboard.html EXAMPLE - Spring Framework]<ref>A Case Study on Spring Framework: https://dzone.com/articles/a-case-study-on-spring-framework</ref>
 
* '''Jenkins plugins -- Static Code Analysis: https://wiki.jenkins.io/display/JENKINS/Static+Code+Analysis+Plug-ins''' (aggregation tool that depends on other Linters/Analyzers such as PMD, Findbugs, Checkstyle, OWASP Dependency Checker, etc)
 
* '''Jenkins plugins -- Static Code Analysis: https://wiki.jenkins.io/display/JENKINS/Static+Code+Analysis+Plug-ins''' (aggregation tool that depends on other Linters/Analyzers such as PMD, Findbugs, Checkstyle, OWASP Dependency Checker, etc)
 
<ref>'''Automate Your Code Reviews with Static Code Analysis: https://blog.codacy.com/automate-your-code-reviews-with-static-code-analysis-7d8ab0c81b03'''</ref>
 
<ref>'''Automate Your Code Reviews with Static Code Analysis: https://blog.codacy.com/automate-your-code-reviews-with-static-code-analysis-7d8ab0c81b03'''</ref>
Line 571: Line 670:
 
<ref>Review of CSS Linting Tools: https://blog.codacy.com/review-of-css-linting-tools-760ae1baade2</ref>
 
<ref>Review of CSS Linting Tools: https://blog.codacy.com/review-of-css-linting-tools-760ae1baade2</ref>
 
<ref>10 CSS and JavaScript Linting Tools for Code Optimization: https://www.hongkiat.com/blog/code-optimization-css-js-linting-tools/</ref>
 
<ref>10 CSS and JavaScript Linting Tools for Code Optimization: https://www.hongkiat.com/blog/code-optimization-css-js-linting-tools/</ref>
 +
<ref>How to Analyze Your Code Quality in 10 Minutes With Sonarqube and its Docker container: https://dzone.com/articles/how-to-analyze-your-code-quality-in-10-minutes-wit</ref>
 
<ref>SonarQube SCA rules: [https://rules.sonarsource.com/java/ JAVA]</ref>
 
<ref>SonarQube SCA rules: [https://rules.sonarsource.com/java/ JAVA]</ref>
 
<ref>Using SonarQube to Analyze a Java Project: https://medium.com/linagora-engineering/using-sonarqube-to-analyze-a-java-project-abeee15e3779</ref>
 
<ref>Using SonarQube to Analyze a Java Project: https://medium.com/linagora-engineering/using-sonarqube-to-analyze-a-java-project-abeee15e3779</ref>
 
<ref>How to configure Fortify SCA with Jenkin Build Server and Fortify SSC?: https://fortify-maven.blogspot.com/2016/07/how-to-configure-fortify-sca-with.html</ref>
 
<ref>How to configure Fortify SCA with Jenkin Build Server and Fortify SSC?: https://fortify-maven.blogspot.com/2016/07/how-to-configure-fortify-sca-with.html</ref>
 +
<ref>Configuring a Project to Exclude Certain Sonar Violations: https://www.baeldung.com/sonar-exclude-violations</ref>
 +
<ref>Comparing 9 Code Quality tools: https://dzone.com/articles/comparing-9-code-quality-tools-of-2020</ref>
 +
<ref>Semgrep -- lightweight, ultra-fast, OSS static analysis tool to find bugs & enforce code standards: https://semgrep.dev | [https://semgrep.dev/docs/ DOCS] | [https://semgrep.dev/docs/integrations/#standalone-providers INTEGRATIONS]</ref>
 +
<ref>The Forrester Wave™: Software Composition Analysis, Q3 2021: https://reprints2.forrester.com/#/assets/2/425/RES176091/report</ref>
 +
<ref>[[wikipedia: Semgrep]]</ref>
 +
<ref>SemGrep: https://semgrep.dev | [https://github.com/returntocorp/semgrep SRC]</ref>
  
==== Refactors ====
+
==== Refactoring ====
  
 
* [[wikipedia: Code refactoring]]
 
* [[wikipedia: Code refactoring]]
* Lessons from 6 software rewrite stories: https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22
+
* Catalogue of Refactoring approaches: https://www.refactoring.com/catalog/
 +
* What Refactoring is, and what it isn’t - According to Kent Beck and Martin Fowler: http://www.troyhunt.com/2011/05/10-commandments-of-good-source-control.html<ref>Dzone backup of "What Refactoring is, and what it isn’t" article: http://agile.dzone.com/articles/what-refactoring-and-what-it-0</ref>
 
* Package by Feature: https://phauer.com/2020/package-by-feature/
 
* Package by Feature: https://phauer.com/2020/package-by-feature/
 +
<ref>Refactoring -- Green field - new tech stack should fix everything: https://bonkersworld.net/building-software (often the same anti-patterns are repeated)</ref>
 +
<ref>Refactoring -- Brown field - The Hidden Dangers of Refactoring: https://toggl.com/blog/hidden-dangers-refactoring</ref>
 +
<ref>Refactoring -- Blue/Grey field - Strangler Fig Pattern: https://imgur.com/a/t57dm58</ref>
 +
<ref>Brownfield vs. Greenfield Development - What’s the Difference in Software?: https://synoptek.com/insights/it-blogs/greenfield-vs-brownfield-software-development/</ref>
 +
<ref>What Is Refactoring?: https://dzone.com/articles/what-is-refactoring</ref>
 +
<ref>What is Code Refactoring?: https://thecustomizewindows.com/2021/02/what-is-code-refactoring/</ref>
 +
<ref>© Scaled Agile, Inc. -- Refactoring: https://www.scaledagileframework.com/refactoring/</ref>
 +
<ref>AgileAlliance -- Refactoring: https://www.agilealliance.org/glossary/refactoring/</ref>
 +
<ref>The Ultimate Engineer's Guide to Code Refactoring: https://dzone.com/articles/the-engineers-complete-guide-to-technical-debt</ref>
 +
<ref>Code Refactoring Best Practices -- When (and When Not) to Do It: https://www.altexsoft.com/blog/engineering/code-refactoring-best-practices-when-and-when-not-to-do-it/</ref>
 +
<ref>Lessons from 6 software rewrite stories: https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22</ref>
 +
<ref>'''4 Steps to Persuade a Product Owner to Prioritize Refactoring: https://www.mountaingoatsoftware.com/blog/4-steps-to-persuade-a-product-owner-to-prioritize-refactoring'''</ref>
 +
<ref>How to refactor: https://refactoring.guru/refactoring/how-to</ref>
 +
<ref>Refactoring - Improving the Design of Existing Code (BOOK): https://www.goodreads.com/book/show/44936.Refactoring | [https://www.refactoring.com/ WEBSITE]</ref>
 +
<ref>An Agile Approach to a Legacy System: http://cdn.pols.co.uk/papers/agile-approach-to-legacy-systems.pdf</ref>
 +
<ref>Strangler Applications: https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/</ref>
 +
<ref>Metaphor of the "Strangler Fig" tree (that seeds in high-up branches and eventually works its way down to replace original "host" tree aka. app): </ref>
 +
<ref>Three Strategies for Fitting Refactoring into Your Sprints: https://www.mountaingoatsoftware.com/blog/three-strategies-for-fitting-refactoring-into-your-sprints</ref>
 +
<ref>Why “I Do High Quality Work” Is Both Good Policy and Terrible Positioning: https://daedtech.com/why-i-do-high-quality-work-is-both-good-policy-and-terrible-positioning/</ref>
 +
<ref>Satisfiying vs Maximizing: https://blog.asmartbear.com/maximizing.html</ref>
 +
<ref>Why Refactoring Is Not Always a Code Smell: https://blog.thecodewhisperer.com/permalink/why-refactoring-is-not-always-a-code-smell</ref>
 +
 +
===== Legacy Code =====
 +
 +
'''Legacy Systems''' are methods/approaches, technologies, computer hardwares, software systems, watch/mobile/tablet/desktop/TV Application programs, Application Programming Interfaces (APIs) and/or Software Development Kits (SDKs) "of, relating to, or being a previous or outdated computer system" yet still in use by and/or depended upon by a company or particular group of users.
 +
 +
'''Legacy Code''' is any computer source code deemed old, antiquated, inefficient, excessively complex, confusing, hard-to-read, buggy/error-prone, obsolete itself or supporting something obsolete, using deprecated or decommissioned APIs/SDKs, or, simply an organization's existing codebase that was written over many years and which has not sufficiently evolved to reflect modern best practices. Often referencing a system as "legacy" implies that the system is out of date and/or in need of replacement, however, it could also be used in a respectful manner to indicate that it was an instrumental technology that paved the way for further standards or systems that are to follow it.
 +
 +
Long-lived code is susceptible to "software rot"<ref>[[wikipedia: Software rot]]</ref>, where changes to the runtime environment, or surrounding hardware/software may require maintenance or emulation of some kind to keep it working. Legacy code may be present to support legacy hardware, a separate legacy system, or a legacy customer using an old feature or software version.
 +
 +
While the term usually refers to source code, it can also apply to executable code that no longer runs on a later version of a system, or requires a compatibility layer to do so.
 +
 +
* [[wikipedia: Legacy system]]
 +
* See also: [[Technical Debt]]
 +
<ref>Brand new legacy code is developed every day: https://www.markkukero.com/2018-05-brand-new-legacy-code-is-developed-every-day/</ref>
 +
<ref>"Legacy Code is Fear" (PRESENTATION) ''@Swanseacon'' 2015-09-08: https://www.slideshare.net/adibolb/legacy-code-is-fear-swanseacon-08-09-2015</ref>
 +
 +
 +
===== Strangler Pattern =====
 +
 +
* The Strangler pattern in practice: https://www.michielrook.nl/2016/11/strangler-pattern-practice/
 +
* Use the Strangler Pattern to Refactor Legacy Apps: https://www.kiuwan.com/strangle-pattern-legacy-apps/
 +
<ref>Monolith to Microservices Using the Strangler Pattern: https://dzone.com/articles/monolith-to-microservices-using-the-strangler-patt</ref>
 +
<ref>Microsoft Azure -- Cloud architecutre guide - "Strangler Fig" pattern: https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig</ref>
 +
<ref>Refactoring Legacy Code with the Strangler Fig Pattern: https://shopify.engineering/refactoring-legacy-code-strangler-fig-pattern</ref>
 +
<ref>The Urge to Strangle: https://www.leadingagile.com/2018/10/the-urge-to-stranglethe-strangler-pattern/</ref>
 +
<ref>The Strangler Fig Migration Pattern: https://dianadarie.medium.com/the-strangler-fig-migration-pattern-2e20a7350511</ref>
 +
<ref>Apply the Strangler Application pattern to microservices applications: https://developer.ibm.com/depmodels/microservices/articles/cl-strangler-application-pattern-microservices-apps-trs/</ref>
 +
  
 
===== Automated Code Refactors =====
 
===== Automated Code Refactors =====
Line 608: Line 764:
 
<ref>Debugging Spring Applications: https://www.baeldung.com/spring-debugging</ref>
 
<ref>Debugging Spring Applications: https://www.baeldung.com/spring-debugging</ref>
 
<ref>Top 10 Java Debugging Tips: https://stackify.com/java-debugging-tips/</ref>\
 
<ref>Top 10 Java Debugging Tips: https://stackify.com/java-debugging-tips/</ref>\
 +
<ref>Debugging a JVM Crash for LinkedIn: https://devblogs.microsoft.com/java/debugging-a-jvm-crash-for-linkedin-part-1/</ref>
 +
<ref>Creating Your First Test With Google Chrome DevTools Recorder: https://applitools.com/blog/creating-first-test-google-chrome-devtools-recorder/</ref>
  
  
Line 628: Line 786:
  
 
* '''BrowserStack: http://www.browserstack.com/''' | [http://www.browserstack.com/start#os=Windows&os_version=XP&browser=IE&browser_version=7.0&url=bcmoney-mobiletv.com&resolution=1280x1024&speed=1 DEMO] | [https://www.browserstack.com/automate/rest-api API] (by John Resig, great for testing webapps on various browser combos)<ref>'''Integrating Selenium with Jenkins and BrowserStack: https://www.browserstack.com/automate/jenkins'''</ref><ref>BitBucket -- BrowserStack CI guide: https://www.browserstack.com/automate/continuous-integration#Bitbucket</ref><ref>BitBucket BitBucket Pipelines example: https://bitbucket.org/browserstack/bitbucket-pipelines/src/master/</ref><ref>Debugging Selenium tests on BrowserStack: https://www.browserstack.com/automate/debugging</ref>
 
* '''BrowserStack: http://www.browserstack.com/''' | [http://www.browserstack.com/start#os=Windows&os_version=XP&browser=IE&browser_version=7.0&url=bcmoney-mobiletv.com&resolution=1280x1024&speed=1 DEMO] | [https://www.browserstack.com/automate/rest-api API] (by John Resig, great for testing webapps on various browser combos)<ref>'''Integrating Selenium with Jenkins and BrowserStack: https://www.browserstack.com/automate/jenkins'''</ref><ref>BitBucket -- BrowserStack CI guide: https://www.browserstack.com/automate/continuous-integration#Bitbucket</ref><ref>BitBucket BitBucket Pipelines example: https://bitbucket.org/browserstack/bitbucket-pipelines/src/master/</ref><ref>Debugging Selenium tests on BrowserStack: https://www.browserstack.com/automate/debugging</ref>
 
+
* TestAutomation University: https://testautomationu.applitools.com (free E-Learning courses with video/code snippet examples including Selenium, JMeter, SoapUI and more!)
 
<ref>Test Automation frameworks: https://smartbear.com/learn/automated-testing/test-automation-frameworks/</ref>
 
<ref>Test Automation frameworks: https://smartbear.com/learn/automated-testing/test-automation-frameworks/</ref>
 
<ref>How to Wreck Your UI Test Automation Project - A Cheat Sheet: http://www.inflectra.com/Ideas/Entry/how-to-wreck-your-ui-test-automation-project-702.aspx</ref>
 
<ref>How to Wreck Your UI Test Automation Project - A Cheat Sheet: http://www.inflectra.com/Ideas/Entry/how-to-wreck-your-ui-test-automation-project-702.aspx</ref>
 
<ref>How to Develop an Automated Testing Strategy: https://testlio.com/blog/how-to-develop-an-automated-testing-strategy/</ref>
 
<ref>How to Develop an Automated Testing Strategy: https://testlio.com/blog/how-to-develop-an-automated-testing-strategy/</ref>
<ref> How Do You Reason About Automated Testing ROI?: https://www.testim.io/blog/automated-testing-roi/</ref>
+
<ref>How Do You Reason About Automated Testing ROI?: https://www.testim.io/blog/automated-testing-roi/</ref>
 +
<ref>6 reasons to co-locate your app and automation code: https://techbeacon.com/app-dev-testing/6-reasons-co-locate-your-app-automation-code</ref>
  
 
==== Appium ====
 
==== Appium ====
Line 655: Line 814:
 
<ref>Appium setting up with Jenkins CI Guidelines: https://discuss.appium.io/t/appium-setting-up-with-jenkins-ci-guidelines/9877</ref>
 
<ref>Appium setting up with Jenkins CI Guidelines: https://discuss.appium.io/t/appium-setting-up-with-jenkins-ci-guidelines/9877</ref>
 
* BEYOND APPIUM -- Implementing Comprehensive Testing Using Espresso And XCUITest: https://assets.ctfassets.net/czwjnyf8a9ri/7ca7kp43RFG3RavLKySYvf/29346b3f1061a08dca1146f7d7da97dc/beyond-appium-testing-using-expresso-xcuitest.pdf
 
* BEYOND APPIUM -- Implementing Comprehensive Testing Using Espresso And XCUITest: https://assets.ctfassets.net/czwjnyf8a9ri/7ca7kp43RFG3RavLKySYvf/29346b3f1061a08dca1146f7d7da97dc/beyond-appium-testing-using-expresso-xcuitest.pdf
* '''Google -- Android samples: https://developer.android.com/samples/'''
+
<ref>Hello Appium, Part 2 - Writing Your First Android Test: https://applitools.com/blog/how-to-write-android-test-appium/ | [https://github.com/automationhacks/appium-fast-boilerplate SRC]</ref>
<ref>A New Reference App for Multi-device Applications: https://android-developers.googleblog.com/2015/03/a-new-reference-app-for-multi-device.html | [https://github.com/android/uamp SRC]</ref>
+
<ref>New Android Code Samples: https://android-developers.googleblog.com/2015/04/new-android-code-samples.html | [https://github.com/android/wear-os-samples SRC]</ref>
+
<ref>Android CardView Sample Project (with RecyclerView): http://www.oded-tech-blog.com/android-cardview-sample-project-recyclerview/ | [https://github.com/oded-regev/CardViewSampleApp SRC]</ref>
+
<ref>Getting Started With RecyclerView and CardView on Android: https://code.tutsplus.com/tutorials/getting-started-with-recyclerview-and-cardview-on-android--cms-23465</ref>
+
  
 
* Understanding Desired Capabilities: https://nishantverma.gitbooks.io/appium-for-android/understanding_desired_capabilities.html
 
* Understanding Desired Capabilities: https://nishantverma.gitbooks.io/appium-for-android/understanding_desired_capabilities.html
Line 700: Line 855:
 
<ref>iOS Testing Using Appium and JAVA | iOS Mobile Test Automation: https://www.swtestacademy.com/ios-testing-appium-java/</ref>
 
<ref>iOS Testing Using Appium and JAVA | iOS Mobile Test Automation: https://www.swtestacademy.com/ios-testing-appium-java/</ref>
 
<ref>How to Test Toast Messages using Appium?: http://www.qaautomated.com/2017/12/how-to-test-toast-messages-using-appium.html</ref>
 
<ref>How to Test Toast Messages using Appium?: http://www.qaautomated.com/2017/12/how-to-test-toast-messages-using-appium.html</ref>
 +
<ref>UI Test Automation - Speed Up Mobile App UI Testing with Appium: https://www.appcoda.com/automated-ui-testing-appium/</ref>
 +
<ref>How to Automate Gesture Testing with Appium: https://applitools.com/blog/how-to-automate-gesture-testing-appium/</ref>
 +
<ref>How to build your own "Appium plugin": https://applitools.com/blog/how-to-build-your-own-appium-plugin/</ref>
 +
<ref>Hello Appium! Part 3 - Writing Your First iOS Test: https://applitools.com/blog/how-to-write-appium-ios-test/</ref>
  
 
==== Cypress ====
 
==== Cypress ====
Line 734: Line 893:
  
 
* '''SOAP UI: http://www.soapui.org/'''<ref>'''10 Tips for the SoapUI Beginner: http://www.soapui.org/getting-started/10-tips-for-the-soapui-beginner.html'''</ref>
 
* '''SOAP UI: http://www.soapui.org/'''<ref>'''10 Tips for the SoapUI Beginner: http://www.soapui.org/getting-started/10-tips-for-the-soapui-beginner.html'''</ref>
 +
* SoapUI Cookbook (BOOK): https://www.oreilly.com/library/view/soapui-cookbook/9781784394219/ | [https://www.oreilly.com/library/view/soapui-cookbook/9781784394219/ch07s03.html Ch.7 - Testing HTTP Digest-authenticated RESTful web services]
 
* SOAP UI, Regression Testing of Human based processes, using Groovy scripts or SOAP UI Steps: http://intaliotempo.wordpress.com/2009/12/01/soap-ui-regression-testing-of-human-based-processes/
 
* SOAP UI, Regression Testing of Human based processes, using Groovy scripts or SOAP UI Steps: http://intaliotempo.wordpress.com/2009/12/01/soap-ui-regression-testing-of-human-based-processes/
 
* SoapUITestCaseRunner to run SoapUI Web Service tests from JUnit: http://www.soapui.org/userguide/commandline/functional.html
 
* SoapUITestCaseRunner to run SoapUI Web Service tests from JUnit: http://www.soapui.org/userguide/commandline/functional.html
Line 770: Line 930:
 
<ref>Working with HTTP multipart requests in soapUI: http://charithaka.blogspot.com/2013/07/working-with-http-multipart-requests-in.html</ref>
 
<ref>Working with HTTP multipart requests in soapUI: http://charithaka.blogspot.com/2013/07/working-with-http-multipart-requests-in.html</ref>
 
<ref>'''Update Content-Type in Attachment before submissionSolved: https://community.smartbear.com/t5/SoapUI-Pro/Update-Content-Type-in-Attachment-before-submission/td-p/41128'''</ref>
 
<ref>'''Update Content-Type in Attachment before submissionSolved: https://community.smartbear.com/t5/SoapUI-Pro/Update-Content-Type-in-Attachment-before-submission/td-p/41128'''</ref>
 +
<ref>How add groovy script in Soap UI to automatically update definitions?: https://stackoverflow.com/questions/23777952/how-add-groovy-script-in-soap-ui-to-automatically-update-definitions</ref>
 +
<ref>SoapUI -- Export (an imported API definintion) in the OpenAPI or Swagger format: https://support.smartbear.com/readyapi/docs/apis/export.html#export-in-the-openapi-or-swagger-format</ref>
 +
 +
==== Service Virtualization ====
 +
 +
===== ServiceV =====
 +
 
* ServiceV: https://smartbear.com/product/ready-api/servicev/overview/
 
* ServiceV: https://smartbear.com/product/ready-api/servicev/overview/
 
<ref>HTTP Recording Overview: https://www.soapui.org/http-recording/http-recording.html</ref>
 
<ref>HTTP Recording Overview: https://www.soapui.org/http-recording/http-recording.html</ref>
Line 776: Line 943:
 
<ref>Deploying Mock Services as WAR Files: www.soapui.org/soap-mocking/deploying-mock-services-as-war-files.html</ref>
 
<ref>Deploying Mock Services as WAR Files: www.soapui.org/soap-mocking/deploying-mock-services-as-war-files.html</ref>
  
 +
===== Hoverfly =====
 +
 +
* Hoverfly: https://hoverfly.io/ | [https://hoverfly.io/#download DOWNLOAD] | [https://docs.hoverfly.io/en/latest/ DOCS]
 +
<ref>Testing Quarkus Web Applications - Writing Clean Component Tests: https://www.infoq.com/articles/testing-quarkus-integration-containers/ | [https://github.com/lordofthejars/registration-test-part-2 SRC]</ref>
  
 
===== Load UI =====
 
===== Load UI =====
Line 804: Line 975:
 
* Selenium - Keyboard mappings: https://github.com/SeleniumHQ/selenium/blob/master/java/client/src/org/openqa/selenium/Keys.java
 
* Selenium - Keyboard mappings: https://github.com/SeleniumHQ/selenium/blob/master/java/client/src/org/openqa/selenium/Keys.java
 
* '''Selenium Guide Book: https://seleniumguidebook.com''' (leading E-BOOK on using Selenium WebDriver in the primary programming languages)<ref>What is the best book to learn Selenium?: https://www.quora.com/What-is-the-best-book-to-learn-Selenium</ref><ref>in28minutes -- Learn Automation Testing with Java and Selenium (E-LEARNING COURSE): https://www.udemy.com/automation-testing-with-selenium-and-java-for-beginners/learn/v4/t/lecture/10089460?start=0 | [https://github.com/in28minutes/automation-testing-with-java-and-selenium SRC]</ref>
 
* '''Selenium Guide Book: https://seleniumguidebook.com''' (leading E-BOOK on using Selenium WebDriver in the primary programming languages)<ref>What is the best book to learn Selenium?: https://www.quora.com/What-is-the-best-book-to-learn-Selenium</ref><ref>in28minutes -- Learn Automation Testing with Java and Selenium (E-LEARNING COURSE): https://www.udemy.com/automation-testing-with-selenium-and-java-for-beginners/learn/v4/t/lecture/10089460?start=0 | [https://github.com/in28minutes/automation-testing-with-java-and-selenium SRC]</ref>
 +
* Hands-On Selenium WebDriver with Java (BOOK): https://www.oreilly.com/library/view/hands-on-selenium-webdriver/9781098109998/
 
<ref>Running Automated Selenium Tests from Jenkins on Linux: https://stgconsulting.com/running-automated-selenium-tests-from-jenkins-on-linux/</ref>
 
<ref>Running Automated Selenium Tests from Jenkins on Linux: https://stgconsulting.com/running-automated-selenium-tests-from-jenkins-on-linux/</ref>
 
<ref>Tutorial -- How to use Headless Firefox for Scraping in Linux: http://scraping.pro/use-headless-firefox-scraping-linux/</ref>
 
<ref>Tutorial -- How to use Headless Firefox for Scraping in Linux: http://scraping.pro/use-headless-firefox-scraping-linux/</ref>
 
<ref>Running headless Firefox WebDriver on Jenkins (Windows OS): https://stackoverflow.com/questions/47532164/running-headless-firefox-webdriver-on-jenkins-windows-os</ref>
 
<ref>Running headless Firefox WebDriver on Jenkins (Windows OS): https://stackoverflow.com/questions/47532164/running-headless-firefox-webdriver-on-jenkins-windows-os</ref>
<ref>Selenium2 MindMap of concepts: https://www.mindmeister.com/334652100/selenium-2-commands?fullscreen=1</ref>
+
<ref>How to run a headless Chrome browser in Selenium WebDriver: https://itnext.io/how-to-run-a-headless-chrome-browser-in-selenium-webdriver-c5521bc12bf0</ref>
 +
<ref>Selenium 2.x MindMap of concepts: https://www.mindmeister.com/334652100/selenium-2-commands?fullscreen=1</ref>
  
* '''flash-selenium: https://code.google.com/archive/p/flash-selenium/''' | [https://code.google.com/archive/p/flash-selenium/downloads DOWNLOAD]<ref>flash-selenium example: http://www.developerfusion.com/project/18930/flashselenium/ (APPLICATION LINK DEAD: an old color chooser example using "colors.html" & "colors.swf" files)</ref><ref>More recent example of testing the Flash ColorChooser in Selenium: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/</ref><ref>Testing Flash with Selenium (Flash – JavaScript communication): http://toolsqa.com/selenium-webdriver/testing-flash-selenium-flash-javascript-communication/ (selenium sample in C#)</ref><ref>'''Writing and running functional tests for Flash with Selenium RC: https://www.adobe.com/devnet/flash/articles/flash_selenium.html'''</ref><ref>Writing and running functional tests for Flash with Selenium RC: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/</ref>
 
<ref>'''Enable Flash player on Chrome 62 while running selenium test: https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test''' (apart from setting Capabilities via WebDriver API, requires running Chrome with "--allow-outdated-plugins" flag as of Chrome 62+)</ref>
 
 
* NodeJS Selenium: https://www.npmjs.com/package/selenium-standalone | [https://www.npmjs.com/package/selenium-webdriver WEB DRIVER]
 
* NodeJS Selenium: https://www.npmjs.com/package/selenium-standalone | [https://www.npmjs.com/package/selenium-webdriver WEB DRIVER]
* flex-ui-selenium -- Selenium RC driving the tests against Flex applications: http://code.google.com/p/flex-ui-selenium/
+
* flash-selenium: https://code.google.com/archive/p/flash-selenium/ | [https://code.google.com/archive/p/flash-selenium/downloads DOWNLOAD]<ref>flash-selenium example: http://www.developerfusion.com/project/18930/flashselenium/ (APPLICATION LINK DEAD: an old color chooser example using "colors.html" & "colors.swf" files)</ref><ref>More recent example of testing the Flash ColorChooser in Selenium: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/</ref><ref>Testing Flash with Selenium (Flash – JavaScript communication): http://toolsqa.com/selenium-webdriver/testing-flash-selenium-flash-javascript-communication/ (selenium sample in C#)</ref><ref>'''Writing and running functional tests for Flash with Selenium RC: https://www.adobe.com/devnet/flash/articles/flash_selenium.html'''</ref><ref>Writing and running functional tests for Flash with Selenium RC: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/</ref><ref>'''Enable Flash player on Chrome 62 while running selenium test: https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test''' (apart from setting Capabilities via WebDriver API, requires running Chrome with "--allow-outdated-plugins" flag as of Chrome 62+)</ref>
* Selenium-Flex API - Automation for Adobe Flex applications: http://code.google.com/p/sfapi/
+
* flex-ui-selenium -- Selenium RC driving the tests against Flex applications: http://code.google.com/p/flex-ui-selenium/<ref>Selenium-Flex API - Automation for Adobe Flex applications: http://code.google.com/p/sfapi/</ref><ref>Flex acceptance testing and continuous integration: http://www.blackpepper.co.uk/black-pepper-blog/Flex-acceptance-testing-and-continuous-integration.html</ref>
* Flex acceptance testing and continuous integration: http://www.blackpepper.co.uk/black-pepper-blog/Flex-acceptance-testing-and-continuous-integration.html
+
 
* Selenium in Python (WebDriver): https://pypi.python.org/pypi/selenium | [https://selenium-python.readthedocs.io DOCS]<ref>Introduction To Creating Automated Tests by Using Selenium IDE and Python: https://desmart.com/blog/introduction-to-creating-automated-tests-by-using-selenium-ide-and-python</ref><ref>How to use Selenium with Python: https://stackoverflow.com/questions/17540971/how-to-use-selenium-with-python</ref><ref>How to Use Selenium with Python -- Complete Tutorial : https://www.guru99.com/selenium-python.html</ref><ref>Running Selenium tests under ''py.test'' convention with docker support: https://github.com/eliranshani/selenium-docker-allure</ref>
 
* Selenium in Python (WebDriver): https://pypi.python.org/pypi/selenium | [https://selenium-python.readthedocs.io DOCS]<ref>Introduction To Creating Automated Tests by Using Selenium IDE and Python: https://desmart.com/blog/introduction-to-creating-automated-tests-by-using-selenium-ide-and-python</ref><ref>How to use Selenium with Python: https://stackoverflow.com/questions/17540971/how-to-use-selenium-with-python</ref><ref>How to Use Selenium with Python -- Complete Tutorial : https://www.guru99.com/selenium-python.html</ref><ref>Running Selenium tests under ''py.test'' convention with docker support: https://github.com/eliranshani/selenium-docker-allure</ref>
 
* Testing with PHPUnit and Selenium: http://netbeans.org/kb/docs/php/phpunit.html
 
* Testing with PHPUnit and Selenium: http://netbeans.org/kb/docs/php/phpunit.html
Line 826: Line 996:
 
<ref>Just Say No to More End-to-End Tests: https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html</ref>
 
<ref>Just Say No to More End-to-End Tests: https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html</ref>
 
<ref>Selenium - How to use x and y coordinate position: http://stackoverflow.com/questions/6448457/selenium-how-to-use-x-and-y-coordinate-position</ref>
 
<ref>Selenium - How to use x and y coordinate position: http://stackoverflow.com/questions/6448457/selenium-how-to-use-x-and-y-coordinate-position</ref>
 +
* '''A Comprehensive Guide to Deal With XPath in Selenium: https://dzone.com/articles/a-comprehensive-guide-to-deal-with-xpath-in-seleni'''
 
<ref>Writing XPath selectors for Selenium tests: http://hedleyproctor.com/2011/05/tutorial-writing-xpath-selectors-for-selenium-tests/</ref>
 
<ref>Writing XPath selectors for Selenium tests: http://hedleyproctor.com/2011/05/tutorial-writing-xpath-selectors-for-selenium-tests/</ref>
 
<ref>Automating Selenium testing with TestNG, Ant and CruiseControl: http://hedleyproctor.com/2011/07/automating-selenium-testing-with-testng-ant-and-cruisecontrol/</ref>
 
<ref>Automating Selenium testing with TestNG, Ant and CruiseControl: http://hedleyproctor.com/2011/07/automating-selenium-testing-with-testng-ant-and-cruisecontrol/</ref>
Line 832: Line 1,003:
 
<ref>'''Tips for running Selenium Server: https://testersworld.wordpress.com/about/selenium-rcremote-control/'''</ref>
 
<ref>'''Tips for running Selenium Server: https://testersworld.wordpress.com/about/selenium-rcremote-control/'''</ref>
 
<ref>Selenium RC example: http://www.tutorialspoint.com/selenium/selenium_rc.htm (Selenium 1.x used the Remote Control or RC API, whereas Selenium 2+ uses WebDriver APIs specific to the Browser being tested with)</ref>
 
<ref>Selenium RC example: http://www.tutorialspoint.com/selenium/selenium_rc.htm (Selenium 1.x used the Remote Control or RC API, whereas Selenium 2+ uses WebDriver APIs specific to the Browser being tested with)</ref>
 +
WebDriver Manager: https://github.com/bonigarcia/webdrivermanager/ (allows to automate the management of the drivers)
 +
WebDriver Manager – EXAMPLES: https://github.com/bonigarcia/webdrivermanager-examples | [https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/java/io/github/bonigarcia/wdm/test/ChromeHeadlessTest.java EX#1-ChromeHeadless] | [https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/java/io/github/bonigarcia/wdm/test/AppiumTest.java EX#2-AppiumAndroidSeleniumGrid] | [https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/java/io/github/bonigarcia/wdm/test/ChromeAndFirefoxTest.java EX#3-FirefoxChrome] | [https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/java/io/github/bonigarcia/wdm/test/ImplicitWaitTest.java EX#4-MultiBrowser] | [https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/java/io/github/bonigarcia/wdm/test/PerformanceChromeTest.java EX#5-Performance]
 +
* What’s New In Selenium 4?: https://applitools.com/blog/selenium-4/
 +
<ref>Selenium 4 Release Candidate is here!: https://applitools.com/blog/selenium-4-release-candidate/</ref>
 +
<ref>How To Upgrade to Selenium 4: https://saucelabs.com/resources/articles/how-to-upgrade-to-selenium-4</ref>
 +
<ref>Everything you need to know about Selenium 4: https://automated-360.com/selenium/selenium-4/</ref>
 +
* Java 11+, JUnit 5 & Selenium 4: https://www.lambdatest.com/blog/execute-junit4-tests-with-junit5/
 +
<ref>JUnit 5 Jupiter API: https://developer.ibm.com/languages/java/tutorials/j-introducing-junit5-part1-jupiter-api/</ref>
 +
<ref>Mastering Selenium Testing - JUnit Asserts With Examples: https://www.lambdatest.com/blog/junit-assertions-example-for-selenium-testing/</ref>
 +
<ref>Selenium-Jupiter: https://github.com/bonigarcia/selenium-jupiter (JUnit5 integration plugin)</ref>
 
<ref>Specifying the Firefox Profile: http://www.seleniumhq.org/docs/05_selenium_rc.jsp#specifying-the-firefox-profile (Firefox will not run two instances simultaneously unless you specify a separate profile for each instance)</ref>
 
<ref>Specifying the Firefox Profile: http://www.seleniumhq.org/docs/05_selenium_rc.jsp#specifying-the-firefox-profile (Firefox will not run two instances simultaneously unless you specify a separate profile for each instance)</ref>
 
<ref>Selenium -- Could not start Selenium session - Failed to start new browser session: Error while launching browser: https://stackoverflow.com/questions/1414934/selenium-could-not-start-selenium-session-failed-to-start-new-browser-session</ref>
 
<ref>Selenium -- Could not start Selenium session - Failed to start new browser session: Error while launching browser: https://stackoverflow.com/questions/1414934/selenium-could-not-start-selenium-session-failed-to-start-new-browser-session</ref>
Line 857: Line 1,038:
 
<ref>Selenium – Use Assertions to Verify the Test Output: http://selftechy.com/2011/07/10/selenium-use-assertions-to-verify-the-test-output</ref>
 
<ref>Selenium – Use Assertions to Verify the Test Output: http://selftechy.com/2011/07/10/selenium-use-assertions-to-verify-the-test-output</ref>
 
<ref>I want to run Selenium test case file from command line: https://stackoverflow.com/questions/1231975/i-want-to-run-selenium-test-case-file-from-command-line#1234439</ref>
 
<ref>I want to run Selenium test case file from command line: https://stackoverflow.com/questions/1231975/i-want-to-run-selenium-test-case-file-from-command-line#1234439</ref>
 +
<ref>Navigate to previous page using Selenium: https://sqa.stackexchange.com/questions/8737/navigate-to-previous-page-using-selenium</ref>
 
<ref>How do I launch the Selenium IDE from the command line with a specific test case loaded?: https://stackoverflow.com/questions/1144744/how-do-i-launch-the-selenium-ide-from-the-command-line-with-a-specific-test-case</ref>
 
<ref>How do I launch the Selenium IDE from the command line with a specific test case loaded?: https://stackoverflow.com/questions/1144744/how-do-i-launch-the-selenium-ide-from-the-command-line-with-a-specific-test-case</ref>
 
<ref>'''Selenium IDE native format (Selenese & .side) interpreter: https://github.com/vmi/selenese-runner-java'''</ref>
 
<ref>'''Selenium IDE native format (Selenese & .side) interpreter: https://github.com/vmi/selenese-runner-java'''</ref>
Line 888: Line 1,070:
 
<ref>Selenium -- How to verify the current date value in a field: http://groups.google.com/forum/#!topic/selenium-users/LXWik4nm6U8</ref>
 
<ref>Selenium -- How to verify the current date value in a field: http://groups.google.com/forum/#!topic/selenium-users/LXWik4nm6U8</ref>
 
<ref>'''Implicit, Explicit & Fluent Waits in Selenium: https://www.guru99.com/implicit-explicit-waits-selenium.html'''</ref>
 
<ref>'''Implicit, Explicit & Fluent Waits in Selenium: https://www.guru99.com/implicit-explicit-waits-selenium.html'''</ref>
 +
<ref>Selenium (JavaDocs) - FluentWait: https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html</ref>
 +
<ref>WebDriver Wait For Page to Load examples (Java .vs. JS): https://devqa.io/webdriver-wait-page-load-example-java/</ref>
 
<ref>What is Explicit wait in Selenium Webdriver: http://learn-automation.com/explicit-wait-in-selenium-webdriver/</ref>
 
<ref>What is Explicit wait in Selenium Webdriver: http://learn-automation.com/explicit-wait-in-selenium-webdriver/</ref>
 
<ref>Wait commands in Selenium (Java): http://toolsqa.com/selenium-webdriver/wait-commands/</ref>  
 
<ref>Wait commands in Selenium (Java): http://toolsqa.com/selenium-webdriver/wait-commands/</ref>  
 
<ref>'''WebDriver Wait For Page to Load Example in Java: https://www.testingexcellence.com/webdriver-wait-page-load-example-java/'''</ref>
 
<ref>'''WebDriver Wait For Page to Load Example in Java: https://www.testingexcellence.com/webdriver-wait-page-load-example-java/'''</ref>
 
<ref>Selenium Webdriver Fluent Wait Command With Examples: https://www.techbeamers.com/webdriver-fluent-wait-command-examples/</ref>
 
<ref>Selenium Webdriver Fluent Wait Command With Examples: https://www.techbeamers.com/webdriver-fluent-wait-command-examples/</ref>
<ref>Selenium 101: Navigating Waits and Sleeps (NodeJS example): https://crossbrowsertesting.com/blog/test-automation/sleeps-waits-in-selenium/</ref>
+
<ref>Selenium 101 - Navigating Waits and Sleeps (NodeJS example): https://crossbrowsertesting.com/blog/test-automation/sleeps-waits-in-selenium/</ref>
 
<ref>How to hide Firefox window (Selenium WebDriver)?: http://stackoverflow.com/questions/5370762/how-to-hide-firefox-window-selenium-webdriver/23898148#23898148</ref>
 
<ref>How to hide Firefox window (Selenium WebDriver)?: http://stackoverflow.com/questions/5370762/how-to-hide-firefox-window-selenium-webdriver/23898148#23898148</ref>
 
<ref>Login popup window using selenium webdriver?: https://stackoverflow.com/questions/12151958/login-popup-window-using-selenium-webdriver</ref>
 
<ref>Login popup window using selenium webdriver?: https://stackoverflow.com/questions/12151958/login-popup-window-using-selenium-webdriver</ref>
Line 913: Line 1,097:
 
<ref>WebDriver – How to Restore Cookies in New Browser Window: https://www.testingexcellence.com/webdriver-how-to-restore-cookies-in-new-browser-window/</ref>
 
<ref>WebDriver – How to Restore Cookies in New Browser Window: https://www.testingexcellence.com/webdriver-how-to-restore-cookies-in-new-browser-window/</ref>
 
<ref>Cookie Handling in Selenium WebDriver: https://www.guru99.com/handling-cookies-selenium-webdriver.html</ref>
 
<ref>Cookie Handling in Selenium WebDriver: https://www.guru99.com/handling-cookies-selenium-webdriver.html</ref>
 +
<ref>Managing Cookies with Selenium for Java: https://applitools.com/event/cookies-selenium-java/</ref>
 
<ref>How do I load session and cookies from Selenium browser to requests library in Python?: https://stackoverflow.com/questions/29563335/how-do-i-load-session-and-cookies-from-selenium-browser-to-requests-library-in-p</ref>
 
<ref>How do I load session and cookies from Selenium browser to requests library in Python?: https://stackoverflow.com/questions/29563335/how-do-i-load-session-and-cookies-from-selenium-browser-to-requests-library-in-p</ref>
 
<ref>'''SafariDriver (SAFARI EXTENSION): http://selenium-release.storage.googleapis.com/index.html?path=2.48/'''</ref>
 
<ref>'''SafariDriver (SAFARI EXTENSION): http://selenium-release.storage.googleapis.com/index.html?path=2.48/'''</ref>
Line 923: Line 1,108:
 
<ref>Automated Testing recipes with Selenium WebDriver: https://github.com/atinfo/at.info-knowledge-base/tree/master/functional%20test%20automation/webdriver</ref>
 
<ref>Automated Testing recipes with Selenium WebDriver: https://github.com/atinfo/at.info-knowledge-base/tree/master/functional%20test%20automation/webdriver</ref>
 
<ref>A Look at New Java Features in Test Automation: http://angiejones.tech/new-java-features-test-automation</ref>
 
<ref>A Look at New Java Features in Test Automation: http://angiejones.tech/new-java-features-test-automation</ref>
<ref>Handling Authentication Requests with Selenium - Using a Web Proxy for Basic Authentication: [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part1.html PART 1] | [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part2.html PART 2] | [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part3.html PART 3]</ref>\
+
<ref>Handling Authentication Requests with Selenium - Using a Web Proxy for Basic Authentication: [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part1.html PART 1] | [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part2.html PART 2] | [https://jimevansmusic.blogspot.com/2019/05/handling-authentication-requests-part3.html PART 3]</ref>
 +
<ref>Exercise on safely waiting for unstable web elements with WebDriver: https://gist.github.com/djangofan/5112655 (several examples of waits/retry strategies)</ref>
 +
<ref>"Element is no longer attached to the DOM” StaleElementReferenceException when selecting HTML table row: https://sqa.stackexchange.com/questions/3464/element-is-no-longer-attached-to-the-dom-staleelementreferenceexception-when-s</ref>
 +
<ref>MozDev docs -- WebDriver - Stale element reference: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/StaleElementReference</ref>
 +
<ref>How to solve Stale Element Reference exception in Selenium Webdriver: https://learn-automation.com/how-to-solve-stale-element-reference-exception-in-selenium-webdriver/</ref>
 +
<ref>'''Stale Element Reference Exception in Selenium (two possible quick-fixes): https://thetesterscorner.com/stale-element-reference-exception-in-selenium/'''</ref>
 +
<ref>Selenium WebDriver How to Resolve Stale Element Reference Exception?: https://stackoverflow.com/questions/16166261/selenium-webdriver-how-to-resolve-stale-element-reference-exception</ref>
 +
<ref>How to Scroll into view in Selenium Webdriver: https://learn-automation.com/how-to-scroll-into-view-in-selenium-webdriver/</ref>
 +
<ref>Webdriver Firefox “Element could not be scrolled into view”: https://sqa.stackexchange.com/questions/32697/webdriver-firefox-element-could-not-be-scrolled-into-view</ref>
 +
<ref>How to crawl websites with Selenide and JDK 14+: https://blog.sebastian-daschner.com/entries/crawling-websites-selenide-jdk14 | [https://github.com/sdaschner/selenium-playground/ SRC]</ref>
  
  
Line 930: Line 1,124:
 
* Selenium Grid (OFFICIAL DOCS): http://www.seleniumhq.org/docs/07_selenium_grid.jsp
 
* Selenium Grid (OFFICIAL DOCS): http://www.seleniumhq.org/docs/07_selenium_grid.jsp
 
* Selenium Grid - Hub & Node diagram: https://www.hub4tech.com/selenium/selenium-grid
 
* Selenium Grid - Hub & Node diagram: https://www.hub4tech.com/selenium/selenium-grid
 +
<ref>'''6 Ways to Do Automated UI Testing in Parallel With Selenium: https://betterprogramming.pub/6-ways-to-do-automated-ui-testing-in-parallel-with-selenium-132e47403c4f'''</ref>
 
<ref>SauceLabs -- Selenium Cloud test - Platform Configurator: https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/</ref>
 
<ref>SauceLabs -- Selenium Cloud test - Platform Configurator: https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/</ref>
 
<ref>Docker -- Selenium image for Automated Testing - Getting Started: https://www.youtube.com/watch?v=S4OkrnFb-YY</ref>
 
<ref>Docker -- Selenium image for Automated Testing - Getting Started: https://www.youtube.com/watch?v=S4OkrnFb-YY</ref>
Line 943: Line 1,138:
 
<ref>Selenium Grid Extras: https://github.com/groupon/Selenium-Grid-Extras</ref>
 
<ref>Selenium Grid Extras: https://github.com/groupon/Selenium-Grid-Extras</ref>
 
<ref>Distributed Test Execution in Selenium Using Selenium-Grid: https://dzone.com/articles/distributed-test-execution-in-selenium-using-selen</ref>
 
<ref>Distributed Test Execution in Selenium Using Selenium-Grid: https://dzone.com/articles/distributed-test-execution-in-selenium-using-selen</ref>
 +
<ref>Re-using existing browser session with Selenium Grid: https://tarunlalwani.com/post/reusing-existing-browser-session-selenium-grid-python/</ref>
 +
<ref>Execute WebDriver tests in Parallel using Selenium Grid: https://www.seleniumeasy.com/selenium-tutorials/parallel-execution-in-selenium-grid</ref>
 +
  
 
* '''Zalenium: https://opensource.zalando.com/zalenium/''' (flexible and scalable container based Selenium Grid with video recording, live preview, basic auth & dashboard)
 
* '''Zalenium: https://opensource.zalando.com/zalenium/''' (flexible and scalable container based Selenium Grid with video recording, live preview, basic auth & dashboard)
Line 974: Line 1,172:
 
* '''Selenium IDE: http://docs.seleniumhq.org/projects/ide/''' | [https://github.com/seleniumhq/selenium-ide PROJECT] | [https://www.seleniumhq.org/selenium-ide/docs/en/api/commands/ DOCS] | [https://www.npmjs.com/package/selenium-side-runner SIDE Runner] | [https://output.jsbin.com/zagemaw SeleniumIDE 4.x-2.x converter] (this project replaces the XUL plugin with a Web Extensions API based alternative which runs cross-browser on FF 55+/Chrome/Opera, maybe Edge later... as the original XUL-based SeleniumIDE used for the past 12 years from FF 3, stopped working in FF 55+)
 
* '''Selenium IDE: http://docs.seleniumhq.org/projects/ide/''' | [https://github.com/seleniumhq/selenium-ide PROJECT] | [https://www.seleniumhq.org/selenium-ide/docs/en/api/commands/ DOCS] | [https://www.npmjs.com/package/selenium-side-runner SIDE Runner] | [https://output.jsbin.com/zagemaw SeleniumIDE 4.x-2.x converter] (this project replaces the XUL plugin with a Web Extensions API based alternative which runs cross-browser on FF 55+/Chrome/Opera, maybe Edge later... as the original XUL-based SeleniumIDE used for the past 12 years from FF 3, stopped working in FF 55+)
 
<ref>'''Getting Started with SeleniumIDE Plugins: https://github.com/SeleniumHQ/selenium-ide/wiki/Getting-Started-with-Plugins'''</ref><ref>Selenium IDE v3.0 quick start guide: https://devopsqa.wordpress.com/2018/04/17/selenium-ide/</ref>
 
<ref>'''Getting Started with SeleniumIDE Plugins: https://github.com/SeleniumHQ/selenium-ide/wiki/Getting-Started-with-Plugins'''</ref><ref>Selenium IDE v3.0 quick start guide: https://devopsqa.wordpress.com/2018/04/17/selenium-ide/</ref>
<ref>Selenium SIDE Runner: https://github.com/SeleniumHQ/selenium-ide/blob/extensibility/packages/selenium-side-runner/README.md</ref><ref>SeleniumIDE + Applitools integration ("visual testing" add-on):https://applitools.com/selenium-ide</ref>
+
<ref>Selenium SIDE Runner: https://github.com/SeleniumHQ/selenium-ide/blob/extensibility/packages/selenium-side-runner/README.md</ref><ref>'''SeleniumIDE + Applitools integration ("visual testing" add-on):https://applitools.com/selenium-ide | [https://applitools.com/tutorials/selenium-ide.html#selenium-ide-videos VIDEOS] | [https://applitools.com/blog/selenium/ DOCS]'''</ref>
 
<ref>'''Applitools for Selenium IDE Tutorial: https://applitools.com/tutorials/selenium-ide.html#selenium-ide-videos'''</ref>
 
<ref>'''Applitools for Selenium IDE Tutorial: https://applitools.com/tutorials/selenium-ide.html#selenium-ide-videos'''</ref>
 
<ref>Firefox 55 & Selenium IDE: https://seleniumhq.wordpress.com/2017/08/09/firefox-55-and-selenium-ide/ (officially the end of the line for legacy FF XUL/XPI SeleniumIDE, an effort is now underway to replace it with a [https://browserext.github.io/browserext/ WebExtensions API] version that should work in FF/Chrome/Opera)</ref>
 
<ref>Firefox 55 & Selenium IDE: https://seleniumhq.wordpress.com/2017/08/09/firefox-55-and-selenium-ide/ (officially the end of the line for legacy FF XUL/XPI SeleniumIDE, an effort is now underway to replace it with a [https://browserext.github.io/browserext/ WebExtensions API] version that should work in FF/Chrome/Opera)</ref>
Line 1,078: Line 1,276:
 
<ref>'''Kantu - "SeleniumIDE Lite" for Chrome: https://a9t9.com/kantu/web-automation/chrome''' | [https://a9t9.com/howto/getseleniumide SeleniumIDE original download for reference + FF <= 54] a Selenium </ref>
 
<ref>'''Kantu - "SeleniumIDE Lite" for Chrome: https://a9t9.com/kantu/web-automation/chrome''' | [https://a9t9.com/howto/getseleniumide SeleniumIDE original download for reference + FF <= 54] a Selenium </ref>
 
<ref>Katalon Studio - free test automation IDE: https://www.katalon.com/ | [https://www.slideshare.net/minhhai2209/successful-test-automation-for-both-testers-and-developers-75417401 SLIDES]</ref><ref>'''Katalon Recorder docs: https://docs.katalon.com/display/KR/Overview'''</ref><ref>Import/Export function for Test Case variables in Katalon Studio: https://forum.katalon.com/discussion/9854/importexport-function-for-test-case-variables</ref><ref>Handling Web Element Locators using Katalon Studio: https://www.katalon.com/resources-center/tutorials/web-element-locators/</ref>
 
<ref>Katalon Studio - free test automation IDE: https://www.katalon.com/ | [https://www.slideshare.net/minhhai2209/successful-test-automation-for-both-testers-and-developers-75417401 SLIDES]</ref><ref>'''Katalon Recorder docs: https://docs.katalon.com/display/KR/Overview'''</ref><ref>Import/Export function for Test Case variables in Katalon Studio: https://forum.katalon.com/discussion/9854/importexport-function-for-test-case-variables</ref><ref>Handling Web Element Locators using Katalon Studio: https://www.katalon.com/resources-center/tutorials/web-element-locators/</ref>
<ref>Katalon Studio webinars: https://m.youtube.com/channel/UC0g8oLvxnX0i3Ul98uSOrPA>/ref>
+
<ref>Katalon Studio webinars: https://m.youtube.com/channel/UC0g8oLvxnX0i3Ul98uSOrPA</ref>
 
<ref>Silk WebDriver: https://www.microfocus.com/products/silk-portfolio/silk-webdriver/</ref>
 
<ref>Silk WebDriver: https://www.microfocus.com/products/silk-portfolio/silk-webdriver/</ref>
 
<ref>FRET (Front-End Testing Tool): https://www.frontendtest.org/blog/selenium-ide-chrome/ (claims to be "SeleniumIDE ported to Chrome")</ref>
 
<ref>FRET (Front-End Testing Tool): https://www.frontendtest.org/blog/selenium-ide-chrome/ (claims to be "SeleniumIDE ported to Chrome")</ref>
Line 1,301: Line 1,499:
  
 
* '''Apache JMeter: https://jmeter.apache.org/''' | [https://jmeter.apache.org/usermanual/index.html DOCS]<ref>Apache JMeter 3.0 – What’s New?: http://dzone.com/articles/apache-jmeter-30-whats-new</ref>
 
* '''Apache JMeter: https://jmeter.apache.org/''' | [https://jmeter.apache.org/usermanual/index.html DOCS]<ref>Apache JMeter 3.0 – What’s New?: http://dzone.com/articles/apache-jmeter-30-whats-new</ref>
 +
* JMeter Cookbook (BOOK): https://www.oreilly.com/library/view/jmeter-cookbook/9781783988280/index.html
 
* JMeter - architecture overview: https://wiki.apache.org/jmeter/JMeterArchitecturalOverview
 
* JMeter - architecture overview: https://wiki.apache.org/jmeter/JMeterArchitecturalOverview
 
* JMeter - Component reference: http://jmeter.apache.org/usermanual/component_reference.html
 
* JMeter - Component reference: http://jmeter.apache.org/usermanual/component_reference.html
Line 1,399: Line 1,598:
 
<ref>What You Need to Know About the Difference Between JMeter 4 & 5: https://abstracta.us/blog/performance-testing/difference-between-jmeter4-jmeter5/</ref>
 
<ref>What You Need to Know About the Difference Between JMeter 4 & 5: https://abstracta.us/blog/performance-testing/difference-between-jmeter4-jmeter5/</ref>
 
<ref>How to resolve Root CA Certificate message in JMeter – Windows 10: http://qainsights.com/resolve-root-ca-certificate-message-jmeter-windows-10/</ref>
 
<ref>How to resolve Root CA Certificate message in JMeter – Windows 10: http://qainsights.com/resolve-root-ca-certificate-message-jmeter-windows-10/</ref>
 +
<ref>How to Run JMeter Test Plan Via Docker: https://dzone.com/articles/how-to-run-jmeter-test-plan-via-docker</ref>
 +
<ref>Automatically stop a JMeter load test after too many errors: https://www.redline13.com/blog/2021/03/stop-a-jmeter-load-test/</ref>
 +
<ref>JMeter - Example of Synchronizing Timer (sample usage): http://www.2min2code.com/articles/jmeter_intro/sync_timer</ref>
 +
<ref>Most Popular Load Test Types Over The Years – JMeter Keeps Growing: https://www.redline13.com/blog/2021/08/popular-load-test-types/</ref>
 +
<ref>How to read a value from response header in jMeter?: https://stackoverflow.com/questions/36547421/how-to-read-a-value-from-response-header-in-jmeter</ref>
  
 
=== Penetration ===
 
=== Penetration ===
Line 1,437: Line 1,641:
 
* '''JavaScript & Node.js testing best practices: https://github.com/goldbergyoni/javascript-testing-best-practices/'''
 
* '''JavaScript & Node.js testing best practices: https://github.com/goldbergyoni/javascript-testing-best-practices/'''
 
* Testing Javascript (by Kent C. Dodds): https://testingjavascript.com (learn the smart, efficient way to test any JavaScript application)
 
* Testing Javascript (by Kent C. Dodds): https://testingjavascript.com (learn the smart, efficient way to test any JavaScript application)
 +
  
 
== Tutorials ==
 
== Tutorials ==
Line 1,530: Line 1,735:
 
* [[wikipedia: Statistical process control]] (commonly abbreviated as ''SPC'')
 
* [[wikipedia: Statistical process control]] (commonly abbreviated as ''SPC'')
 
* Perspectives on the SPEC SDET Benchmark: http://www.spec.org/sdm91/sdet/SDETPerspectives.html<ref>What Is Difference Between SDET And TESTER?: https://www.softwaretestingclass.com/what-is-difference-between-sdet-and-tester/ (''SDET'' = Software Development Engineer in Test)</ref>
 
* Perspectives on the SPEC SDET Benchmark: http://www.spec.org/sdm91/sdet/SDETPerspectives.html<ref>What Is Difference Between SDET And TESTER?: https://www.softwaretestingclass.com/what-is-difference-between-sdet-and-tester/ (''SDET'' = Software Development Engineer in Test)</ref>
 +
* Test Case vs. Test Scenario: https://dzone.com/articles/test-case-vs-test-scenario
 +
* How to do NFR Testing ("Non Functional Requirements" Testing): https://capgemini.github.io/testing/how-to-do-nft/
 
* '''Software Quality at Top Speed: http://www.stevemcconnell.com/articles/art04.htm'''
 
* '''Software Quality at Top Speed: http://www.stevemcconnell.com/articles/art04.htm'''
 
* Professional Quality Assurance (PQA): http://www.pqatesting.com/
 
* Professional Quality Assurance (PQA): http://www.pqatesting.com/
Line 1,605: Line 1,812:
 
* Yes, I Test in Production (and so do/should you): https://www.infoq.com/presentations/testing-production-2018/
 
* Yes, I Test in Production (and so do/should you): https://www.infoq.com/presentations/testing-production-2018/
 
* 7 tips for transforming testing: https://blog.scottlogic.com/2020/07/21/7-tips-for-transforming-testing.html
 
* 7 tips for transforming testing: https://blog.scottlogic.com/2020/07/21/7-tips-for-transforming-testing.html
 +
* How one bad algorithm cost traders $440m (and bankrupted Knight Capital) - a look at the worst software testing day ever: https://www.theregister.com/2012/08/03/bad_algorithm_lost_440_million_dollars/
 +
* On the Diverse And Fantastical Shapes of Testing: https://martinfowler.com/articles/2021-test-shapes.html
 +
* Tricentis Acquires AI-based SaaS Test Automation Platform Testim: https://www.tricentis.com/news/tricentis-acquires-ai-based-saas-test-automation-platform-testim/
 +
* A New Day for Testim and Tricentis—and for developers and agile teams: https://www.testim.io/blog/testim-and-tricentis-announcement/*
 +
* 7 Approaches To Testing: https://dzone.com/articles/7-approaches-to-testing
 +
* What Is Sanity Testing? - A Brief Guide: https://dzone.com/articles/what-is-sanity-testing-a-brief-guide?edition=719434
 +
* Sanity vs Smoke Testing: What’s the Difference: https://dzone.com/articles/sanity-vs-smoke-testing-whats-the-difference
 +
* Writing tests is NEVER a mistake: https://springbootlearning.medium.com/writing-tests-is-never-a-mistake-78d7054f56ba
  
  

Revision as of 04:10, 23 June 2022

Contents

Testing is extremely important for evaluating the overall health, durability, safety, security and adherence to standards of a piece of software or system.




Criteria

7 Testing Criteria:

  1. Beta Testing (does it work?)
  2. Usability Testing (is it simple/usable?)
  3. Content Review (who can use it? practicality of material...)
  4. Learning Outcomes (how does it get used/absorbed?)
  5. Integration into Daily Life (when/where does it fit in existing systems/usages? i.e. training/course curriculums)
  6. Impact on Daily Life (what effect does it have? i.e. medical clinic practice, scheduling appointments, send msgs)
  7. Validity Testing (why do this task or add this feature? are the results relevant/valid...)

Test Strategies

Phased

The "traditional" approach to Testing is that it proceeds after (and in Waterfall strictly only after) all software, applications, supporting systems, etc have been delivered and fully integrated. At the end of the project, the time between "software works" and "software delivered to customer" is often dubbed the "Testing Phase". While this ensures that only "one major pass" of testing theoretically needs to get done, with much lower needs for frequent minor regression tests, it is often too naive to satisfy real-world (constantly changing) business needs.

Often in Agile Development environment, the Phased approach must be at the very least modified to have several "medium sized" iterative phases. Other strategies are to give up on a Phased Testing approach entirely and begin Continuous Testing.


Continuous Testing

Continuous Testing is the alignment of Development and Testing efforts in a recurring, iterative feedback cycle that should last the lifetime of the product/service being continuously tested.

[2] [3] [4] [5] [6] [7] [8]


Shift Left

Shift-Left Testing is the act of moving testing earlier into the delivery cycle, for instance, involving Testers in not just the traditional SDLC testing approach upon delivery of a batch of features, but even earlier at the very least during the Implementation phase (developing test scripts, unit tests, etc together with Development team building features and testing each feature as soon as it becomes available) but even all the way left to the Design phase (writing Test Plans and test case creation to help inform implementation approach) and ideally even further left to the Ideation (identifying any features which don't meet the Test Strategy or would be prohibitively difficult to test for any reason so these can be known as early on as possible) or at very least Requirements phase (through adding clear Acceptance Criteria on each Story that inform Definition of Done and possibly streamline any Test Cases required).

[9]

Shift Right

Shift-Right Testing is about getting our testing heading in the exact opposite direction of Shift-Left Testing, in that it is most often needed by organizations whom have an aversion against "testing in Production", whether legitimate or imagined. This form of testing insists that we should test equally if not more so in Production than we do in Non-Production, because of a number of known limitations to testing only in Non-Production; for instance, It is a known fact that Non-Production (where QA teams traditionally spend most of their test efforts) is practically never identical to Production and can at most be considered "Prod-like" but often lacks critical commonalities such as not having the same live customer data, smaller number of test accounts compared to real accounts, significantly smaller transaction volumes or traffic levels (even during most Performance Testing ramp-up periods), perhaps being run on completely different hardware, VMs, servers, or other inconsistencies between parts of the underlying technology stacks, having different configuration settings, having different non-comparable APIs or "test"-level 3rd party integration points, having different content, etc... the list goes on.

These are all reasons that despite our best intentions, it is fairly naiive to believe that doing most if not all of our testing in Non-Production should guarantee us a high level quality. In reality, what we are doing in those traditional QA environments is just letting our customers be our front-line testers in Production; allowing them to be the first to encounter major issues or notice little imperfections and problems and then report them back to our Operations/Customer-Support teams, for us to then (often at fairly high cost) need to get those teams to log and/or track those issues, perform root cause analysis between several teams, then often more urgently and hastily take action on these "unacceptable production issues" in a perpetually self-fulfilling cycle of mediocre quality. Instead, we must become comfortable "testing in Production". This is the philosophy behind Shift-Right Testing, where we integrate Automated Testing, A/B Testing and Observability & Monitoring tools with more modern Release Management approaches such as Canary releases, Blue-Green releases, Hot Deployments with dynamic/real-time FeatureFlags.


[10]


Types of Testing

[11] [12]

Unit

Unit Testing (sometimes referred to as "local testing" or abbreviated UT) is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures are tested to determine if they are fit for use. Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but it is more commonly an individual function or procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method. Unit tests are short code fragments created by programmers or occasionally by white box testers during the development process. Ideally, each test case is independent from the others. Substitutes such as method stubs, mock objects, fakes, and test harnesses can be used to assist testing a module in isolation. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended.

[13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]

CBUT

Component-Based Usability Testing (CBUT) is a testing approach which aims at empirically testing the usability of an interaction component. The latter is defined as an elementary unit of an interactive system, on which behaviour-based evaluation is possible. For this, a component needs to have an independent, and by the user perceivable and controllable state, such as a radio button, a slider or a whole word processor application. The CBUT approach can be regarded as part of component-based software engineering branch of software engineering.

[24] [25] [26]

Mocks

The following list the main types of mocking approaches, listed from low-to-high fidelity, data-only to business-logic containing code:

* Dummy (data)
* Stub
* Mock
* Spy
* Fake

[27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38]

Functional

Functional Testing is a form of test upon an entire application in isolation from any external dependencies. In this sense the focus is the same as a Unit Test but the context is the entire application (minus any external dependencies) rather than its individual parts/units.

API Testing

A key form of Functional Testing is API Testing which hits an API directly without use of the application's User Interface (UI) which often invokes all phases and dependencies at once (which is more of a holistic/system-level test). Calling individual backend APIs that are depended upon by the front-end can help for monitoring the health of the application and act as a trigger as to the readiness for moving to the next stage of testing for running UI-centric system tests and/or integration. In addition, failures in Functional API Tests which are configured to run on a regular basis can be hooked into notifications to support teams to avoid time wasted on Root Cause Analysis when an area of the application fails due to a failure in a depended upon API.

[44]

Integration

Integration Testing (sometimes called integration and testing, abbreviated I&T) is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.

[45] [46] [47] [48] [49] [50]

Smoke

Smoke Testing for software is typically trying the major functions of the whole piece of software (or recently updated component) before carrying out formal testing, and comes from Smoke Testing in electrical engineering where the term literally means "looking for smoke" when powering electrical items or new connections within/between them for the first time. This type of testing is usually conducted immediately after the integration of software or components into larger systems, as such it could be considered as and conducted within either a part of Integration Testing or System Testing.

[51]

Automated

Automated Tests are repeatable, measurable and isolated test cases that can be run in unison with many other test cases with few or no dependencies. Software Tests have to be repeated often during development cycles to ensure quality. Every time source code is modified software tests should be repeated. For each release of the software it may be tested on all supported operating systems and hardware configurations. Manually repeating these tests is costly and time consuming. Once created, automated tests can be run over and over again at no additional cost and they are much faster than manual tests. Automated software testing can reduce the time to run repetitive tests from days to hours.[52][53]

[60] [61] [62] [63] [64] [65] [66] [67] [68]

Page Object Pattern

[70] [71] [72] [73]

System

System Testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic. As a rule, system testing takes, as its input, all of the "integrated" software components that have passed integration testing and also the software system itself integrated with any applicable hardware system(s). The purpose of integration testing is to detect any inconsistencies between the software units that are integrated together (called assemblages) or between any of the assemblages and the hardware. System testing is a more limited type of testing; it seeks to detect defects both within the "inter-assemblages" and also within the system as a whole.

[74]

Regression

Regression Testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them. The intent of regression testing is to ensure that changes such as those mentioned above have not introduced new faults. One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software. Common methods of regression testing include rerunning previously completed tests and checking whether program behavior has changed and whether previously fixed faults have re-emerged. Regression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change.

[75] [76]

Acceptance

Tests conducted to determine if the requirements of a specification or contract are met.

[77] [78]

UAT

User Acceptance Testing (UAT) is the process of verifying that a solution works for the user. It is not system testing (ensuring software does not crash and meets documented requirements), but rather is there to ensure that the solution will work for the user i.e. test the user accepts the solution (software vendors often refer to as Beta testing). This testing should be undertaken by a Subject-Matter Expert (SME), preferably the owner or client of the solution under test, and provide a summary of the findings for confirmation to proceed after trial or review. In software development, UAT as one of the final stages of a project often occurs before a client or customer accepts the new system. Users of the system perform tests in line with what would occur in real life scenarios. The UAT acts as a final verification of the required business functionality and proper functioning of the system, emulating real-world usage conditions on behalf of the paying client or a specific large customer. If the software works as required and without issues during normal use, one can reasonably extrapolate the same level of stability in production. User tests, usually performed by clients or by end-users, do not normally focus on identifying simple problems such as spelling errors and cosmetic problems, nor showstopper defects, such as software crashes; testers and developers previously identify and fix these issues during earlier unit testing, integration testing, and system testing phases.

[79] [80]

Hallway Usability Testing

[82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92]

Visual Testing

Visual Testing is the act of looking at the general look & feel (theme/layout/colors/images) of a given application (i.e. desktop, web or mobile) and examining in great detail that it adheres to the agreed upon high-fidelity Wireframes/Mock-ups, Visual Style Guides, Design Guides, etc. Traditionally this has been an exteremely time-consuming and expensive task that most companies end up skipping or cutting corners on, simply because there is a limited QA budget which tends to be spent elsewhere (Unit, Functional, Integration, etc). With the increased pace of development and shorter releases cycles that CI/CD efforts have been driving, visual bugs have become significantly more common and reputation-damaging, occurring even at major "DevOps" companies like Amazon, Netflix, etc at the worst possible times.

With Automated Visual Testing tools using any of the following approaches, we can minimize Manual Testing requirements, and maximize detection, reporting & potentially self-correction of such visual defects:

  1. CSS & attribute matching (i.e. CSS selectors, or, img src)
  2. DOM comparison techniques (checking isVisible, isClickable, etc)
  3. Screenshots during UI/E2E Functional Test failures & errors (i.e. Selenium, HP TQM, etc)
  4. Screenshots + Open Source Image Recognition libraries (i.e. OpenCV, TensorFlow, etc)
  5. Screenshots + Pixel-to-Pixel Comparison & driver tools (i.e. SikuliX, etc)
  6. Screenshots + Cloud AI services (like Applitools Eyes, etc)

[93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105]

A/B Testing

In Marketing and Business Intelligence, A/B testing is jargon for a randomized experiment with two variants, A and B, which are the control and treatment in the controlled experiment. It is a form of statistical hypothesis testing with two variants leading to the technical term, Two-sample hypothesis testing, used in the field of statistics. Other terms used for this method include bucket tests and split testing but these terms have a wider applicability to more than two variants. In online settings, such as web design (especially user experience design), the goal is to identify changes to web pages that increase or maximize an outcome of interest (e.g., click-through rate for a banner advertisement). Formally the current web page is associated with the null hypothesis. As the name implies, two versions (A and B) are compared, which are identical except for one variation that might affect a user's behavior. Version A might be the currently used version (control), while Version B is modified in some respect (treatment). For instance, on an e-commerce website the purchase funnel is typically a good candidate for A/B testing, as even marginal improvements in drop-off rates can represent a significant gain in sales.

[127] [128] [129] [130] [131] [132] [133] [134] [135]

Mobile Testing

Open Device Labs

[143] [144] [145] [146] [147]

[148]

Layout

Layout Testing is a form of testing focused on ensuring that responsive web designs retain the desired ratios and relative distances between page elements as resizing occurs and/or breakpoints are toggled.


Accessibility

Accessibility Testing is checking for any potential or known A11Y blockers, such as (but not limited to) those defined by WCAG.

[149] [150]

Performance

Performance Testing in software involves ensuring the quality and reliability of a particular set of that software as well as its components, and the inter-connections between them, in order to get an accurate picture of the health of the whole system. It includes a number of techniques including: Load Testing, Disaster Recovery Preparedness, High-Traffic Response Times, Failover Management, etc.

[151] [152] [153] [154] [155] [156] [157] [158] [159]

Load Testing

[160] [161]

Penetration Testing

Testing for Security vulnerabilities by Hacking, DDOS'ing, etc.

[162] [163] [164] [165] [166] [167] [168] [169] [170]


Physical Penetration Testing

[171]

Exploratory Testing

[172] [173] [174] [175]

QA

Quality Assurance (QA) is a key aspect of the testing process and should be done throughout the development process, as new components are added.

[176]

Continuous Testing

Continuous Testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. For Continuous Testing to work, the scope of testing should include validation of requirements from the bottom up, as well as (if they are used) verification of User Stories to assess the realization of system requirements associated with achieving business goals that prompted codifying of the requirements in the first place.

TDD

Test-Driven Development (TDD) is an approach to software development where Requirements are turned into very specific test case(s), then the software is improved/enhanced to pass the new test(s). This is in contrast to more traditional software development that allows software to be added that is not proven to meet requirements by a specific passing test case/suite.

The following are the 5 steps for proper TDD:

  1. Add a test
  2. Run all tests and see if the new test fails
  3. Write the code
  4. Run tests
  5. Refactor code
TDD.png

[177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187]

ATDD

Acceptance Test Driven Development (ATDD) defines clear Acceptance Criteria (typically "as-tests") first prior to beginning any development. With clarity on the exact tests that will be expected to pass, implementation becomes much easier to validate and realize when it is truly "Done" or "Shippable".

BDD

Behavior Driven Development (BDD) combines practices from TDD and from Acceptance Test Driven Development (ATDD); like these, it includes the practice of writing tests first, but additionally focuses on tests which describe behavior, rather than emphasizing tests which validate or verify status of a unit of implementation. BDD requires clear understanding of the software's intended behavior and actual usage, through discussion with a project's stakeholders.

The practices of BDD include:

  1. Establishing goals of any stakeholders directly related to the business.
  2. Establishing features which will achieve those goals using feature injections.
  3. Establishing behavior of the application or of units of code using examples.
  4. Automating the selected examples to provide quick feedback, transparency & regression testing.

[188]

BDD.jpg

[189] [190] [191] [192] [193] [194]

[195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211]


Three Amigos

The "Three Amigos" model for building "Acceptance Criteria" that inform any Test Suites, Test Cases, Test Steps and/or Test Scenarios and clearly define the testing that QA and/or Business Acceptance Testers carry out.

Agile 3-amigos.png

[212] [213] [214] [215] [216] [217]

DDT

Data-Driven Testing is the loading of initialization values and/or test case input parameters from a source external to the Test(s) such as a properties file, CSV/TSV file, XML/JSON data, or some other form of configuration.

Code Coverage

Code Coverage is a measure used in software testing. It describes the degree to which the source code of a program has been tested. It is a form of testing that inspects the code directly and is therefore a form of white box testing. [218]

[223]

[225] [226] [227] [228]

Code Review

Code Review (also referred to as peer review) is the systematic examination of computer source code upon its being submitted (i.e. committed to SCM) for consideration for inclusion in a broader code base. It is intended to find mistakes overlooked in the initial development phase, improving the overall quality of software. Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.

[230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282]


Software Composition Analysis

Static Code Analysis

Static Code Analysis (SCA) is one of the main disciplines of the broader Software Composition Analysis (SCA) which focuses on code syntax, spacing, variable naming, and quality markers such as closing connections, prevention of memory leaks, detecting coding efficiency anti-patterns, etc.

Frontend LESS linting

stylelint "/apps/alc/clientlibs/**/*.less"
stylelint "/apps/alc/components/**/*.less"
stylelint "/apps/proline/clientlibs/**/*.less"
stylelint "/apps/proline/components/**/*.less"

[283]


LESS-to-CSS compilation

find . -name "*.less" -print0 | xargs -0 lessc
test:lint
autoless --source-map files www

CSS combination

cat *.css > main.css

[284]


JS linting

find . -name "*.js" -print0 | xargs -0 jslint

JS combination

cat *.js > main.js

[285]

YUI compressor CSS minification

java -jar yuicompressor-x.y.z.jar -v main.css -o main.min.css

JS minification

java -jar yuicompressor-x.y.z.jar -v main.js -o main.min.js

[286]

Node.JS Unit Testing (optional... WIP)

npm-run-all test:*


[309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324]

Refactoring

[326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346]

Legacy Code

Legacy Systems are methods/approaches, technologies, computer hardwares, software systems, watch/mobile/tablet/desktop/TV Application programs, Application Programming Interfaces (APIs) and/or Software Development Kits (SDKs) "of, relating to, or being a previous or outdated computer system" yet still in use by and/or depended upon by a company or particular group of users.

Legacy Code is any computer source code deemed old, antiquated, inefficient, excessively complex, confusing, hard-to-read, buggy/error-prone, obsolete itself or supporting something obsolete, using deprecated or decommissioned APIs/SDKs, or, simply an organization's existing codebase that was written over many years and which has not sufficiently evolved to reflect modern best practices. Often referencing a system as "legacy" implies that the system is out of date and/or in need of replacement, however, it could also be used in a respectful manner to indicate that it was an instrumental technology that paved the way for further standards or systems that are to follow it.

Long-lived code is susceptible to "software rot"[347], where changes to the runtime environment, or surrounding hardware/software may require maintenance or emulation of some kind to keep it working. Legacy code may be present to support legacy hardware, a separate legacy system, or a legacy customer using an old feature or software version.

While the term usually refers to source code, it can also apply to executable code that no longer runs on a later version of a system, or requires a compatibility layer to do so.

[348] [349]


Strangler Pattern

[350] [351] [352] [353] [354] [355]


Automated Code Refactors

WebDriver

[364] [365] [366] [367] [368] [369] [370] [371]

Debugging

[372] [373] [374] [375]\ [376] [377]


Root Cause Analysis

Tools

Test Automation

[383] [384] [385] [386] [387]

Appium

[391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403]

[404]

[405] [406]

[407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444]

Cypress

Test Management

HP QualityCenter

SpiraTest

[477]

Simulators/Emulators


Web Services

[478]

SOAP UI

[480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508]

Service Virtualization

ServiceV

[509] [510] [511] [512]

Hoverfly

[513]

Load UI

[514] [515]

Language-Specific

JavaScript & AJAX

[519] [520] [521] [522] [523] [524]

Selenium

[528] [529] [530] [531] [532]

[545] [546] [547] [548] [549] [550] [551]

[552] [553] [554] [555] [556] [557] WebDriver Manager: https://github.com/bonigarcia/webdrivermanager/ (allows to automate the management of the drivers) WebDriver Manager – EXAMPLES: https://github.com/bonigarcia/webdrivermanager-examples | EX#1-ChromeHeadless | EX#2-AppiumAndroidSeleniumGrid | EX#3-FirefoxChrome | EX#4-MultiBrowser | EX#5-Performance

[558] [559] [560]

[561] [562] [563] [564] [565] [566] [567] [568] [569] [570] [571] [572] [573] [574] [575] [576] [577] [578] [579] [580] [581] [582] [583] [584] [585] [586] [587] [588] [589] [590] [591] [592] [593] [594] [595] [596] [597] [598] [599] [600] [601] [602] [603] [604] [605] [606] [607] [608] [609] [610] [611] [612] [613] [614] [615] [616] [617] [618] [619] [620] [621] [622] [623] [624] [625] [626] [627] [628] [629] [630] [631] [632] [633] [634] [635] [636] [637] [638] [639] [640] [641] [642] [643] [644] [645] [646] [647] [648] [649] [650] [651] [652] [653] [654] [655] [656] [657] [658] [659] [660] [661] [662] [663] [664] [665] [666] [667] [668]


Selenium GRID

[669] [670] [671] [672] [673] [674] [675] [676] [677] [678] [679] [680] [681] [682] [683] [684]


[685] [686] [687] [688] [689] [690] [691] [692] [693] [694] [695] [696] [697] [698] [699] [700] [701] [702] [703] [704] [705] [706] [707] [708]

Selenium IDE

[709][710] [711][712] [713] [714] [715] [716]

[721] [722] [723] [724] [725] [726] [727] [728] [729] [730] [731] [732] [733] [734] [735] [736] [737] [738] [739] [740] [741] [742] [743] [744] [745] [746] [747] [748] [749] [750] [751] [752] [753] [754] [755] [756] [757] [758] [759] [760] [761] [762] [763] [764] [765] [766] [767] [768] [769] [770] [771] [772] [773] [774] [775] [776] [777] [778] [779] [780] [781] [782] [783] [784] [785] [786] [787] [788] [789] [790] [791] [792] [793] [794] [795] [796] [797] [798] [799] [800] [801] [802] [803] [804] [805] [806] [807] [808] [809] [810] [811] [812] [813] [814] [815] [816][817][818][819] [820] [821] [822] [823] [824] [825] [826] [827] [828] [829] [830] [831] [832]

jsUnit
FireUnit

PhantomJS

CasperJS


JAVA

jUnit

jUnit is the leading Unit Testing framework from the xUnit family.

EasyMock

[834] [835] [836] [837] [838] [839] [840]

Mockito

[841] [842] [843] [844] [845] [846] [847] [848] [849] [850] [851] [852] [853] [854]

PowerMock

PowerMock is an extension to existing Mocking frameworks that enable testing of otherwise "untestable" areas such as:

  1. final objects
  2. static methods
  3. private methods
  4. constructors
  5. enums


TestNG

TestNG is a popular Java framework meant to act as a complete testing suite rather than just a basic unit testing framework like jUnit. It supports Group Testing, Testing Dependencies and Failed Test Skipping (all of which jUnit does not, without further extensions or plugins).

t2framework

T2 is a powerful automated unit testing tool for JAVA.

FitNesse

PHP

PHP Unit


Ruby

Flex

FlexUnit
FlexMonkey
FlexCover


HTML


C++

System

Quick Test Pro

Automated

Sikuli

[866] [867] [868] [869] [870] [871] [872] [873] [874] [875] [876] [877] [878] [879] [880] [881] [882] [883] [884] [885] [886]

Performance

Taurus

[887]

LoadRunner

JMeter

Apache JMeter is a 100% pure Java application designed to load test client/server software (such as a web application). It may be used to test performance both on static and dynamic resources such as static files on servers, Java Servlets, ASP.NET, PHP, CGI scripts, Java objects, databases, FTP servers, and more. JMeter can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types.

Additionally, JMeter can help you regression test your application by letting you create test scripts with assertions to validate that your application is returning the results you expect. For maximum flexibility, JMeter lets you create these assertions using regular expressions.

JMeter Performance Tests are stored in JMX format with the following properties (loaded in this order):

  1. Thread Group
  2. Config Element(s)
  3. Pre-Processor(s)
  4. Timer(s)
  5. Logic Controller(s)/Sampler(s)
  6. Post-Processor(s)
  7. Assertion(s)
  8. Listener(s)

The most common uses of JMeter are for Performance Testing (under typical load), Load/Stress Testing (finding maximal load), Benchmarking, Failover Testing (removing one or more "nodes" in a network to check availability/speed, etc) and Disaster Recovery (bringing nodes that were out of the Load Balancer back into service).

[891] [892] [893] [894] [895] [896] [897] [898] [899] [900] [901] [902] [903] [904] [905] [906] [907] [908] [909] [910] [911] [912] [913] [914] [915] [916] [917] [918] [919] [920] [921] [922] [923] [924] [925] [926] [927] [928] [929] [930] [931] [932] [933] [934] [935] [936] [937] [938] [939] [940] [941] [942] [943] [944] [945] [946] [947] [948] [949] [950] [951] [952] [953] [954] [955] [956] [957] [958] [959] [960] [961] [962] [963] [964] [965] [966] [967] [968] [969] [970] [971] [972] [973] [974] [975] [976] [977] [978] [979] [980] [981] [982] [983] [984] [985] [986] [987] [988]

Penetration


Resources


Tutorials


External Links

[1,031] [1,032] [1,033] [1,034] [1,035] [1,036]

[1,039][1,040]


References

  1. How do I use Headless Chrome in Chrome 60 on Windows 10?: https://stackoverflow.com/questions/45364102/how-do-i-use-headless-chrome-in-chrome-60-on-windows-10
  2. Continuous Testing -- Your Ultimate Summer Reading Guide: https://dzone.com/articles/continuous-testing-your-ultimate-summer-reading-gu
  3. Continuous Testing -- Transforming Testing for Agile and DevOps: https://dzone.com/refcardz/continuous-testing-101
  4. Ultimate Guide to Reducing the Amount of Defects and other Waste in your Product: https://mysoftwarequality.wordpress.com/2016/10/17/ultimate-guide-to-reducing-the-amount-of-defects-and-other-waste-in-your-product/
  5. Wasteful Activity #2 -- Playing with defects: https://wastebyexample.wordpress.com/2015/05/18/wasteful-activity-2-playing-with-defects/
  6. How I stopped logging bugs and started living happy: https://mysoftwarequality.wordpress.com/2013/09/10/how-i-stopped-logging-bugs-and-started-living-happy/
  7. Continuous Testing: What, Why, and How?: https://www.continuoustesting.com/2019/02/12/continuous-testing-what-why-and-how/
  8. Shift Left, Shift Right -- What Are We Shifting, and Why?: https://dzone.com/articles/shift-left-shift-right-what-are-we-shifting-and-wh
  9. What is shift-left testing?: https://blog.parasoft.com/what-is-the-shift-left-approach-to-software-testing
  10. How to Implement Testing in Production: https://www.split.io/blog/how-to-implement-testing-in-production/ (nice visual timeline to implement PROD testing)
  11. Different kinds of testing: https://blog.frankel.ch/different-kinds-testing/
  12. Defining Test Boundaries – An example: https://www.simpleorientedarchitecture.com/defining-test-boundaries/
  13. The Complete Unit Testing Collection (ROUND-UP): https://dzone.com/articles/the-complete-unit-testing-collection
  14. What does “DAMP not DRY” mean when talking about unit tests?: https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests
  15. Lean Testing or Why Unit Tests are Worse than You Think: https://blog.usejournal.com/lean-testing-or-why-unit-tests-are-worse-than-you-think-b6500139a009
  16. Unit Test Your Architecture with ArchUnit: https://blog.scottlogic.com/2019/12/05/unit-test-your-architecture-with-archunit.html | DOCS | EXAMPLES
  17. Writing Unit Tests for a Spring REST API With Kotlin and JUnit 5: Configuration: https://www.petrikainulainen.net/programming/testing/writing-unit-tests-for-a-spring-rest-api-with-kotlin-and-junit-5-configuration/
  18. 10 Awesome Features of Pytest for Unit Testing: https://dzone.com/articles/10-awesome-features-of-pytest
  19. Unit testing Bash scripts: https://advancedweb.hu/unit-testing-bash-scripts/
  20. Pragmatic Front-End Testing Strategies: https://medium.com/@toastui/pragmatic-front-end-testing-strategies-1-4a969ab09453
  21. 6 Small Unit Testing Tips: https://henrikwarne.com/2020/12/28/6-small-unit-testing-tips/
  22. Rethinking Unit Test Assertions with "RITEway wrapper" on top of "Tape" lightweight Unit Testing library: https://medium.com/javascript-scene/rethinking-unit-test-assertions-55f59358253f | SRC
  23. How I Wish I Had Some Unit Tests! An Example: https://blog.thecodewhisperer.com/permalink/how-i-wish-i-had-some-unit-tests-an-example
  24. Concierge Test .vs. "Wizard of Oz" Test: https://medium.com/@Kromatic/concierge-vs-wizard-of-oz-test-b6d2f71524a
  25. What Type of Lean Startup Experiment Should I Run?: https://grasshopperherder.com/what-type-of-lean-startup-experiment-should-i-run/ (Generative Research .vs. Evaluative Experiment)
  26. Testing Storybook Components in Any Browser – Without Writing Any New Tests!: https://applitools.com/blog/storybook-components-cross-browser-testing/ (simple "Test Stack" diagram that actually includes separate "Component Testing" category)
  27. Mocking in Unit Tests: https://dzone.com/articles/mocking-in-unit-tests
  28. The Test Double Rule of Thumb: http://engineering.pivotal.io/post/the-test-double-rule-of-thumb/
  29. When Writing Unit Tests, Don’t Use Mocks: https://sendgrid.com/blog/when-writing-unit-tests-dont-use-mocks/
  30. You Still Don’t Know How to Do Unit Testing (and Your Secret is Safe with Me): https://stackify.com/unit-testing-basics-best-practices/
  31. How exactly should Unit Tests be written without Mocking extensively?: https://softwareengineering.stackexchange.com/questions/382087/how-exactly-should-unit-tests-be-written-without-mocking-extensively
  32. Mocks or the real thing? Tips for better unit testing: https://blog.codecentric.de/en/2017/07/mocks-real-thing-tips-better-unit-testing/
  33. Mock yourself, not your tests: https://hernantz.github.io/mock-yourself-not-your-tests.html
  34. J.B. Rainsberger - Integrated Tests Are A Scam: https://vimeo.com/80533536
  35. You Don't Hate Mocks; You Hate Side-Effects: https://blog.thecodewhisperer.com/permalink/you-dont-hate-mocks-you-hate-side-effects
  36. How to Mock in Bash Unit Tests using aliases, functions, and PATH override: https://advancedweb.hu/how-to-mock-in-bash-tests/
  37. How to Test Java HTTP Client Usages (e.g. OkHttp, Apache HttpClient): https://rieckpil.de/how-to-test-java-http-client-usages-e-g-okhttp-apache-httpclient/
  38. "Wiremock" for RSocket: https://spring.io/blog/2021/06/02/wiremock-for-rsocket (yet another "tricky to Mock" area now covered)
  39. API Load Testing with cURL and RedLine13: https://www.redline13.com/blog/2019/11/api-load-testing-with-curl-and-redline13/
  40. Testing APIs Using Postman: https://dzone.com/articles/testing-apis-using-postman
  41. Postman Tutorial for Beginners with API Testing Example: https://www.guru99.com/postman-tutorial.html
  42. Karate framework -- REST API testing made easy!: https://aboullaite.me/karate-framework-rest-testing/
  43. Karate Netty -- standalone JAR: https://github.com/intuit/karate/tree/master/karate-netty#standalone-jar
  44. 10 API Testing Tips for Beginners (SOAP and REST): https://dzone.com/articles/10-api-testing-tips-for-beginners-soap-amp-rest
  45. Splitting Unit and Integration Tests using Maven & Surefire plugin: https://tech.asimio.net/2019/04/08/Splitting-Unit-and-Integration-Tests-using-Maven-and-Surefire-plugin.html
  46. Integrated Tests Are A Scam: http://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam
  47. The Pitfalls of SIT: https://blog.scottlogic.com/2018/08/20/the-pitfalls-of-sit.html
  48. System INTEGRATION Testing (SIT): Complete Tutorial: https://www.guru99.com/system-integration-testing.html
  49. What is Integration Testing (tutorial with Integration Testing example): https://www.softwaretestinghelp.com/what-is-integration-testing/
  50. Easy Jakarta EE Integration Testing with the Payara Platform and Testcontainers: https://blog.payara.fish/jakarta-ee-integration-testing-with-testcontainers
  51. About the origin of Smoke Testing and the confusion it comes with: https://medium.com/@AikoPath/about-the-origin-of-smoke-testing-and-the-confusion-it-comes-with-dfa18eb8ce0 (origin was either in Electrical Engineering i.e. "turn on your circuit and if you see smoke from any wires, its wrong/bad", or, Mechanical Engineering/plumbing to check for leaks in pipes or buildings by pumping in safe smoke/steam to see if any escapes... or maybe both)
  52. Why Automated Testing?: http://support.smartbear.com/articles/testcomplete/manager-overview/
  53. Verification and Validation in Automated Testing: http://dzone.com/articles/verification-and-validation-in-automated-testing
  54. Automated Front-end Testing (PRESENTATION): https://rupl.github.io/frontend-testing/#/
  55. Top 15 Benefits of Automated Testing Tools: http://dzone.com/articles/top-15-benefits-of-automated-testing-tools
  56. PHP Travels: https://phptravels.com/demo/ (sample PHP application for Automated Testing "training/practice")
  57. Address Book example: https://address-book-example.herokuapp.com (good example where all functionality is completely behind Sign Up & Login processes)
  58. Automation Practice (PHP-based) site: http://automationpractice.com/index.php?id_product=1&controller=product
  59. BlazeMeter demo site: http://blazedemo.com/
  60. Eradicating Non-Determinism in Tests: https://martinfowler.com/articles/nonDeterminism.html
  61. Flaky Tests at Google and How We Mitigate Them: https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html
  62. 13 Scary Test Automation Practices: https://www.joecolantonio.com/13-scary-test-automation-practices/
  63. Top 10 Reasons (heard from procrastinators/nay-sayers) NOT To Do Automated Testing!: https://bespoken.io/blog/top-10-reasons-not-to-test/
  64. 3 ways to get test automation done within your sprints: https://techbeacon.com/app-dev-testing/3-ways-get-test-automation-done-within-your-sprints
  65. Angie Jones presents -- Test Automation Beyond Java 8: https://applitools.com/blog/java-test-automation/
  66. Using GitHub Copilot to Automate Tests: https://applitools.com/blog/using-github-copilot-to-automate-tests/
  67. Bad Spin – An Example of Ignoring the Automation Ecosystem: https://responsibleautomation.wordpress.com/2021/07/27/bad-spin-an-example-of-ignoring-the-automation-ecosystem/
  68. Automation Testing vs. Manual Testing - What's the Difference (side-by-side)?: https://dzone.com/articles/automation-testing-vs-manual-testing-whats-the-dif?edition=738519
  69. Page Object Pattern with TestNG: https://stackoverflow.com/questions/21967914/page-object-pattern-with-testng
  70. PageFactory, Page Objects and locators from an external (JSON) file: https://rationaleemotions.wordpress.com/2016/06/27/pagefactory-page-objects-and-locators-from-an-external-file/
  71. Page Object Pattern using PageFactory: http://toolsqa.com/selenium-webdriver/page-object-pattern-model-page-factory/
  72. Page Object Model (POM) & Page Factory in Selenium: Complete Tutorial: https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html
  73. Getting started with Page Object Pattern for your Selenium tests: https://www.pluralsight.com/guides/getting-started-with-page-object-pattern-for-your-selenium-tests
  74. What is System Testing – A Ultimate Beginner’s Guide: https://www.softwaretestinghelp.com/system-testing/
  75. Measuring Agility and Architectural Integrity: http://walkerroyce.com/PDF/Measuring_Agility.pdf
  76. What is Regression Testing?: https://www.mabl.com/articles/what-is-regression-testing
  77. What is Acceptance Testing?: https://www.tutorialspoint.com/software_testing_dictionary/acceptance_testing.htm
  78. How to Dockerize your End-to-End acceptance tests: https://medium.freecodecamp.org/how-to-dockerize-your-end-to-end-acceptance-tests-dbb593acb8e0
  79. What is the difference between system integration testing and user acceptance testing?: https://www.quora.com/What-is-the-difference-between-system-integration-testing-and-user-acceptance-testing
  80. Introduction to Capybara: https://testautomationu.applitools.com/capybara-ruby
  81. The Joel Test for 2017: https://myers.io/2017/04/04/the-joel-test-for-2017/
  82. Hallway Usability Testing, First Fridays Usability Program: https://www.slideshare.net/DigitalGov/hallway-usability-testing-first-fridays-usability-program
  83. Take Your UX on a Trial Run With Hallway Testing: https://www.appmakr.com/blog/ux-hallway-testing/
  84. Hallway usability testing -- How much of the UI do you actually make functional?: https://stackoverflow.com/questions/1864212/hallway-usability-testing-how-much-of-the-ui-do-you-actually-make-functional
  85. Study.com -- E-Learning course "Usability Testing Methods" - Definition & Hallway Usability: https://study.com/academy/lesson/usability-testing-methods-definition-hallway-usability.html
  86. Hallway Usability Testing and why it is important for your Startup: https://cnu.name/hallway-usability-testing/
  87. Apple's Usability Guidelines: http://www.apple2scans.net/files/1982-A2F2116-m-a2e-aiiedg.pdf (section on Usability Testing)
  88. 5 Killer Hallway Usability Testing Tips: https://usabilitylab.walkme.com/5-killer-hallway-usability-testing-tips/
  89. 10 Tips for Better Hallway Usability Testing: https://digital.gov/2014/02/19/10-tips-for-better-hallway-usability-testing/
  90. The complete guide to User Testing -- get to know your users (not through interviews or surveys): https://uxdesign.cc/little-things-in-ux-design-part-09-get-to-know-your-users-and-not-through-interviews-or-5f88c03b631b (9th part in a series on UX Design)
  91. Talking to users – but how? – Part 3: https://blog.codecentric.de/en/2020/03/talking-to-users-but-how-part-3/ (3rd part in a series on UX Design with purpose and 'product-market fit")
  92. Why You Only Need to Test with 5 Users: https://www.nngroup.com/articles/why-you-only-need-to-test-with-5-users/
  93. What is Visual Testing? A comprehensive explanation: https://applitools.com/blog/visual-testing
  94. Automated Visual Testing -- A Fast Path To Test Automation Success: https://testautomationu.applitools.com/automated-visual-testing-a-fast-path-to-test-automation-success/
  95. Wrong Tool, Wrong Time -- Re-Thinking Test Automation: https://applitools.com/blog/state-of-visual-testing-research-webinar
  96. Easy Parallel Mobile Visual Testing with Appium: https://applitools.com/blog/parallel-visual-testing-with-appium
  97. Meeting CI/CD Requirements -- Key Factors in Test Automation We Must Consider: https://applitools.com/blog/ci-requirements | [1]
  98. Things to consider when running visual tests in CI/CD pipelines - Getting Started (Part 1): https://jessicadeen.com/getting-started-visual-tests-cd/
  99. Things to consider when running visual tests in CI/CD pipelines - Azure Devops & GitHub Actions (Part 2): https://jessicadeen.com/visual-testing-actions-azdevops/
  100. Things to consider when running visual tests in CI/CD pipelines - Container Pipeline Edition (Part 3): https://jessicadeen.com/visual-test-consider-container/
  101. Visual Test-Driven Development For Responsive Interface Design (using the "Galen framework"): https://www.smashingmagazine.com/2015/04/visual-test-driven-development-responsive-interface-design/
  102. Galen framework: https://galenframework.com | DOCS - syntax (DSL-based Visual Testing)
  103. Applitools Recognized as ‘Major Player’ in IDC MarketScape: Worldwide Cloud Testing 2022 Vendor Assessment: https://applitools.com/blog/applitools-recognized-major-player-idc-marketscape-worldwide-cloud-testing-2022/
  104. Applitools Eyes for Storybook: https://github.com/applitools/eyes.sdk.javascript1/tree/master/packages/eyes-storybook
  105. Storybook Play Functions Now Supported in Applitools: https://applitools.com/blog/storybook-play-functions-now-supported-in-applitools/
  106. wikipedia: Evergage
  107. Salesforce "Interaction Studio": https://www.salesforce.com/products/marketing-cloud/customer-interaction/ (acquisition & re-branding of "Evergage" personalization service)
  108. The Holy Grail of Email Marketing - A/B Testing Plus Engagement Scoring: https://www.salesforce.com/blog/2018/01/a-b-testing-for-email-marketing.html (steals graphic from Optimizely)
  109. How To Get The Most Out Of A/B Testing In Salesforce Marketing Cloud?: http://blog.amogus.com/ab-testing-salesforce-marketing-cloud/
  110. Startup Spotlight - Evergage's Personalization Platform: http://www.enterpriseappstoday.com/crm/startup-spotlight-evergages-personalization-platform.html
  111. Why Salesforce Is Buying Evergage: https://pulse2.com/why-salesforce-is-buying-evergage/
  112. Salesforce Acquires Evergage, Will Use Personalization to Enhance Customer Data and Deliver More Relevant Experiences: https://martechseries.com/analytics/customer-data-platforms/salesforce-acquires-evergage-will-use-personalization-enhance-customer-data-deliver-relevant-experiences/
  113. The Beginner’s Guide to Google Optimize: https://conversionxl.com/blog/google-optimize/
  114. Analytics Testing: https://essenceoftesting.blogspot.ca/2017/03/analytics-testing.html
  115. WAAT 2.0 (BETA) available for use: https://essenceoftesting.blogspot.ca/2016/09/waat-20-beta-available-for-use.html
  116. ProxyManager class, for managing your BrowserMob proxy, manipula: ting HAR files, etc https://gist.github.com/mmerrell/f3409f5e9366cb62457f100bc92d46ba
  117. Google tutorial on Puppeteer: https://developers.google.com/web/tools/puppeteer/
  118. Puppeteer - quick start guide: https://developers.google.com/web/tools/puppeteer/get-started
  119. Browser Automation with Puppeteer: https://www.sitepen.com/blog/browser-automation-with-puppeteer/ (nice recap of Chrome headless command-line run commands)
  120. Headless Testing with Puppeteer: https://dev.to/headlesstesting/headless-testing-with-puppeteer-bbo
  121. Puppeteer with Firefox: https://chercher.tech/puppeteer/puppeteer-with-firefox
  122. Puppeteer .vs. Selenium: https://linuxhint.com/puppeteer_vs_selenium/
  123. The power of Headless Chrome and browser automation (Google I/O '18): https://www.youtube.com/watch?v=lhZOFUY1weo
  124. Puppeteer -- step-by-step tutorial series: https://www.youtube.com/playlist?list=PL-hNDoK1-od_-4jX3ZL8LMpvlxmZ4cp10
  125. The Ultimate Unit Testing Cheat-sheet: https://gist.github.com/yoavniran/1e3b0162e1545055429e (for Mocha, Chai & Sinon)
  126. An Overview of JavaScript Testing in 2020: https://medium.com/welldone-software/an-overview-of-javascript-testing-7ce7298b9870
  127. Applitools Visual Test Automation of A/B Testing cases — Validating Multiple Variations: https://dzone.com/articles/ab-testing-validating-multiple-variations
  128. 10 Best A/B and Multivariate Testing Tools for Conversion Rate Optimization: https://uxplanet.org/10-best-a-b-and-multivariate-testing-tools-for-conversion-rate-optimization-d5f461f06a1d
  129. Selecting the best artwork for videos through A/B testing: https://netflixtechblog.com/selecting-the-best-artwork-for-videos-through-a-b-testing-f6155c4595f6
  130. Decision Making at Netflix: https://netflixtechblog.com/decision-making-at-netflix-33065fa06481
  131. Quasi Experimentation at Netflix: https://netflixtechblog.com/quasi-experimentation-at-netflix-566b57d2e362
  132. What is an A/B Test? (how Netflix thinks about them anyway): https://netflixtechblog.com/what-is-an-a-b-test-b08cc1b57962
  133. Interpreting A/B test results - false positives and statistical significance: https://netflixtechblog.com/interpreting-a-b-test-results-false-positives-and-statistical-significance-c1522d0db27a
  134. Experimentation is a major focus of Data Science across Netflix: https://netflixtechblog.com/experimentation-is-a-major-focus-of-data-science-across-netflix-f67923f8e985
  135. From weeks to seconds - building “mega-assets” to uncover joyful moments!: https://netflixtechblog.medium.com/from-weeks-to-seconds-building-mega-assets-to-uncover-joyful-moments-b3cedcf37ffc (testing/optimizing thumbnail variations)
  136. A new beginning - entertainment on mobile: https://essenceoftesting.blogspot.in/2016/12/a-new-beginning-entertainment-on-mobile.html
  137. How to enable seamless running of appium tests on developer machines?: https://essenceoftesting.blogspot.in/2016/12/how-to-enable-seamless-running-of.html
  138. Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.in/2017/02/features-of-my-android-test-automation.html
  139. How to upgrade the appium-uiautomator2-driver version for appium 1.6.3?: https://essenceoftesting.blogspot.in/2017/02/how-to-upgrade-appium-uiautomator2.html
  140. Finding my way out of bottomless pit with Appium & Android 7.0 for parallel test runs: https://essenceoftesting.blogspot.in/2017/02/finding-my-way-out-of-bottomless-pit.html
  141. Sharing implementation of cucumber-jvm - Appium test framework: https://essenceoftesting.blogspot.in/2017/02/sharing-implementation-of-cucumber-jvm.html
  142. Features of my Android Test Automation Framework: https://essenceoftesting.blogspot.ca/2017/02/features-of-my-android-test-automation.html
  143. How To Establish An Open Device Lab For Better Mobile TestingL https://www.smashingmagazine.com/2012/09/establishing-an-open-device-lab/
  144. Testing Mobile -- Emulators, Simulators And Remote Debugging: https://www.smashingmagazine.com/2014/09/testing-mobile-emulators-simulators-remote-debugging/
  145. Test on Real Mobile Devices without Breaking the Bank: https://bradfrost.com/blog/post/test-on-real-mobile-devices-without-breaking-the-bank/
  146. An Experience Report Building a Mobile Automated Test Lab With SOASTA TouchTest: evolvingtowardagile.blogspot.com/2013/04/an-experience-report-building-mobile.html
  147. 3 Ways to run Automated Tests on Azure DevOps: https://blog.techfabric.com/3-ways-to-run-automated-tests-on-azure-devops/
  148. Microsoft Introduces a Fully-Managed Azure Load Testing Service in Preview : https://www.infoq.com/news/2021/12/azure-load-testing-preview/
  149. Shifting Accessibility Testing to the Left: https://applitools.com/blog/shifting-accessibility-testing-to-the-left/
  150. Mobile-Accessibility Testing Toolbox (iOS & Android): https://www.tpgi.com/on-demand-webinar-mobile-accessibility-testing-toolbox-2
  151. Performance Testing resources - Articles, Books & Papers: http://www.perftestplus.com/pubs.htm
  152. How to interpret and report your performance test results (so people actually read them): https://www.soasta.com/blog/how-to-interpret-report-performance-test-results/
  153. Mobile Load Testing -- The Next Phase in Mobile Testing: http://dzone.com/articles/mobile-load-testing-the-next-phase-in-mobile-testi-1
  154. Front-End Performance -- The Dark Side: https://dev.opera.com/blog/timing-attacks/
  155. Web Performance Talk (Mobile .vs. Desktop) - April 2016: https://docs.google.com/presentation/d/11fLFu-Mq5zM3wAfZkMbEzJSu6dy9cp2HH0njU11OPPI/
  156. Performance Test Results 2016: https://www.slideshare.net/fullscreen/eproegler/interpreting-performance-test-results/
  157. Top Performance Metrics for Java, .NET, PHP, Node.js, and Python: https://dzone.com/articles/top-performance-metrics-for-java-net-php-nodejs-an
  158. Automated Performance Tests in Jenkins CI Environments: http://dzone.com/articles/automated-performance-tests-in-jenkins-ci-environm
  159. Measuring Web Page Performance with Selenium 2 and the Web Timings API: http://deanhume.com/measuring-web-page-performance-with-selenium-2-and-the-web-timings-api/
  160. SOAK TEST – A PRACTICAL EXAMPLE: https://octoperf.com/blog/2019/02/21/soak-test-practical-example/
  161. A Beginner’s Guide to Interpreting Load Test Results: https://www.redline13.com/blog/2021/04/a-beginners-guide-to-interpreting-load-test-results/
  162. Tamper Dev: https://tamper.dev | DEMO (extension to edit HTTP/HTTPS requests & responses as they happen without need of a proxy)
  163. Top 10 Free Hacking Tools for Penetration Testers: https://dzone.com/articles/top-10-free-hacking-tools-for-penetration-testers
  164. PortDog - Simple Python Script to Detect Port Scanning Techniques: https://www.kitploit.com/2015/08/portdog-simple-python-script-to-detect.html
  165. REST API Security -- Pen Tests: https://dzone.com/articles/rest-api-security-tests-pen-test
  166. 9 Load Testing Best Practices (Don’t Make These Mistakes): https://testguild.com/best-load-testing/
  167. API path discovery and more PenTesting tips with Chrome Developer Tools: https://www.youtube.com/watch?v=Y1S5s3FmFsI
  168. Introduction to GraphQL pentesting: https://www.youtube.com/watch?v=OQCgmftU-Og
  169. My Favorite Pentest Tools (Top 15): https://medium.com/geekculture/my-favorite-pentest-tools-top-15-52e923d77d45
  170. Penetration Testing To Prevent API Attack: https://outpost24.com/blog/Penetration-testing-to-prevent-API-attack
  171. I'll Let Myself In -- Tactics of Physical Pen Testers: https://www.youtube.com/watch?v=rnmcRTnTNC8'
  172. Why test automation is a lot like bubble wrap: https://www.ontestautomation.com/why-test-automation-is-a-lot-like-bubble-wrap/
  173. Exploratory Testing explained: https://martinfowler.com/bliki/ExploratoryTesting.html
  174. Exploratory Testing - A Detailed Guide: https://dzone.com/articles/exploratory-testing-a-detailed-guide
  175. Exploratory Testing (ET) - What, When, Why and How: https://medium.com/xandr-tech/exploratory-testing-et-what-when-why-and-how-a29a879cb20e
  176. QA best practices -- How to Do Smart TV Application Testing Right: https://stage-red.exadel.com/news/qa-best-practices-how-to-do-smart-tv-application-testing-right/
  177. TDD .vs. BDD: http://www.developmentthatpays.com/files/DevelopmentThatPays-TDDvsBDD-CheatSheet-1-4.pdf
  178. Why TDD?: https://builttoadapt.io/why-tdd-489fdcdda05e
  179. 8 Observations On Test Driven Development: https://medium.com/@solidi/8-observations-on-test-driven-development-a9b5144f868
  180. A comparison of "assertion" libraries: https://blog.frankel.ch/comparison-assertion-libraries/
  181. Test-Driven Development -- Really, It’s a Design Technique: https://www.infoq.com/articles/test-driven-design-java
  182. Unit testing & TDD concepts with best practice guidelines: https://www.slideshare.net/tamanm/unit-testing-tdd-concepts-with-best-practice-guidelines
  183. Why TDD: https://builttoadapt.io/why-tdd-489fdcdda05e
  184. Test-Driven Development - Really, It’s a Design Technique: https://www.infoq.com/articles/test-driven-design-java
  185. TDD Classic State Based UI (an example in Java+Swing): http://blog.code-cop.org/2020/02/tdd-classic-state-based-ui.html
  186. A Natural Microflow in TDD: https://blog.thecodewhisperer.com/permalink/a-natural-microflow-in-tdd (sometimes Red-Green-Refactor-Refactor-RemoveTests is ok too)
  187. How TDD Can Prevent Over-Engineering (on the front-end too): https://itnext.io/how-tdd-can-prevent-over-engineering-1265a02f8863
  188. Behaviour Driven Development (BDD): https://dzone.com/articles/behaviour-driven-development-bdd-1
  189. BDD: https://www.agilealliance.org/glossary/bdd/
  190. Behavior Driven Development (SLIDES): https://www.slideshare.net/marakana/behavior-driven-development-11222326
  191. Test-Driven Development (TDD) .vs. Behaviour-Driven Development (BDD): https://businessanalystlearnings.com/technology-matters/2014/8/13/test-driven-vs-behaviour-driven-development
  192. Behaviour-Driven Development: https://www.future-processing.pl/blog/behaviour-driven-development/
  193. What are the different Agile Testing Methodology? Test Driven Development, Behavior Driven Development: http://istqbexamcertification.com/what-are-the-different-agile-testing-methodology-test-driven-development-behavior-driven-development/
  194. What is BDD and What Does It Mean for Testers?: https://dzone.com/articles/what-is-bdd-and-what-does-it-mean-for-testers-abst
  195. TDD and BDD in Java 8 - what's in it for me?: https://www.slideshare.net/wakaleo/tdd-and-bdd-in-java-8-whats-in-it-for-me
  196. BDD Using Cucumber JVM and Groovy (PRESENTATION): https://www.infoq.com/presentations/bdd-cucumber-groovy
  197. Selenium Integration with Cucumber BDD tool: https://www.youtube.com/watch?v=Vv7hHrVX_Zg
  198. Do you really need that Cucumber with your Selenium?: https://www.ontestautomation.com/do-you-really-need-that-cucumber-with-your-selenium/
  199. Cucumber BDD Automated Acceptance Testing example: https://www.katalon.com/resources-center/blog/cucumber-bdd-automation-testing/
  200. Gherkin Reference: https://cucumber.io/docs/gherkin/reference/
  201. Using “Given-When-Then” to Discover and Validate Requirements: https://www.ebgconsulting.com/blog/using-given-when-then-to-discover-and-validate-requirements-2/
  202. Behavior Driven Development - BDD (YOUTUBE PLAYLIST): https://www.youtube.com/playlist?list=PLngnoZX8cAn9kbu_bI_YUCZIkrcyIG_M6
  203. To-Do app to demonstrate "SubSecond" BDD Framework tests: https://github.com/subsecondtdd/todo-subsecond
  204. Acceptance Criteria -- Purposes, Formats, and Best Practices: https://www.altexsoft.com/blog/business/acceptance-criteria-purposes-formats-and-best-practices/
  205. Hybrid Development - The Value at the Intersection of TDD, DDD & BDD: https://dzone.com/articles/hybrid-development-with-tdd-ddd-bdd
  206. Examples to show different ways of creating Cucumber feature files (spec converted to Java): https://medium.com/@bcarunmail/examples-to-show-different-ways-of-creating-cucumber-feature-files-dbe8c04366bc
  207. Specify Business Rules by Example: https://itsadeliverything.com/specifying-business-rules-by-example
  208. Modern Best Practices for Testing in Java: https://phauer.com/2019/modern-best-practices-testing-java/
  209. BDD - Writing an Automated Test Suite Isn’t Rocket Science: https://betterprogramming.pub/bdd-writing-a-test-suite-before-writing-code-6279e4cf4be6
  210. What BDD Is and Why You Need It -- Java & Behavior Driven Development: https://dzone.com/articles/java-bdd-simple-and-clear-with-examples | SRC
  211. Introducing Protocol-Oriented BDD in Swift for iOS Apps (Part 1): https://dzone.com/articles/introducing-protocol-oriented-bdd-in-swift-for-ios
  212. Behavior Driven Development with 3 Amigo’s task: https://pritamsen.wordpress.com/2014/05/07/behavior-driven-development-with-3-amigos-task/
  213. Agile product delivery - the Three Amigos approach: https://www.lendinvest.com/blog/product-delivery-the-three-amigos-approach/
  214. The importance of three amigos in agile!: https://www.devopsonline.co.uk/the-importance-of-three-amigos-in-agile/
  215. The 3 Amigos Meeting: https://awhnet.medium.com/the-3-amigos-meeting-one-meeting-is-all-you-need-8af8b4a58ba2
  216. Three Amigos Meeting – Agree the tests before development starts: https://itsadeliverything.com/three-amigos-meeting-agree-the-tests-before-development-starts
  217. 3 Amigos – Bytesize Agile (VIDEO): https://www.scrum.org/resources/blog/3-amigos-bytesize-agile
  218. wikipedia: Code coverage
  219. Java code coverage reports in Eclipse: http://margelatu.org/2009/06/25/java-code-coverage-reports-in-eclipse/
  220. Code Coverage for Free - How to Use EMMA: http://www.developer.com/mgmt/article.php/3678041/Code-Coverage-for-Free-How-to-Use-EMMA.htm
  221. Installing and using Code Coverage plugin in NetBeans 6.5: http://newsintegrator.wordpress.com/2008/11/26/installing-and-using-code-coverage-plugin-in-netbeans-65/
  222. Is 100% Code Coverage Possible?: http://java.dzone.com/articles/100-code-coverage-possible
  223. An Introduction to Code Coverage: https://dzone.com/articles/an-introduction-to-code-coverage
  224. Atlassian Clover is now open source: https://www.atlassian.com/blog/announcements/atlassian-clover-open-source
  225. TDD -- The Practice of Theories: Adding “For-all”Statements to “There-Exists” Tests: web.archive.org/web/20110608210825/http://shareandenjoy.saff.net/tdd-specifications.pdf
  226. The Practice of Theories in Unit Testing & TDD (WHITEPAPER): http://web.archive.org/web/20071014232338/http://shareandenjoy.saff.net/2006/12/new-paper-practice-of-theories.html
  227. JUnit team on "Unit Testing theories": https://github.com/junit-team/junit4/wiki/Theories
  228. Reporting Code Coverage Using Maven and JaCoCo Plugin : https://dzone.com/articles/reporting-code-coverage-using-maven-and-jacoco-plu
  229. 5 Code Review Tricks the Experts Use - Based on 3.2 Million Lines of Code: http://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m (based on Cisco & OverOps commissioned studies)
  230. Code Reviews -- A Framework for Startups: https://summify.wordpress.com/2011/09/21/code-reviews-a-framework-for-startups/
  231. The only valid measure of "Code Quality" - Daily WTFs or WTFs/min: http://www.osnews.com/story/19266/WTFs_m
  232. wikipedia: Principle of least astonishment (POLA)
  233. What does it mean to write “good code”?: https://softwareengineering.stackexchange.com/questions/17443/what-does-it-mean-to-write-good-code
  234. What Is Clean Code? – In Quotes: https://theholyjava.wordpress.com/2012/12/15/what-is-clean-code-quotes/
  235. How to Evaluate Software Quality from Source Code: https://www.daedtech.com/evaluate-software-quality-source-code/
  236. The 10 Pull Request Commandments: https://medium.com/@dsteplight/the-10-pull-request-commandments-d512b8c881bc
  237. The Art of Pull Requests: https://hackernoon.com/the-art-of-pull-requests-6f0f099850f9
  238. How to Do Code Reviews Like a Human: https://mtlynch.io/human-code-reviews-1/
  239. How 680 Developers Say We Can Increase Code Quality: https://hackernoon.com/how-680-developers-say-we-can-increase-code-quality-339908809d19
  240. Unlearning toxic behaviors in a code review culture: https://medium.freecodecamp.org/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c
  241. The Rule of Three (and code re-use .vs. refactoring for more reusability): https://blog.codinghorror.com/rule-of-three/
  242. 10 Code Commit Best Practices for Streamlined Development: https://www.perforce.com/blog/vcs/10-code-commit-best-practices-streamlined-development
  243. Code Review at Cisco Systems – The largest case study ever done on code review process; data and lessons.: https://support.smartbear.com/support/media/resources/cc/book/code-review-cisco-case-study.pdf
  244. Lightweight Code Review -- Episode 4 - The Largest Case Study of CodeReview, Ever: https://support.smartbear.com/support/media/resources/cc/Episode_4_TheLargestCaseStudyOfCodeReviewEver.pdf
  245. Code Review study developed by OverOps & Cisco's 10-month studies on Code Review processes: https://dzone.com/articles/5-code-review-tricks-the-experts-use-based-on-32-m
  246. The Code Review - The Most Important Developer Practice: https://dzone.com/articles/the-most-important-developer-practice
  247. Why code reviews matter (and actually save time!): https://www.atlassian.com/agile/software-development/code-reviews
  248. Atlassian - The (written) unwritten guide to pull requests: https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests
  249. Atlassian - Making a Pull Request: https://www.atlassian.com/git/tutorials/making-a-pull-request
  250. Atlassian - Pull requests and code review: https://confluence.atlassian.com/bitbucket/work-with-pull-requests-223220593.html
  251. Atlassian - Creating Optimal Reviews: https://www.atlassian.com/blog/archives/creating_optimal_reviews
  252. Atlassian - 5 tips for great Code Review:https://www.atlassian.com/blog/software-teams/5-tips-great-code-reviews
  253. Atlassian - Why Code Reviews matter and actually save time: https://www.atlassian.com/agile/software-development/code-reviews
  254. BitBucket team - Learn about code review in Bitbucket Cloud: https://www.atlassian.com/git/tutorials/learn-about-code-review-in-bitbucket-cloud
  255. Awesome Code Review list of lists: https://github.com/joho/awesome-code-review
  256. The Pull Request 10 Commandments: https://medium.com/@dsteplight/the-10-pull-request-commandments-d512b8c881bc
  257. Code Review best practices: https://medium.com/palantir/code-review-best-practices-19e02780015f
  258. Pull Request Etiquette: https://gist.github.com/mikepea/863f63d6e37281e329f8
  259. 10 tips for better Pull Requests: http://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/
  260. The art of Pull Requests: https://hackernoon.com/the-art-of-pull-requests-6f0f099850f9
  261. Code Review Guidelines: https://blog.philipphauer.de/code-review-guidelines/
  262. Code Review Best Practices: https://www.kevinlondon.com/2015/05/05/code-review-best-practices.html
  263. Best practices for peer Code Review: https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/
  264. Keeping Peer Code Review An Agile Process: https://smartbear.com/blog/develop/peer-code-review-an-agile-process/
  265. Crash Course in Lightweight Code Review: http://www.drdobbs.com/architecture-and-design/crash-course-in-lightweight-code-review/215800147
  266. Getting the Absolute Most Out of Your Peer Review Data: https://smartbear.com/blog/collaborate/getting-the-absolute-most-out-of-your-peer-review/
  267. Calculate Your ROI on Code Reviews: https://smartbear.com/product/collaborator/roi-calculator/
  268. Metrics for Gerrit code reviews: http://www.sis.uta.fi/~tp54752/pub/gerrit/gerrit-codereviews.pdf
  269. Code Review for Real People: https://hackernoon.com/code-review-for-real-people-261e3d9124ba
  270. How to Do Code Reviews Like a Human Pt1: https://mtlynch.io/human-code-reviews-1/
  271. How to Do Code Reviews Like a Human Pt2: https://mtlynch.io/human-code-reviews-2/
  272. What does it mean to write “good code”?: https://softwareengineering.stackexchange.com/questions/17443/what-does-it-mean-to-write-good-code (WTFs per minute)
  273. Code Review Best Practices: https://blog.palantir.com/code-review-best-practices-19e02780015f
  274. Modern Code Review -- A Case Study at Google: https://www.zora.uzh.ch/id/eprint/152982/1/icse2018seip.pdf
  275. CodeFlow -- Improving the Code Review Process at Microsoft: https://queue.acm.org/detail.cfm?id=3292420
  276. How 680 Developers Say We Can Increase Code Quality: https://hackernoon.com/how-680-developers-say-we-can-increase-code-quality-339908809d19
  277. How one (of 4 core) code review rule(s) turned my team into a dream team: https://medium.com/inside-league/how-one-code-review-rule-turned-my-team-into-a-dream-team-fdb172799d11 (Rule#4 - if PR is for a bug fix, change must include a Unit Test or other test that will catch a future breakage)
  278. The 8-Part Guide to Better Code Review Checklists: https://dzone.com/articles/the-8-part-guide-to-better-code-review-checklists
  279. 9 Best Practices for Effective Code Review: https://dzone.com/articles/9-best-practices-for-effective-code-review?edition=671395
  280. Guidelines for Java Code Reviews: https://dzone.com/articles/guidelines-for-java-code-reviews
  281. 9 Best Practices for Effective Code Review: https://leobit.com/blog/effective-code-review-best-practices/
  282. Don’t do Code Review, try Mob instead: https://medium.com/verotel/dont-do-code-review-try-mob-instead-82149ef035df
  283. LESS linting: https://stylelint.io/user-guide/cli/
  284. LESS-to-CSS compilation: https://stackoverflow.com/questions/16492940/how-to-install-and-run-lessc-on-top-of-node-js-and-windows | https://stackoverflow.com/questions/5691173/how-do-i-compile-a-directory-full-of-less-css-files-to-css
  285. JSlint with multiple files: https://stackoverflow.com/questions/7628009/jslint-with-multiple-files
  286. Minify Javascript and CSS with YUI Compressor: https://electrictoolbox.com/minify-javascript-css-yui-compressor/
  287. Apache Maven plugin - PMD: https://maven.apache.org/plugins/maven-pmd-plugin/
  288. PMD-Jenkins -- how to use it: https://stackoverflow.com/questions/17294515/pmd-jenkins-how-to-use-it
  289. PMD Eclipse Tutorial: https://www.javatips.net/blog/pmd-in-eclipse-tutorial?view=all
  290. Running all PMD rulesets from command line: https://stackoverflow.com/questions/23116108/running-all-pmd-rulesets-from-command-line
  291. How to generate reports in PMD using: Command Linehttps://stackoverflow.com/questions/9682149/how-to-generate-reports-in-pmd-using-command-line
  292. Apache Maven plugin - FindBugs: https://gleclaire.github.io/findbugs-maven-plugin/usage.html
  293. Tutorial on using FindBugs with Maven: https://gualtierotesta.wordpress.com/2015/06/14/tutorial-using-findbugs-with-maven/
  294. FindBugs Maven Plugin Tutorial: https://www.petrikainulainen.net/programming/maven/findbugs-maven-plugin-tutorial/
  295. Apache Maven plugin - Checkstyle: http://maven.apache.org/plugins/maven-checkstyle-plugin/
  296. Checkstyle vs PMD vs Findbugs: http://continuousdev.com/2015/08/checkstyle-vs-pmd-vs-findbugs/
  297. Using the Checkstyle, PMD, and FindBugs Reports: https://www.safaribooksonline.com/library/view/jenkins-the-definitive/9781449311155/ch09s05.html
  298. The Ultimate List of 38 JavaScript Tools: https://hackernoon.com/the-ultimate-list-of-javascript-tools-e0a5351b98e3
  299. JSLint with multiple files: https://stackoverflow.com/questions/7628009/jslint-with-multiple-files
  300. These tools will help you write clean (frontend) code:https://medium.freecodecamp.org/these-tools-will-help-you-write-clean-code-da4b5401f68e
  301. How to install and run lessc on top of node.js and Windows?: https://stackoverflow.com/questions/16492940/how-to-install-and-run-lessc-on-top-of-node-js-and-windows
  302. How do I compile a directory full of less css files to css?: https://stackoverflow.com/questions/5691173/how-do-i-compile-a-directory-full-of-less-css-files-to-css
  303. "lessc": https://lesscss.org
  304. Compressing JS & CSS files using YUI compressor: https://stackoverflow.com/questions/24858977/compressing-js-and-css-files-using-yui-compressor
  305. How to automate JavaScript files compression with YUI Compressor?: https://stackoverflow.com/questions/227288/how-to-automate-javascript-files-compression-with-yui-compressor
  306. How to use YUI Compressor in Ant build script for Javascript & CSS: https://stackoverflow.com/questions/16595802/how-to-use-yui-compressor-in-ant-build-script-for-javascript-and-css
  307. Minifying JS/CSS: http://wiki.ubik-ingenierie.com/ubikwiki/index.php?title=Minifying_JS/CSS
  308. A Case Study on Spring Framework: https://dzone.com/articles/a-case-study-on-spring-framework
  309. Automate Your Code Reviews with Static Code Analysis: https://blog.codacy.com/automate-your-code-reviews-with-static-code-analysis-7d8ab0c81b03
  310. The Wise Developer's Guide to Static Code Analysis featuring FindBugs, Checkstyle, PMD, Coverity and SonarQube: https://zeroturnaround.com/rebellabs/developers-guide-static-code-analysis-findbugs-checkstyle-pmd-coverity-sonarqube/
  311. Static Code Analysis – (automating with) Jenkins: http://www.treselle.com/blog/static-code-analysis-jenkins/
  312. Lint your CSS with stylelint: https://css-tricks.com/stylelint/
  313. Review of CSS Linting Tools: https://blog.codacy.com/review-of-css-linting-tools-760ae1baade2
  314. 10 CSS and JavaScript Linting Tools for Code Optimization: https://www.hongkiat.com/blog/code-optimization-css-js-linting-tools/
  315. How to Analyze Your Code Quality in 10 Minutes With Sonarqube and its Docker container: https://dzone.com/articles/how-to-analyze-your-code-quality-in-10-minutes-wit
  316. SonarQube SCA rules: JAVA
  317. Using SonarQube to Analyze a Java Project: https://medium.com/linagora-engineering/using-sonarqube-to-analyze-a-java-project-abeee15e3779
  318. How to configure Fortify SCA with Jenkin Build Server and Fortify SSC?: https://fortify-maven.blogspot.com/2016/07/how-to-configure-fortify-sca-with.html
  319. Configuring a Project to Exclude Certain Sonar Violations: https://www.baeldung.com/sonar-exclude-violations
  320. Comparing 9 Code Quality tools: https://dzone.com/articles/comparing-9-code-quality-tools-of-2020
  321. Semgrep -- lightweight, ultra-fast, OSS static analysis tool to find bugs & enforce code standards: https://semgrep.dev | DOCS | INTEGRATIONS
  322. The Forrester Wave™: Software Composition Analysis, Q3 2021: https://reprints2.forrester.com/#/assets/2/425/RES176091/report
  323. wikipedia: Semgrep
  324. SemGrep: https://semgrep.dev | SRC
  325. Dzone backup of "What Refactoring is, and what it isn’t" article: http://agile.dzone.com/articles/what-refactoring-and-what-it-0
  326. Refactoring -- Green field - new tech stack should fix everything: https://bonkersworld.net/building-software (often the same anti-patterns are repeated)
  327. Refactoring -- Brown field - The Hidden Dangers of Refactoring: https://toggl.com/blog/hidden-dangers-refactoring
  328. Refactoring -- Blue/Grey field - Strangler Fig Pattern: https://imgur.com/a/t57dm58
  329. Brownfield vs. Greenfield Development - What’s the Difference in Software?: https://synoptek.com/insights/it-blogs/greenfield-vs-brownfield-software-development/
  330. What Is Refactoring?: https://dzone.com/articles/what-is-refactoring
  331. What is Code Refactoring?: https://thecustomizewindows.com/2021/02/what-is-code-refactoring/
  332. © Scaled Agile, Inc. -- Refactoring: https://www.scaledagileframework.com/refactoring/
  333. AgileAlliance -- Refactoring: https://www.agilealliance.org/glossary/refactoring/
  334. The Ultimate Engineer's Guide to Code Refactoring: https://dzone.com/articles/the-engineers-complete-guide-to-technical-debt
  335. Code Refactoring Best Practices -- When (and When Not) to Do It: https://www.altexsoft.com/blog/engineering/code-refactoring-best-practices-when-and-when-not-to-do-it/
  336. Lessons from 6 software rewrite stories: https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22
  337. 4 Steps to Persuade a Product Owner to Prioritize Refactoring: https://www.mountaingoatsoftware.com/blog/4-steps-to-persuade-a-product-owner-to-prioritize-refactoring
  338. How to refactor: https://refactoring.guru/refactoring/how-to
  339. Refactoring - Improving the Design of Existing Code (BOOK): https://www.goodreads.com/book/show/44936.Refactoring | WEBSITE
  340. An Agile Approach to a Legacy System: http://cdn.pols.co.uk/papers/agile-approach-to-legacy-systems.pdf
  341. Strangler Applications: https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/
  342. Metaphor of the "Strangler Fig" tree (that seeds in high-up branches and eventually works its way down to replace original "host" tree aka. app):
  343. Three Strategies for Fitting Refactoring into Your Sprints: https://www.mountaingoatsoftware.com/blog/three-strategies-for-fitting-refactoring-into-your-sprints
  344. Why “I Do High Quality Work” Is Both Good Policy and Terrible Positioning: https://daedtech.com/why-i-do-high-quality-work-is-both-good-policy-and-terrible-positioning/
  345. Satisfiying vs Maximizing: https://blog.asmartbear.com/maximizing.html
  346. Why Refactoring Is Not Always a Code Smell: https://blog.thecodewhisperer.com/permalink/why-refactoring-is-not-always-a-code-smell
  347. wikipedia: Software rot
  348. Brand new legacy code is developed every day: https://www.markkukero.com/2018-05-brand-new-legacy-code-is-developed-every-day/
  349. "Legacy Code is Fear" (PRESENTATION) @Swanseacon 2015-09-08: https://www.slideshare.net/adibolb/legacy-code-is-fear-swanseacon-08-09-2015
  350. Monolith to Microservices Using the Strangler Pattern: https://dzone.com/articles/monolith-to-microservices-using-the-strangler-patt
  351. Microsoft Azure -- Cloud architecutre guide - "Strangler Fig" pattern: https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig
  352. Refactoring Legacy Code with the Strangler Fig Pattern: https://shopify.engineering/refactoring-legacy-code-strangler-fig-pattern
  353. The Urge to Strangle: https://www.leadingagile.com/2018/10/the-urge-to-stranglethe-strangler-pattern/
  354. The Strangler Fig Migration Pattern: https://dianadarie.medium.com/the-strangler-fig-migration-pattern-2e20a7350511
  355. Apply the Strangler Application pattern to microservices applications: https://developer.ibm.com/depmodels/microservices/articles/cl-strangler-application-pattern-microservices-apps-trs/
  356. Effective JavaScript Codemods: https://medium.com/@cpojer/effective-javascript-codemods-5a6686bb46fb (tool assisted code modifications can help evolve complex systems incrementally and aid in maintaining the health of large codebases)
  357. Christoph Nakazawa -- Evolving Complex Systems Incrementally: https://www.youtube.com/watch?v=d0pOgY8__JM
  358. Codemod - Refactoring Code Programmatically - Interview with Ramana Venkata: https://survivejs.com/blog/codemod-interview/
  359. Building The Facebook News Feed With Relay: https://reactjs.org/blog/2015/03/19/building-the-facebook-news-feed-with-relay.html
  360. Refactor Code in Your Lunch Break - Getting Started with Codemods: https://www.sitepoint.com/getting-started-with-codemods/
  361. Higher-order Components in React: https://gist.github.com/sebmarkbage/ef0bf1f338a7182b6775 (1st known example HoC for React, similar to - if not just an implementation of - the Decorator Pattern)
  362. React Higher Order Components in depth: https://medium.com/@franleplant/react-higher-order-components-in-depth-cf9032ee6c3e
  363. A gentle Introduction to React's Higher Order Components: https://www.robinwieruch.de/gentle-introduction-higher-order-components/
  364. The state of test automation -- 7 key trends to watch: https://techbeacon.com/state-test-automation-7-key-trends-watch
  365. A JSON configuration file that can be used to spawn a webdriver node: https://gist.github.com/krmahadevan/1106418
  366. Using Selenium with Headless Firefox (on Windows): https://intoli.com/blog/running-selenium-with-headless-firefox/
  367. Setting up Grid2 and working with it!: https://rationaleemotions.wordpress.com/2012/01/23/setting-up-grid2-and-working-with-it/
  368. Selenium Jenkins - How to Do it Yourself and Sauce Labs Advantage: https://saucelabs.com/resources/articles/selenium-jenkins-how-to-do-it-yourself-and-sauce-labs-advantage#option3
  369. Headless Execution of Selenium Tests in Jenkins: https://www.blazemeter.com/blog/headless-execution-selenium-tests-jenkins
  370. Proposal #1 -- Add Switch to Shadow DOM command (WebDriver): https://github.com/w3c/webdriver/pull/1320
  371. Proposal #2 -- Shadow DOM support in WebDriver: https://github.com/w3c/webdriver/issues/350
  372. How to stop using (or at least relying on) console.log() and start using your browser’s Debugger: https://medium.com/datadriveninvestor/stopping-using-console-log-and-start-using-your-browsers-debugger-62bc893d93ff
  373. Colorful Console Message: https://medium.com/@samanthaming/colorful-console-message-2e8203786838
  374. Debugging Spring Applications: https://www.baeldung.com/spring-debugging
  375. Top 10 Java Debugging Tips: https://stackify.com/java-debugging-tips/
  376. Debugging a JVM Crash for LinkedIn: https://devblogs.microsoft.com/java/debugging-a-jvm-crash-for-linkedin-part-1/
  377. Creating Your First Test With Google Chrome DevTools Recorder: https://applitools.com/blog/creating-first-test-google-chrome-devtools-recorder/
  378. Test developer candidates with Codility: http://www.techrepublic.com/blog/programming-and-development/test-developer-candidates-with-codility/5999
  379. Integrating Selenium with Jenkins and BrowserStack: https://www.browserstack.com/automate/jenkins
  380. BitBucket -- BrowserStack CI guide: https://www.browserstack.com/automate/continuous-integration#Bitbucket
  381. BitBucket BitBucket Pipelines example: https://bitbucket.org/browserstack/bitbucket-pipelines/src/master/
  382. Debugging Selenium tests on BrowserStack: https://www.browserstack.com/automate/debugging
  383. Test Automation frameworks: https://smartbear.com/learn/automated-testing/test-automation-frameworks/
  384. How to Wreck Your UI Test Automation Project - A Cheat Sheet: http://www.inflectra.com/Ideas/Entry/how-to-wreck-your-ui-test-automation-project-702.aspx
  385. How to Develop an Automated Testing Strategy: https://testlio.com/blog/how-to-develop-an-automated-testing-strategy/
  386. How Do You Reason About Automated Testing ROI?: https://www.testim.io/blog/automated-testing-roi/
  387. 6 reasons to co-locate your app and automation code: https://techbeacon.com/app-dev-testing/6-reasons-co-locate-your-app-automation-code
  388. Could not find adb.exe - after upgrade to Android SDK 2.3: https://stackoverflow.com/questions/4375175/could-not-find-adb-exe-after-upgrade-to-android-sdk-2-3/4375439
  389. Appium Studio tutorial: https://www.toolsqa.com/appium-studio-tutorial/
  390. Appium Studio Tutorial -- All You Need To Know: https://www.edureka.co/blog/appium-studio-tutorial/
  391. How to Install Appium Server and Node on Windows through Command Line: https://www.testbytes.net/blog/how-to-install-appium-server-and-node-on-windows-through-command-line/
  392. First time Appium configuration and basic test tutorial (PLAYLIST): https://www.youtube.com/playlist?list=PLhW3qG5bs-L8npSSZD6aWdYFQ96OEduhk
  393. Appium tutorials: https://www.toolsqa.com/mobile-automation/appium/appium-tutorial/
  394. Mobile Testing - Appium Framework: https://www.tutorialspoint.com/mobile_testing/mobile_testing_appium_framework.htm
  395. Complete Ultimate Appium tutorial for beginners: https://learn-automation.com/appium-tutorial-for-beginners/
  396. Step-by-Step Appium tutorial for beginners: http://www.automationtestinghub.com/appium-tutorial/
  397. Tutorial - Automated Testing on iOS (with Appium, Test NG and Java on Mac): http://www.automationtestinghub.com/3-ways-to-start-appium-server-from-java/
  398. Appium basics overview: https://www.edureka.co/blog/appium-tutorial/
  399. An Introduction to Appium (in Python): https://code.tutsplus.com/tutorials/an-introduction-to-appium--cms-23861 | SRC
  400. Automating Mobile Apps with Appium & RSpec (in Ruby): https://medium.com/@javondavis/automating-mobile-apps-with-appium-and-rspec-540fd49758e1
  401. How to get the device name, version and Android app details: https://www.softpost.org/android-automation-with-appium/how-to-get-the-device-name-version-and-android-app-details/
  402. How To Find ".apk" File Package Name And Launcher Activity Name: http://www.software-testing-tutorials-automation.com/2015/10/how-to-find-apk-file-package-name-and.html
  403. Appium setting up with Jenkins CI Guidelines: https://discuss.appium.io/t/appium-setting-up-with-jenkins-ci-guidelines/9877
  404. Hello Appium, Part 2 - Writing Your First Android Test: https://applitools.com/blog/how-to-write-android-test-appium/ | SRC
  405. How to find Elements in Appium using UiAutomatorViewer tool?: https://www.inviul.com/find-elements-uiautomatoviewer/
  406. UI Testing with Espresso: https://github.com/codepath/android_guides/wiki/UI-Testing-with-Espresso
  407. Appium server arguments: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md
  408. Appium XCUITest Driver Real Device Setup: http://appium.io/docs/en/drivers/ios-xcuitest-real-devices/
  409. Appium Test on Real IOS Device: https://www.toolsqa.com/mobile-automation/appium/appium-test-on-real-ios-device/
  410. Locator Strategies for detecting a Mobile object: https://docs.katalon.com/katalon-studio/docs/locators_object_identification.html#locator-strategies-for-detecting-a-mobile-object
  411. Android Testing -- UIAutomator vs Espresso: https://stackoverflow.com/questions/31076228/android-testing-uiautomator-vs-espresso
  412. UIAutomation Vs XCUITest: https://journeyofquality.wordpress.com/category/uiautomation-vs-xcuitest/
  413. Espresso Driver for Android: https://appium.io/docs/en/drivers/android-espresso/
  414. BrowserStack -- App Automate - Appium + JUnit: https://www.browserstack.com/app-automate/appium-junit
  415. Eclipse No tests found using JUnit 5 caused by NoClassDefFoundError for LauncherFactory: https://stackoverflow.com/questions/46717693/eclipse-no-tests-found-using-junit-5-caused-by-noclassdeffounderror-for-launcher
  416. How to test drive a main method: https://rkennke.wordpress.com/2012/04/12/how-to-test-drive-a-main-method/
  417. Build & Run Xcode Project: https://www.toolsqa.com/mobile-automation/appium/build-run-xcode-project/
  418. APPIUM Tutorial for Android & iOS Mobile Apps Testing: https://www.guru99.com/introduction-to-appium.html
  419. From Zero To Appium -- A How-To Guide For Configuring Appium With Android: https://www.smashingmagazine.com/2016/04/from-zero-to-appium-guide-configuring-appium-android/
  420. How to run Appium Parallel Execution using TestNG: https://www.toolsqa.com/mobile-automation/appium/appium-parallel-execution-using-testng/
  421. Automated Testing on Android (with Appium, TestNG and Java on Mac): https://medium.com/2359media/tutorial-automated-testing-on-android-and-ios-with-appium-testng-and-java-on-mac-210119edf323
  422. Exception with "com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet" with Android + Appium: https://stackoverflow.com/questions/47652619/com-google-common-collect-immutablesortedset-toimmutablesortedset
  423. How can I use selenium or appium to automate chrome browser on android?: https://stackoverflow.com/questions/21419914/how-can-i-use-selenium-or-appium-to-automate-chrome-browser-on-android
  424. How Do I Open a browser on Emulator using Robot Framework and Appium: https://stackoverflow.com/questions/48139107/how-do-i-open-a-browser-on-emulator-using-robot-framework-and-appium
  425. Appium docs -- How To Troubleshoot Activities Startup: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md
  426. Appium docs -- Automating mobile web apps: https://appium.io/docs/en/writing-running-appium/web/mobile-web/
  427. Espresso vs UiAutomator2 with Appium: https://journeyofquality.wordpress.com/2018/05/29/espresso-vs-uiautomator2-in-appium/ (good FluentWait examples)
  428. How can I use Selenium or Appium to automate chrome browser on android?: https://stackoverflow.com/questions/21419914/how-can-i-use-selenium-or-appium-to-automate-chrome-browser-on-android (ensure write access to "/data/local" using command: adb shell su -c chmod 777 /data/local)
  429. How to submit searching field with android keyboard?: https://stackoverflow.com/questions/26053663/how-to-submit-searching-field-with-android-keyboard
  430. How to dismiss the keyboard in appium using Java?: https://stackoverflow.com/questions/23220067/how-to-dismiss-the-keyboard-in-appium-using-java
  431. Appium android button click not working?: https://stackoverflow.com/questions/38239351/appium-android-button-click-not-working
  432. Appium -- Problem with button element: https://discuss.appium.io/t/problem-with-button-element/1376
  433. How to solve the org.openqa.selenium.NoSuchElementException: https://stackoverflow.com/questions/4601296/how-to-solve-the-org-openqa-selenium-nosuchelementexception
  434. Appium -- “An element could not be located on the page using the given search parameters” error: https://stackoverflow.com/questions/25180309/appium-an-element-could-not-be-located-on-the-page-using-the-given-search-para
  435. How to set up a basic working - Appium test environment: https://blogs.technet.microsoft.com/antino/2014/09/22/how-to-set-up-a-basic-working-appium-test-environment/
  436. org.openqa.selenium.NoSuchElementException: no such element: https://stackoverflow.com/questions/20046783/org-openqa-selenium-nosuchelementexception-no-such-element
  437. Appium Mobile Actions -- Swipe | Tap | MultiTouch | Press: https://www.swtestacademy.com/appium-mobile-actions-swipe-tap-press/
  438. Appium Parallel Testing -- Parallel Mobile Device Farm: https://www.swtestacademy.com/appium-parallel-tests/
  439. iOS Testing Using Appium and JAVA | iOS Mobile Test Automation: https://www.swtestacademy.com/ios-testing-appium-java/
  440. How to Test Toast Messages using Appium?: http://www.qaautomated.com/2017/12/how-to-test-toast-messages-using-appium.html
  441. UI Test Automation - Speed Up Mobile App UI Testing with Appium: https://www.appcoda.com/automated-ui-testing-appium/
  442. How to Automate Gesture Testing with Appium: https://applitools.com/blog/how-to-automate-gesture-testing-appium/
  443. How to build your own "Appium plugin": https://applitools.com/blog/how-to-build-your-own-appium-plugin/
  444. Hello Appium! Part 3 - Writing Your First iOS Test: https://applitools.com/blog/how-to-write-appium-ios-test/
  445. wikipedia: HP Quality Center
  446. Intro to Quality Center: https://www.guru99.com/hp-alm-introduction.html
  447. Real Time HP ALM (Quality Center) Live Project https://www.guru99.com/live: -interactive-exercise-hp-alm.html
  448. HP Quality Center (QC) Tutorial: https://www.tutorialspoint.com/qc/index.htm
  449. Basics of HP Quality Center: https://www.youtube.com/watch?v=9pxDS35D19Q
  450. HP Quality Center practical demo (older version): https://www.youtube.com/watch?v=8QiTvksJies
  451. HP Software Demo -- Quality Center with Business Process Modeling: https://www.youtube.com/watch?v=KYUq2Axejjk
  452. HP QC/ ALM 12.5 Overview Session1 (Class Recording): https://www.youtube.com/watch?v=BZ78yyATYXE
  453. HP ALM Quality Center Tool Tutorial (7 In-depth Tutorials): http://www.softwaretestinghelp.com/learn-hp-quality-center-qc-in-4-days/
  454. SpiraTest: http://www.inflectra.com/SpiraTest/
  455. The Inflectra Training Pyramid - Test certifications: http://www.inflectra.com/Ideas/Entry/434.aspx
  456. ISP-100 -- Spira Fundamentals Certification: http://www.inflectra.com/Support/KnowledgeBase/KB237.aspx
  457. SpiraTest 5 Revised Designs for Test Execution: https://www.inflectra.com/Ideas/Entry/343.aspx
  458. Troubleshooting the Data-Synchronization between SpiraTest and Jira: https://www.inflectra.com/Support/KnowledgeBase/KB265.aspx
  459. Integrating SpiraTest, SpiraPlan or SpiraTeam Hosted with JIRA On-Demand: https://www.inflectra.com/Support/KnowledgeBase/KB53.aspx
  460. Spira DEMO -- SOAP Web Services: http://api.inflectra.com/Spira/Services/v4_0/ImportExport.svc
  461. How to access Spira v4.x SOAP web services using Java: http://www.inflectra.com/Support/KnowledgeBase/KB49.aspx
  462. Spira DEMO - REST:http://api.inflectra.com/Spira/Services/v4_0/RestService.aspx
  463. Not able to access WSDL on test instance: https://www.inflectra.com/Support/Forum/spirateam/issues-questions/530.aspx (config changes to set "httpGetEnabled" to "false" and "httpsGetEnabled" to "true" in order to run SpiraTest/Team Web Services on HTTPS rather than HTTP)
  464. JUnit Integration with Hosted version: https://www.inflectra.com/Support/Forum/integrations/unit-testing/704.aspx (trouble with FW/Proxies)
  465. Import Test Runs from JUnit Formatted XML: https://www.inflectra.com/Support/Forum/integrations/importers/287.aspx
  466. Spiratest and JUnit Automated Tests: https://www.inflectra.com/Support/Forum/spiratest/best-practices/823.aspx
  467. Running Selenium WebDriver Scripts using RemoteLaunch and JUnit: http://www.inflectra.com/Support/KnowledgeBase/KB140.aspx
  468. Selenium RC not passing the test results to Spira: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/922.aspx
  469. How to run a cross-browser test on a mobile device?: https://www.inflectra.com/Support/KnowledgeBase/KB278.aspx (only available when using Inflectra Rapise with Cloud-based Appium Mobile Test tool)
  470. Running Selenium WebDriver Scripts using RemoteLaunch and JUnit: http://www.inflectra.com/Support/KnowledgeBase/KB140.aspx
  471. Running Selenium WebDriver Scripts using RemoteLaunch and TestNG: https://www.inflectra.com/Support/KnowledgeBase/KB148.aspx (with exact comman-line run command example)
  472. Running Selenium IDE Scripts using RemoteLaunch: http://www.inflectra.com/Support/KnowledgeBase/KB108.aspx
  473. Does the SpiraTest JUnit integration library support parameterized tests?: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/1213.aspx (not without custom modifications)
  474. Jenkins plugin: https://www.inflectra.com/Support/Forum/spirateam/issues-questions/1014.aspx (Jenkins integration to SpiraTest/Team requires SpiraTest/Team v4.0+)
  475. SpiraTest Jenkins Integration: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/656.aspx
  476. Setting Up a TestOps Environment Using Selenium WebDriver and JavaScript.: https://www.inflectra.com/Ideas/Whitepaper/Setting-Up-a-TestOps-Environment-Using-Selenium-WebDriver-and-JavaScript.aspx
  477. How Do You Pronounce Spira and Rapise?: http://www.inflectra.com/Ideas/Entry/how-do-you-pronounce-spira-and-rapise-720.aspx
  478. Hindsight lessons about API testing: https://mrslavchev.com/2018/08/06/hindsight-lessons-about-api-testing/
  479. 10 Tips for the SoapUI Beginner: http://www.soapui.org/getting-started/10-tips-for-the-soapui-beginner.html
  480. SoapUI Command Line Execution: https://testarenablog.wordpress.com/2016/08/13/soapui-command-line-execution/
  481. Adding HTTP Authentication to SoapUI testrunner.sh test cases: https://www.igorkromin.net/index.php/2016/09/01/adding-http-authentication-to-soapui-testrunnersh-test-cases/
  482. Running Functional Tests: https://www.soapui.org/test-automation/running-functional-tests.html
  483. Integrating SoapUI with JUnit: https://www.soapui.org/test-automation/junit/junit-integration.html
  484. JUnit-Style HTML Reports : https://www.soapui.org/reporting/generating-html-reports.html
  485. JUnit report output in TEST-*.xml format: https://community.smartbear.com/t5/SoapUI-Open-Source/JUnit-report-output-in-TEST-xml-format/td-p/6513
  486. Data Export (after CI runs): https://www.soapui.org/reporting/exporting-data.html
  487. testrunner.sh, groovy scripts in scripts dir not found: https://community.smartbear.com/t5/SoapUI-Pro/Res-testrunner-sh-groovy-scripts-in-scripts-dir-not-found/td-p/37562
  488. SoapUI -- testrunner.sh - takes only one .xml file as input?: http://stackoverflow.com/questions/10937407/soapui-testrunner-sh-takes-only-one-xml-file-as-input
  489. TestRunner – soapUI project execution from command line: https://learnsoapui.wordpress.com/2011/05/17/testrunner-soapui-project-execution-from-command-line/
  490. execute soapui project with maven and Jenkins: https://sqa.stackexchange.com/questions/27141/execute-soapui-project-with-maven-and-jenkins/27143
  491. Automated REST web services using SOAPUI: https://taquimon.wordpress.com/2015/03/02/automated-rest-web-services-using-soapui/
  492. How to integrate SoapUI with Jenkins / Hudson?: https://stackoverflow.com/a/6656838
  493. How to install SoapUI using command line on linux: https://community.smartbear.com/t5/SoapUI-Open-Source/How-to-install-SoapUI-using-command-line-on-linux/td-p/21188 (HINT: use the -c run-time parameter when running the installer)
  494. jQuery, SOAP, Ajax and updated UI for WS Testing workflow: http://intaliotempo.wordpress.com/2009/04/03/jquery-soap-ajax-and-updated-ui-for-workflow/
  495. API Testing With Cucumber (BDD) based jUnit tests - Configuration Tips: https://dzone.com/articles/api-testing-with-cucumber-bdd-configuration-tips
  496. SoapUI 101 -- Beginner’s Guide to API Testing: https://smartbear.com/SmartBear/media/ebooks/SoapUI-101-Beginners-Guide-to-API-Testing.pdf
  497. SoapUI resources: https://www.soapui.org/resources.html
  498. SoapUI in-depth overview: http://www.testmanagement.com/blog/2016/03/module-4-executing-our-rest-api-tests
  499. Accelerating Your Delivery Pipeline with ReadyAPI & Jenkins: https://smartbear.com/resources/webinars/accelerate-delivery-pipeline-jenkins/
  500. Adding More APIs to Existing Projects: https://support.smartbear.com/readyapi/docs/projects/add.html
  501. Updating APIs: https://support.smartbear.com/readyapi/docs/projects/update/update.html
  502. SOAPUI - UPLOADING A FILE: https://community.smartbear.com/t5/SoapUI-Open-Source/SOAPUI-UPLOADING-A-FILE/td-p/4811
  503. How to test FileUpload using SOAP UI: https://stackoverflow.com/questions/4051816/how-to-test-fileupload-using-soap-ui
  504. SOAP Attachments and Files: https://www.soapui.org/docs/soap-and-wsdl/attachments.html
  505. Working with HTTP multipart requests in soapUI: http://charithaka.blogspot.com/2013/07/working-with-http-multipart-requests-in.html
  506. Update Content-Type in Attachment before submissionSolved: https://community.smartbear.com/t5/SoapUI-Pro/Update-Content-Type-in-Attachment-before-submission/td-p/41128
  507. How add groovy script in Soap UI to automatically update definitions?: https://stackoverflow.com/questions/23777952/how-add-groovy-script-in-soap-ui-to-automatically-update-definitions
  508. SoapUI -- Export (an imported API definintion) in the OpenAPI or Swagger format: https://support.smartbear.com/readyapi/docs/apis/export.html#export-in-the-openapi-or-swagger-format
  509. HTTP Recording Overview: https://www.soapui.org/http-recording/http-recording.html
  510. How to Write Basic Groovy Script in SoapUI (OSS version): https://www.softwaretestinghelp.com/soapui-tutorial-6-write-groovy-script-in-soapui/
  511. Scripting and the Script Library: https://www.soapui.org/scripting-properties/scripting-and-the-script-library.html
  512. Deploying Mock Services as WAR Files: www.soapui.org/soap-mocking/deploying-mock-services-as-war-files.html
  513. Testing Quarkus Web Applications - Writing Clean Component Tests: https://www.infoq.com/articles/testing-quarkus-integration-containers/ | SRC
  514. SoapUI/LoadUI - Running Tests on Locked Computers: https://support.smartbear.com/viewarticle/74665/
  515. Using SoapUI with LoadUI from command-line: https://www.soapui.org/load-testing/command-line-execution.html
  516. Testing Your JavaScript with Jasmine: http://net.tutsplus.com/tutorials/javascript-ajax/testing-your-javascript-with-jasmine/
  517. Unit test JavaScript applications with Jasmine: http://www.adobe.com/devnet/html5/articles/unit-test-javascript-applications-with-jasmine.html
  518. Jasmine and jQuery: http://a-developer-life.blogspot.ca/2011/05/jasmine-part-1-unit-testing-javascript.html
  519. Kent Dodds -- Write tests, Not too many, Mostly integration: https://kentcdodds.com/blog/write-tests
  520. Unit Test React Components: https://www.codeblocq.com/2016/03/Unit-Test-React-Components/
  521. Check out these beginner-friendly unit testing patterns for React: https://medium.freecodecamp.org/unit-testing-patterns-for-react-720a8275873b
  522. What Is React Testing Library?: https://www.youtube.com/watch?v=JKOwJUM4_RM
  523. Unit-testing React code: https://medium.com/@baphemot/unite-testing-react-code-88651801f16b
  524. How to -- Unit Testing React Components: https://medium.com/writing-objects/how-to-unit-testing-react-components-3cc4e88327ae
  525. Selenium Project WebDriver Test Results: https://webdriver-herald.herokuapp.com
  526. What is the best book to learn Selenium?: https://www.quora.com/What-is-the-best-book-to-learn-Selenium
  527. in28minutes -- Learn Automation Testing with Java and Selenium (E-LEARNING COURSE): https://www.udemy.com/automation-testing-with-selenium-and-java-for-beginners/learn/v4/t/lecture/10089460?start=0 | SRC
  528. Running Automated Selenium Tests from Jenkins on Linux: https://stgconsulting.com/running-automated-selenium-tests-from-jenkins-on-linux/
  529. Tutorial -- How to use Headless Firefox for Scraping in Linux: http://scraping.pro/use-headless-firefox-scraping-linux/
  530. Running headless Firefox WebDriver on Jenkins (Windows OS): https://stackoverflow.com/questions/47532164/running-headless-firefox-webdriver-on-jenkins-windows-os
  531. How to run a headless Chrome browser in Selenium WebDriver: https://itnext.io/how-to-run-a-headless-chrome-browser-in-selenium-webdriver-c5521bc12bf0
  532. Selenium 2.x MindMap of concepts: https://www.mindmeister.com/334652100/selenium-2-commands?fullscreen=1
  533. flash-selenium example: http://www.developerfusion.com/project/18930/flashselenium/ (APPLICATION LINK DEAD: an old color chooser example using "colors.html" & "colors.swf" files)
  534. More recent example of testing the Flash ColorChooser in Selenium: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/
  535. Testing Flash with Selenium (Flash – JavaScript communication): http://toolsqa.com/selenium-webdriver/testing-flash-selenium-flash-javascript-communication/ (selenium sample in C#)
  536. Writing and running functional tests for Flash with Selenium RC: https://www.adobe.com/devnet/flash/articles/flash_selenium.html
  537. Writing and running functional tests for Flash with Selenium RC: https://qaguru.wordpress.com/2011/05/24/selenium-and-flash-testing-flash-application-using-selenium/
  538. Enable Flash player on Chrome 62 while running selenium test: https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test (apart from setting Capabilities via WebDriver API, requires running Chrome with "--allow-outdated-plugins" flag as of Chrome 62+)
  539. Selenium-Flex API - Automation for Adobe Flex applications: http://code.google.com/p/sfapi/
  540. Flex acceptance testing and continuous integration: http://www.blackpepper.co.uk/black-pepper-blog/Flex-acceptance-testing-and-continuous-integration.html
  541. Introduction To Creating Automated Tests by Using Selenium IDE and Python: https://desmart.com/blog/introduction-to-creating-automated-tests-by-using-selenium-ide-and-python
  542. How to use Selenium with Python: https://stackoverflow.com/questions/17540971/how-to-use-selenium-with-python
  543. How to Use Selenium with Python -- Complete Tutorial : https://www.guru99.com/selenium-python.html
  544. Running Selenium tests under py.test convention with docker support: https://github.com/eliranshani/selenium-docker-allure
  545. How to execute a Selenium test in Java: http://stackoverflow.com/questions/18492668/how-to-execute-a-selenium-test-in-java
  546. Selenium Test Automation Success Reasons and Best Practices: http://dzone.com/articles/selenium-test-automation-success-reasons-amp-best
  547. FF cross-platform Linux installation scripts example: https://gist.github.com/cgoldberg/4097efbfeb40adf698a7d05e75e0ff51
  548. Run Selenium WebDriver test on a Linux server: https://stackoverflow.com/questions/30051268/run-selenium-webdriver-test-on-a-linux-server
  549. Install Chrome, ChromeDriver and Selenium on Ubuntu 16.04: https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5
  550. Just Say No to More End-to-End Tests: https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
  551. Selenium - How to use x and y coordinate position: http://stackoverflow.com/questions/6448457/selenium-how-to-use-x-and-y-coordinate-position
  552. Writing XPath selectors for Selenium tests: http://hedleyproctor.com/2011/05/tutorial-writing-xpath-selectors-for-selenium-tests/
  553. Automating Selenium testing with TestNG, Ant and CruiseControl: http://hedleyproctor.com/2011/07/automating-selenium-testing-with-testng-ant-and-cruisecontrol/
  554. How to verify title of any web page in Selenium WebDriver?: http://www.inviul.com/verify-title-web-page-selenium/
  555. Difference between driver.close() and driver.quit() in Selenium WebDriver: https://artoftesting.com/automationTesting/difference-between-driver-close-and-driver-quit-command-in-selenium-webdriver.html
  556. Tips for running Selenium Server: https://testersworld.wordpress.com/about/selenium-rcremote-control/
  557. Selenium RC example: http://www.tutorialspoint.com/selenium/selenium_rc.htm (Selenium 1.x used the Remote Control or RC API, whereas Selenium 2+ uses WebDriver APIs specific to the Browser being tested with)
  558. Selenium 4 Release Candidate is here!: https://applitools.com/blog/selenium-4-release-candidate/
  559. How To Upgrade to Selenium 4: https://saucelabs.com/resources/articles/how-to-upgrade-to-selenium-4
  560. Everything you need to know about Selenium 4: https://automated-360.com/selenium/selenium-4/
  561. JUnit 5 Jupiter API: https://developer.ibm.com/languages/java/tutorials/j-introducing-junit5-part1-jupiter-api/
  562. Mastering Selenium Testing - JUnit Asserts With Examples: https://www.lambdatest.com/blog/junit-assertions-example-for-selenium-testing/
  563. Selenium-Jupiter: https://github.com/bonigarcia/selenium-jupiter (JUnit5 integration plugin)
  564. Specifying the Firefox Profile: http://www.seleniumhq.org/docs/05_selenium_rc.jsp#specifying-the-firefox-profile (Firefox will not run two instances simultaneously unless you specify a separate profile for each instance)
  565. Selenium -- Could not start Selenium session - Failed to start new browser session: Error while launching browser: https://stackoverflow.com/questions/1414934/selenium-could-not-start-selenium-session-failed-to-start-new-browser-session
  566. Running Java JUnit tests that depend on WebDriver on Windows command line?: https://stackoverflow.com/questions/39226529/running-java-junit-tests-that-depend-on-webdriver-on-windows-command-line
  567. Selenium IDE and Web Scraping: http://scraping.pro/selenium-ide-and-web-scraping/
  568. What is jUnit – testing framework (and how is it used with Selenium): https://seleniumonlinetrainingexpert.wordpress.com/2012/11/21/what-is-junit-testing-framework/
  569. Selenium - Quick Guide: https://www.tutorialspoint.com/selenium/selenium_quick_guide.htm
  570. Can Selenium IDE/Builder run same test case on many pages?: https://stackoverflow.com/questions/30493966/can-selenium-ide-builder-run-same-test-case-on-many-pages
  571. Comparison of Selenium IDE, Remote Control (RC) & WebDriver – Key Differences : http://www.slideshare.net/videotuition/comparison-of-selenium-ide-remote-control-rc-web-driver-key-differences
  572. WebDriver -- Can I inject a jQuery script for a page that isn't using jQuery?: https://sqa.stackexchange.com/questions/2921/webdriver-can-i-inject-a-jquery-script-for-a-page-that-isnt-using-jquery
  573. Using Selenium scripts with JMeter for load testing: https://sqa.stackexchange.com/questions/3313/using-selenium-scripts-with-jmeter-for-load-testing
  574. How to use a already opened firefox for testing in Selenium: https://stackoverflow.com/questions/19690157/how-to-use-a-already-opened-firefox-for-testing-in-selenium
  575. Selenium Webdriver -- How do I run multiple tests, one after the other in the same window?: https://stackoverflow.com/questions/27388940/selenium-webdriver-how-do-i-run-multiple-tests-one-after-the-other-in-the-same
  576. Sauce Labs: https://saucelabs.com/ | DOCS
  577. Loadable Component Pattern for better Page Object Model (POM) Architecture: https://www.swtestacademy.com/loadable-component-pattern/ | SRC
  578. Page Object Model with JAVA Generics: https://www.swtestacademy.com/page-object-model-java-generics/
  579. Write Dockerized End-to-End Tests with JUnit 5 and Selenium WebDriver: https://blog.testproject.io/2019/03/25/write-dockerized-end-to-end-tests-with-junit-5-selenium/
  580. Selenium-Jupiter -- JUnit 5 extension for Selenium and Appium: https://bonigarcia.github.io/selenium-jupiter/ | SRC
  581. Selenium WebDriver usage in JUnit4 .vs. JUnit5: https://www.blazemeter.com/blog/how-to-run-a-selenium-test-with-junit/ | SRC - 4.x | SRC - 5.x
  582. How to Run a Selenium Test with TestNG: https://www.blazemeter.com/blog/how-to-run-a-selenium-test-with-testng/
  583. Selenium advanced topics -- Parallel Tests Using Selenium Grid and JUnit: https://www.swtestacademy.com/selenium-parallel-tests-grid-junit/
  584. Setting up Selenium with Eclipse: http://selftechy.com/2011/05/31/setting-up-selenium-with-eclipse
  585. Selenium – Creating XML Reports: http://selftechy.com/2011/07/07/selenium-creating-xml-reports
  586. Selenium – Use Ant to Generate (jUnit-style) HTML Reports: http://selftechy.com/2011/06/29/selenium-use-ant-to-generate-html-reports
  587. Selenium – Use Assertions to Verify the Test Output: http://selftechy.com/2011/07/10/selenium-use-assertions-to-verify-the-test-output
  588. I want to run Selenium test case file from command line: https://stackoverflow.com/questions/1231975/i-want-to-run-selenium-test-case-file-from-command-line#1234439
  589. Navigate to previous page using Selenium: https://sqa.stackexchange.com/questions/8737/navigate-to-previous-page-using-selenium
  590. How do I launch the Selenium IDE from the command line with a specific test case loaded?: https://stackoverflow.com/questions/1144744/how-do-i-launch-the-selenium-ide-from-the-command-line-with-a-specific-test-case
  591. Selenium IDE native format (Selenese & .side) interpreter: https://github.com/vmi/selenese-runner-java
  592. Selenium Testing with Google Chrome - Success!: https://groups.google.com/forum/#!topic/selenium-users/cit1kcRNQho (-trustAllSSLCertificates will prevent Chrome from popping up that red warning screen that the certificate is self-signed)
  593. Awesome Selenium links: https://github.com/christian-bromann/awesome-selenium
  594. RocketPoweredJetPants -- Selenium/TestAutomation-focused blog: http://blog.rocketpoweredjetpants.com/
  595. How to retrieve OS, Browser and Screen Resolution of the Machine performing my Test (Suite)?: https://forum.katalon.com/discussion/6853/how-to-retrieve-os-browser-and-screen-resolution-of-the-machine-performing-my-test-suite
  596. How to get System OS, Browser and Version using Java and Selenium WebDriver: https://mashtips.com/get-system-os-browser-version-java-selenium-webdriver/
  597. How To Get Browser And OS Details On Run-Time In Selenium WebDriver: http://www.software-testing-tutorials-automation.com/2016/05/how-to-get-browser-and-os-details-on.html
  598. How to find the operating system version using JavaScript?: https://stackoverflow.com/questions/9514179/how-to-find-the-operating-system-version-using-javascript#18706818
  599. Selenium 101 -- Running Your Test Against Two Browsers at Once: https://crossbrowsertesting.com/blog/how-to/run-test-multiple-browsers-parallel-selenium/
  600. WebDriver -- Advanced Usage: https://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy
  601. Selenium_Webdriver -- Proxy setting: https://stackoverflow.com/questions/12279723/selenium-webdriver-proxy-setting
  602. How To Set Proxy Settings In Selenium WebDriver Test: http://www.software-testing-tutorials-automation.com/2015/03/how-to-set-proxy-settings-in-selenium.html
  603. How can i set proxy using selenium webdriver with browser HtmlunitDriver for Java?: https://stackoverflow.com/questions/31353557/how-can-i-set-proxy-using-selenium-webdriver-with-browser-htmlunitdriver-for-jav
  604. How do I set a proxy for firefox using Selenium webdriver with Java?: https://stackoverflow.com/questions/45810476/how-do-i-set-a-proxy-for-firefox-using-selenium-webdriver-with-java
  605. HTMLUnit -- Tons of obsolete content and can't create objects warnings on getPage() then fails with Exception invoking setOuterHTML on getByXPath(): https://stackoverflow.com/questions/17436855/htmlunit-tons-of-obsolete-content-and-cant-create-objects-warnings-on-getpage
  606. Why am I getting “The type is deprecated” as an error in Selenium?: https://stackoverflow.com/questions/27661196/why-am-i-getting-the-type-is-deprecated-as-an-error-in-selenium
  607. WebDriver setup: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
  608. webdriver.gecko.driver system property: https://github.com/mozilla/geckodriver/issues/177
  609. Driver executable must be set by the webdriver.ie.driver system property: http://stackoverflow.com/questions/10995314/driver-executable-must-be-set-by-the-webdriver-ie-driver-system-property
  610. Make it possible to choose Geckodriver for Firefox -- Issue #2600: https://github.com/SeleniumHQ/selenium/issues/2600
  611. How to use Firefox in Selenium using geckodriver in Selenium 3: http://learn-automation.com/use-firefox-selenium-using-geckodriver-selenium-3/
  612. WebDriver Support in Safari 10: https://webkit.org/blog/6900/webdriver-support-in-safari-10/ (run automated tests against iPhones, iPads & iPods via Safari iOS WebDriver)
  613. BrowserStack - Selenium Capabilities Generator: https://www.browserstack.com/automate/capabilities
  614. How to setup "MutableCapabilities": https://gist.github.com/shs96c/0951bdd0ca903ca22b2510e4438085c3
  615. Cannot find firefox binary in PATH. Make sure FireFox is installed: https://stackoverflow.com/questions/20950748/cannot-find-firefox-binary-in-path-make-sure-firefox-is-installed
  616. How To Upgrade from SeleniumRC to WebDriver: http://elementalselenium.com/tips/28-upgrading-from-rc
  617. Moving to Selenium 2 on WebDriver, Part No.1: http://rostislav-matl.blogspot.com/2011/03/moving-to-selenium-2-on-webdriver-part.html (suggests "isVisible()" moves to "isDisplayed()")
  618. Handling Date Time Picker using Selenium: http://www.guru99.com/handling-date-time-picker-using-selenium.html
  619. Selenium -- How to verify the current date value in a field: http://groups.google.com/forum/#!topic/selenium-users/LXWik4nm6U8
  620. Implicit, Explicit & Fluent Waits in Selenium: https://www.guru99.com/implicit-explicit-waits-selenium.html
  621. Selenium (JavaDocs) - FluentWait: https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html
  622. WebDriver Wait For Page to Load examples (Java .vs. JS): https://devqa.io/webdriver-wait-page-load-example-java/
  623. What is Explicit wait in Selenium Webdriver: http://learn-automation.com/explicit-wait-in-selenium-webdriver/
  624. Wait commands in Selenium (Java): http://toolsqa.com/selenium-webdriver/wait-commands/
  625. WebDriver Wait For Page to Load Example in Java: https://www.testingexcellence.com/webdriver-wait-page-load-example-java/
  626. Selenium Webdriver Fluent Wait Command With Examples: https://www.techbeamers.com/webdriver-fluent-wait-command-examples/
  627. Selenium 101 - Navigating Waits and Sleeps (NodeJS example): https://crossbrowsertesting.com/blog/test-automation/sleeps-waits-in-selenium/
  628. How to hide Firefox window (Selenium WebDriver)?: http://stackoverflow.com/questions/5370762/how-to-hide-firefox-window-selenium-webdriver/23898148#23898148
  629. Login popup window using selenium webdriver?: https://stackoverflow.com/questions/12151958/login-popup-window-using-selenium-webdriver
  630. How to Use Selenium with JMeter's Webdriver Sampler: https://www.blazemeter.com/blog/jmeter-webdriver-sampler
  631. How to Easily Record JMeter and Selenium Scripts with the BlazeMeter Chrome Extension: https://info.blazemeter.com/how-to-easily-record-jmeter-and-selenium-scripts-with-the-blazemeter-chrome-extension-on-demand-webcast
  632. Page scroll up or down in Selenium WebDriver (Selenium 2) using java: https://stackoverflow.com/questions/12293158/page-scroll-up-or-down-in-selenium-webdriver-selenium-2-using-java
  633. How To Scroll Web Page Down Or UP Using Selenium WebDriver: https://www.softwaretestingmaterial.com/scroll-web-page-using-selenium-webdriver/
  634. How to keyPress Page Down multiple times in selenium WebDriver using java?: https://stackoverflow.com/questions/45418617/how-to-keypress-page-down-multiple-times-in-selenium-webdriver-using-java
  635. Scrolling using Selenium WebDriver with Java: https://stackoverflow.com/questions/9443067/scrolling-using-selenium-webdriver-with-java
  636. How to press Keyboard in selenium webdriver? : http://seleniumhome.blogspot.ca/2013/07/how-to-press-keyboard-in-selenium.html
  637. How to scroll a page with Selenium: https://stackoverflow.com/questions/8433223/how-to-scroll-page-with-selenium
  638. When running WebDriver with Chrome browser, getting message, “Only local connections are allowed” even though browser launches properly: https://stackoverflow.com/questions/25080500/when-running-webdriver-with-chrome-browser-getting-message-only-local-connect/25088200#25088200
  639. What’s new in selenium 3.0: http://qavalidation.com/2016/08/whats-new-in-selenium-3-0.html/
  640. Enhancing automated testing in Microsoft Edge with new WebDriver capabilities, W3C protocol support, and automatic updates: https://blogs.windows.com/msedgedev/2018/06/14/webdriver-w3c-recommendation-feature-on-demand/
  641. Bringing new life into Edge Selenium Tools: https://dev.to/mintzworld/bringing-new-life-into-edge-selenium-tools-5b25
  642. Can Selenium interact with an existing browser session?: https://stackoverflow.com/questions/8344776/can-selenium-interact-with-an-existing-browser-session
  643. Selenium Java - Hybrid Framework: https://github.com/Abhilash04/SeleniumJavaHybridFramework (some helpful example patterns such as Apache POI - Excel Data Reader, PageObject test pattern, etc)
  644. Selenium -- How to access the same session in a new window?: https://sqa.stackexchange.com/questions/15594/selenium-how-to-access-the-same-session-in-a-new-window
  645. Selenium WebDriver manager().getCookies() returns 0 always: https://stackoverflow.com/questions/15952262/selenium-webdriver-manager-getcookies-returns-0-always
  646. WebDriver – How to Restore Cookies in New Browser Window: https://www.testingexcellence.com/webdriver-how-to-restore-cookies-in-new-browser-window/
  647. Cookie Handling in Selenium WebDriver: https://www.guru99.com/handling-cookies-selenium-webdriver.html
  648. Managing Cookies with Selenium for Java: https://applitools.com/event/cookies-selenium-java/
  649. How do I load session and cookies from Selenium browser to requests library in Python?: https://stackoverflow.com/questions/29563335/how-do-i-load-session-and-cookies-from-selenium-browser-to-requests-library-in-p
  650. SafariDriver (SAFARI EXTENSION): http://selenium-release.storage.googleapis.com/index.html?path=2.48/
  651. Testing with WebDriver in Safari: https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
  652. WebDriver Support in Safari 10: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
  653. Steps to get Safari Webdriver running on Mac OSX: https://itisatechiesworld.wordpress.com/2015/04/15/steps-to-get-selenium-webdriver-running-on-safari-browser/
  654. How to run Selenium tests in Safari browser?: http://toolsqa.com/selenium-webdriver/running-tests-in-safari-browser/
  655. How To Use Safari + Selenium: http://elementalselenium.com/tips/69-safari
  656. 43 Exceptions in Selenium -- Have you ever "met" them?: https://www.katalon.com/resources-center/blog/selenium-exceptions/#
  657. Automated Testing recipes with Selenium WebDriver: https://github.com/atinfo/at.info-knowledge-base/tree/master/functional%20test%20automation/webdriver
  658. A Look at New Java Features in Test Automation: http://angiejones.tech/new-java-features-test-automation
  659. Handling Authentication Requests with Selenium - Using a Web Proxy for Basic Authentication: PART 1 | PART 2 | PART 3
  660. Exercise on safely waiting for unstable web elements with WebDriver: https://gist.github.com/djangofan/5112655 (several examples of waits/retry strategies)
  661. "Element is no longer attached to the DOM” StaleElementReferenceException when selecting HTML table row: https://sqa.stackexchange.com/questions/3464/element-is-no-longer-attached-to-the-dom-staleelementreferenceexception-when-s
  662. MozDev docs -- WebDriver - Stale element reference: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/StaleElementReference
  663. How to solve Stale Element Reference exception in Selenium Webdriver: https://learn-automation.com/how-to-solve-stale-element-reference-exception-in-selenium-webdriver/
  664. Stale Element Reference Exception in Selenium (two possible quick-fixes): https://thetesterscorner.com/stale-element-reference-exception-in-selenium/
  665. Selenium WebDriver How to Resolve Stale Element Reference Exception?: https://stackoverflow.com/questions/16166261/selenium-webdriver-how-to-resolve-stale-element-reference-exception
  666. How to Scroll into view in Selenium Webdriver: https://learn-automation.com/how-to-scroll-into-view-in-selenium-webdriver/
  667. Webdriver Firefox “Element could not be scrolled into view”: https://sqa.stackexchange.com/questions/32697/webdriver-firefox-element-could-not-be-scrolled-into-view
  668. How to crawl websites with Selenide and JDK 14+: https://blog.sebastian-daschner.com/entries/crawling-websites-selenide-jdk14 | SRC
  669. 6 Ways to Do Automated UI Testing in Parallel With Selenium: https://betterprogramming.pub/6-ways-to-do-automated-ui-testing-in-parallel-with-selenium-132e47403c4f
  670. SauceLabs -- Selenium Cloud test - Platform Configurator: https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/
  671. Docker -- Selenium image for Automated Testing - Getting Started: https://www.youtube.com/watch?v=S4OkrnFb-YY
  672. How To Run Your Tests Headlessly with Xvfb: http://elementalselenium.com/tips/38-headless (command to setup xvfb for headless testing on Unix/Linux "nohup Xvfb -ac :99 -screen 0 1280x1024x16 -extension RANDR & export DISPLAY=:99")
  673. wikipedia: Xvfb
  674. How to install Xvfb (X virtual framebuffer) on Redhat 6.5?: https://stackoverflow.com/questions/21671552/how-to-install-xvfb-x-virtual-framebuffer-on-redhat-6-5
  675. Start and use Xvfb, enable X-server on headless system: http://www.thinkplexx.com/learn/howto/linux/system/start-and-use-xfdb-enable-x-server-on-headless-system
  676. Hands on with headless chrome and firefox testing in 5 mins: https://engineering.upgrad.com/turn-your-website-testing-painless-with-chrome-and-firefox-headless-92b6f023d375
  677. Headless Chrome run with selenium: https://stackoverflow.com/questions/47067188/headless-chrome-run-with-selenium
  678. Headless driver: https://stackoverflow.com/questions/51357401/headless-driver
  679. How To solve this java.lang.NoSuchFieldError: DISMISS_AND_NOTIFY?: https://stackoverflow.com/questions/51520642/how-to-solve-this-java-lang-nosuchfielderror-dismiss-and-notify
  680. Headless Browsers roundup: https://chercher.tech/java/headless-browsers-selenium-webdriver
  681. Selenium Grid Extras: https://github.com/groupon/Selenium-Grid-Extras
  682. Distributed Test Execution in Selenium Using Selenium-Grid: https://dzone.com/articles/distributed-test-execution-in-selenium-using-selen
  683. Re-using existing browser session with Selenium Grid: https://tarunlalwani.com/post/reusing-existing-browser-session-selenium-grid-python/
  684. Execute WebDriver tests in Parallel using Selenium Grid: https://www.seleniumeasy.com/selenium-tutorials/parallel-execution-in-selenium-grid
  685. Automated Testing with Selenium Grid and Jenkins in 3 Steps: http://www.agiletrailblazers.com/blog/automated-testing-with-selenium-grid-and-jenkins
  686. How to configure Selenium HTML Reports in Jenkins: https://stackoverflow.com/questions/13082425/how-to-configure-selenium-html-reports-in-jenkins
  687. Selenium plugin for Jenkins: https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin
  688. Selenium Grid VS Jenkins: https://stackoverflow.com/questions/27573634/selenium-grid-vs-jenkins
  689. Distributed Testing with Selenium Grid: https://www.packtpub.com/sites/default/files/downloads/Distributed_Testing_with_Selenium_Grid.pdf
  690. Mozilla Dev -- FireFox - Using headless mode: https://developer.mozilla.org/en-US/Firefox/Headless_mode
  691. HeadlessFirefoxSeleniumExample.java: https://github.com/mdn/headless-examples/blob/master/headlessfirefox-gradle/src/main/java/com/mozilla/example/HeadlessFirefoxSeleniumExample.java
  692. Demo code for the GTAC 2013 talk "Web Performance Testing with WebDriver" by Michael Klepikov: https://gist.github.com/klepikov/5457750 (measuring page load times within Selenium)
  693. GhostDriver: https://github.com/detro/ghostdriver | DOWNLOAD | npm package(GhostDriver is the Java PhantomJS Driver)
  694. How To Run Your Tests Headlessly with Ghost Driver: http://elementalselenium.com/tips/46-headless-ghostdriver
  695. Do I need ghostdriver to use Selenium & PhantomJS in Java?: https://stackoverflow.com/questions/18241823/do-i-need-ghostdriver-to-use-selenium-and-phantomjs-in-java
  696. Alternative Uses for GhostDriver and Headless Browser testing: http://seleniumsimplified.com/post/2013-08-30-alternative-uses-for-ghostdriver-and-headless-browser-testing/
  697. How to implement PhantomJS with Selenium WebDriver using java: https://stackoverflow.com/questions/24138398/how-to-implement-phantomjs-with-selenium-webdriver-using-java
  698. What is the Difference between Selenium Webdriver and Selenium Ghostdriver: https://stackoverflow.com/questions/33074133/what-is-the-difference-between-selenium-webdriver-and-selenium-ghostdriver
  699. WebDriver driver = new PhantomJSDriver(); FAILS now... What happened to Selenium's support for PhantomJS headless tests?: https://github.com/SeleniumHQ/selenium/issues/5295
  700. HTMLUnitDriver & PhantomJS for Selenium Headless Testing: https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html
  701. Headless Browser Testing Using HtmlUnitDriver in Selenium WebDriver: https://www.softwaretestingmaterial.com/headless-browser-testing-using-htmlunitdriver/
  702. Headless browser Testing using Selenium HtmlUnitDriver: http://learn-automation.com/headless-browser-testing-using-selenium-htmlunitdriver/
  703. HtmlUnitDriver: https://github.com/SeleniumHQ/selenium/wiki/HtmlUnitDriver
  704. How to use HtmlUnit (without Selenium) in Java?: https://stackoverflow.com/questions/4869426/how-to-use-htmlunit-in-java#49383391 (see the HtmlUnit website as well for lots of examples)
  705. How to run webdriver in IE browser?: https://www.seleniumeasy.com/selenium-tutorials/how-to-run-webdriver-in-ie-browser
  706. WebDriver test automation is like giving directions (Selenium Test Suites/Cases) to a taxi driver (WebDriver) who drives a car (browser): http://test-able.blogspot.ca/2016/01/webdriver-test-automation-like-taxi-driving.html
  707. Adding Executables to your PATH: https://seleniumhq.github.io/docs/wd.html#adding_executables_to_your_path
  708. Selenium -- Internet Explorer Driver required setup steps: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration
  709. Getting Started with SeleniumIDE Plugins: https://github.com/SeleniumHQ/selenium-ide/wiki/Getting-Started-with-Plugins
  710. Selenium IDE v3.0 quick start guide: https://devopsqa.wordpress.com/2018/04/17/selenium-ide/
  711. Selenium SIDE Runner: https://github.com/SeleniumHQ/selenium-ide/blob/extensibility/packages/selenium-side-runner/README.md
  712. SeleniumIDE + Applitools integration ("visual testing" add-on):https://applitools.com/selenium-ide | VIDEOS | DOCS
  713. Applitools for Selenium IDE Tutorial: https://applitools.com/tutorials/selenium-ide.html#selenium-ide-videos
  714. Firefox 55 & Selenium IDE: https://seleniumhq.wordpress.com/2017/08/09/firefox-55-and-selenium-ide/ (officially the end of the line for legacy FF XUL/XPI SeleniumIDE, an effort is now underway to replace it with a WebExtensions API version that should work in FF/Chrome/Opera)
  715. SideeX - extended version of Selenium IDE: http://sideex.org/ (works on Chrome/FF, more limited functionality, still allows export/bindings)
  716. SnapTest - SeleniumIDE "in the Cloud": https://www.snaptest.io/ (although has a smoother UI and a few nice features, it only implements part of Selenium features and seems to be trending towards vendor lock-in to their Cloud services)
  717. SeleniumIDE 3.x to 2.x converter: http://output.jsbin.com/zagemaw
  718. Selenium IDE 4.x - The Next Generation (WEBINAR): https://applitools.com/blog/selenium-ide-by-simon-stewart
  719. SeleniumIDE -- Adding "Code Export" feature back: https://github.com/SeleniumHQ/selenium-ide/issues/592
  720. SeleniumIDE -- ".side"-format specification: https://github.com/SeleniumHQ/selenium-ide/issues/77
  721. Using Selenium IDE for the first time: https://techblog.polteq.com/en/using-selenium-ide-first-time/
  722. Why you should learn test automation with Selenium IDE: https://medium.com/@alicealdaine/why-you-should-learn-test-automation-with-selenium-ide-ae252c65b45d
  723. Recording Test Scripts: http://blog.browsermob.com/help/creating-a-test/recording-test-scripts/
  724. Automated Web Testing with Selenium and the NetBeans Platform: http://wadechandler.blogspot.ca/2011/04/automated-web-testing-with-selenium-and.html
  725. 6 Ways to Make The Most of Selenium IDE: http://joshjustice.wordpress.com/2010/04/07/6-ways-to-make-the-most-of-selenium-ide/
  726. How to Click a Link by href value in WebDriver: http://www.testingexcellence.com/click-link-href-value-webdriver/
  727. How to click on All links in Web page: https://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page
  728. How to click all links in WebPage (Selenium WebDriver): http://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page
  729. xPath for href element: https://stackoverflow.com/questions/13124942/xpath-for-href-element
  730. SeleniumIDE "selectframe" command example with relative=up: http:www.software-testing-tutorials-automation.com/2013/06/selenium-selectframe-command-example.html (in SeleniumIDE 3.x+ it is preferred to use relative=parent)
  731. How to find broken links using Selenium IDE (or WebDriver): https://sqa.stackexchange.com/questions/11879/how-to-find-broken-links-using-selenium-ide
  732. Take a screenshot with Selenium WebDriver: https://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver
  733. Selenium Tips -- Taking ScreenShots on the Server: https://web.archive.org/web/20110311121204/https://saucelabs.com/blog/index.php/2009/10/selenium-tip-of-the-week-screenshot/
  734. Compare screenshots of rendered web pages: ttps://sqa.stackexchange.com/questions/2459/compare-screenshots-of-rendered-web-pages
  735. How to Do Visual Testing with Selenium: http://testautomation.applitools.com/post/105435804567/how-to-do-visual-testing-with-selenium
  736. How to Do Visual Testing with Selenium: https://applitools.com/blog/how-to-do-visual-testing-with-selenium
  737. Selenium IDE Firefox add-on end of life: https://www.ghacks.net/2017/08/21/selenium-ide-firefox-add-on-end-of-live/
  738. Integrating Selenium with Google Drive: http://dzone.com/articles/integrating-selenium-with-google-drive (upload your Automated Testing Results from just about anywhere from Java)
  739. Selenium IDE Scheduler Has Arrived: Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6
  740. How to handle a File Download in Selenium IDE: http://sqa.stackexchange.com/questions/14525/how-to-handle-a-download-file-in-selenium-ide
  741. How to Rename a File and Folder from the Command Prompt: http://www.sevenforums.com/tutorials/56013-file-folder-rename-command-prompt.html
  742. Selenium IDE - script execution time in output: http://stackoverflow.com/questions/15000648/selenium-ide-script-execution-time-in-output
  743. JMeter & Selenium WebDriver – Why would you want to combine them?: https://techblog.polteq.com/en/jmeter-and-webdriver-why-would-you-want-to-combine-them/
  744. JMeter and WebDriver – 2 ways to combine them effectively: https://techblog.polteq.com/en/jmeter-and-webdriver-2-ways-to-combine-them-effectively/
  745. 6 Ways to Make The Most of Selenium IDE: https://joshjustice.wordpress.com/2010/04/07/6-ways-to-make-the-most-of-selenium-ide/
  746. Is there a way for Selenium to verify if the number of items fits a criteria?: http://stackoverflow.com/questions/8838211/is-there-a-way-for-selenium-to-verify-if-the-number-of-items-fits-a-criteria
  747. How to extract the text within an HTML tag (in Selenium IDE)?: http://stackoverflow.com/questions/6069829/how-to-extract-the-text-within-an-html-tag-in-selenium-ide
  748. Running selenium IDE testcases in JMeter: https://groups.google.com/forum/#!topic/selenium-users/j5avEinNEjM
  749. Selenium+Junit+Jmeter: https://groups.google.com/forum/#!topic/selenium-users/_3g8goYyr9U/discussion
  750. Selenium IDE - Command to wait for 5 seconds: http://stackoverflow.com/questions/6694981/selenium-ide-command-to-wait-for-5-seconds
  751. Storing variables in Selenium IDE: http://webigniter.wordpress.com/2011/04/07/storing-variables-in-selenium-ide/
  752. Using variables in Selenium IDE: http://www.oshyn.com/Blogs/2014/February/Using-variables-in-Selenium-IDE
  753. Selenium IDE JavaScript and Command Parameters: http://seleniummaster.com/sitecontent/index.php/introduction-to-selenium-automation/selenium-ide/96-selenium-ide-javascript-and-command-parameters
  754. Get current system date using java script in Selenium IDE: http://seleniumide.blogspot.ca/2010/12/get-current-system-date-using-java.html
  755. Comparing dates in Selenium IDE: http://stackoverflow.com/questions/29364035/comparing-dates-in-selenium-ide (i.e. checking Age, find item with Date=Today, etc)
  756. Page load strategy for Chrome driver: https://stackoverflow.com/questions/43734797/page-load-strategy-for-chrome-driver
  757. Dynamic dates in Selenium IDE: http://dubbelfnutt.wordpress.com/2011/02/18/dynamic-dates-in-selenium-ide/
  758. How to get url from 'link' element in Selenium IDE: http://stackoverflow.com/questions/16220696/how-to-get-url-from-link-element-in-selenium-ide
  759. Selenium click on link: http://stackoverflow.com/questions/11311100/selenium-click-on-link
  760. Manual input from user while running Selenium IDE script: http://stackoverflow.com/questions/8921929/manual-input-from-user-while-running-selenium-ide-script
  761. How to parse a URL from string in Selenium IDE: http://stackoverflow.com/questions/7996820/how-to-parse-a-url-from-string-in-selenium-ide
  762. "storeLocation" and "storeTitle" commands in selenium IDE: http://www.software-testing-tutorials-automation.com/2012/11/storelocation-and-storetitle-commands.html
  763. Guide to installing the latest SeleniumIDE: https://www.guru99.com/install-selenuim-ide.html
  764. Selenium IDE "open" and "openWindow" commands with example: http://www.software-testing-tutorials-automation.com/2012/10/selenium-ide-openand-openwindow-command.html
  765. Selenium IDE and xpath - find text / row in table and select radio box: http://stackoverflow.com/questions/10428878/selenium-ide-and-xpath-find-text-row-in-table-and-select-radio-box
  766. CSS target elements by partial class or ID name: http://www.antimath.info/css/css-target-elements-by-partial-class-or-id-name/
  767. Better Web Testing With Selenium: https://dzone.com/articles/better-web-testing-with-selenium (selector best practices for maintainability: IDs, then CSS path, then xPath, then specific Classes by name but only if well architected for uniqueness/specificity, lastly pixel-based)
  768. WebDriver -- Advanced Usage: http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp
  769. How to use Selenium IDE with Scripts & Commands (Assertions, Actions): http://www.guru99.com/first-selenium-test-script.html (continue Test Script despite an error)
  770. Selenium IDE - "runScript" Command example to generate alert including variable value : http://www.software-testing-tutorials-automation.com/2013/11/selenium-ide-runscript-command-example.html
  771. Getting Started With Selenium - Test Automation Pyramids: https://smartbear.com/learn/automated-testing/getting-started-with-selenium/?q=selenium
  772. Selenium -- How do I get the src of an image?: http://stackoverflow.com/questions/7245013/selenium-how-do-i-get-the-src-of-an-image
  773. Selenium - test if element contains some text: http://stackoverflow.com/questions/9922054/selenium-test-if-element-contains-some-text
  774. Selenium jQuery lib in Java: http://www.vcskicks.com/selenium-jquery.php
  775. Using Selenium IDE's getEval command with FirefoxWebdriver: http://stackoverflow.com/questions/17214151/using-selenium-ides-geteval-command-with-firefoxwebdriver
  776. What is "geckodriver"? How to use it in Selenium WebDriver?: https://sqa.stackexchange.com/questions/26328/what-is-geckodriver-how-to-use-it-in-selenium-webdriver
  777. How to Use Gecko (Marionette) Driver in Selenium 3: https://www.toolsqa.com/selenium-webdriver/how-to-use-geckodriver/
  778. Compare stored values in Selenium IDE: http://stackoverflow.com/questions/30073301/compare-stored-values-in-selenium-ide
  779. Selenium questions/answers from an expert Automated Tester: https://arunpp.wordpress.com/selenium/
  780. Locators in Selenium IDE -- CSS Selector, DOM, XPath, Link Text, ID: https://www.guru99.com/locators-in-selenium-ide.html
  781. Writing CSS Selectors (WEBINAR): https://applitools.com/blog/css-selectors | CSSSelectorsTest.java | fullPage.html
  782. How to Identify Web Elements Using Selenium Xpath and Other Locators – Selenium Tutorial #5: http://www.softwaretestinghelp.com/using-selenium-xpath-and-other-locators-selenium-tutorial-5/
  783. SauceLabs -- Selenium Tips - CSS Selectors: https://saucelabs.com/resources/articles/selenium-tips-css-selectors
  784. Why CSS Selectors are the most useful Selenium WebDriver locators?: https://www.pineboat.in/post/css-selectors-selenium-webdriver-find-element-xpath-replaced/
  785. CSS Selector Strategies for Automated Browser Testing: https://ghostinspector.com/blog/css-selector-strategies-automated-browser-testing/
  786. CSS nth-child Selector: https://codoid.com/css-nth-child-selector/
  787. How to Use CSS Selector for Identifying Web Elements for Selenium Scripts – Selenium Tutorial #6: https://www.softwaretestinghelp.com/css-selector-selenium-locator-selenium-tutorial-6/
  788. How to get image src path/filename using Selenium WebDriver: https://stackoverflow.com/questions/12290325/how-to-get-image-src-name-using-selenium-webdriver?rq=1
  789. Get All image "src" values in selected container: https://stackoverflow.com/questions/33259923/get-all-src-image-selected-container
  790. How to assert the src of an image in Selenium?: https://groups.google.com/forum/#!topic/webdriver/-NRiru2dEoo
  791. Use xpath to get "src" attribute from "img" tag: http://grokbase.com/t/gg/selenium-users/127jnf9p1m/want-to-use-the-xpath-by-using-src-tag
  792. ElementalSelenium -- CSS .vs. xPath selector Benchmarks - http://elementalselenium.com/tips/category/benchmarks
  793. Selenium IDE - always fail on any 500 error: http://stackoverflow.com/questions/6228700/selenium-ide-always-fail-on-any-500-error/6989213#6989213 (requires a custom script in the Selenium settings)
  794. Tutorial post for selenium IDE "waitForTitle" and "waitForNotTitle" commands: http://www.software-testing-tutorials-automation.com/2013/11/tutorial-post-for-selenium-ide.html
  795. WaitForTitle does not work: http://stackoverflow.com/questions/39107883/waitfortitle-does-not-work
  796. Selenium IDE testing all links: http://stackoverflow.com/questions/10137250/selenium-ide-testing-all-links
  797. A Simple Loop in Selenium IDE: http://kb.jaxara.com/simple-loop-selenium-ide
  798. Selenium IDE Xpath Tutorials: http://seleniummaster.com/sitecontent/index.php/introduction-to-selenium-automation/selenium-ide/115-selenium-ide-xpath-tutorials
  799. Selenium IDE assertions "verifyNotText" and "verifyNotTitle" Command Examples: http://www.software-testing-tutorials-automation.com/2013/10/selenium-ide-assertions-verifynottext.html
  800. Selenium - test if element contains some text: https://stackoverflow.com/questions/9922054/selenium-test-if-element-contains-some-text
  801. Selenium get current URL after loading a page: https://stackoverflow.com/questions/16242340/selenium-get-current-url-after-loading-a-page#16242994
  802. How to store the content/value of xpath?: https://stackoverflow.com/questions/11010992/how-to-store-the-content-value-of-xpath
  803. How do I find an element that contains specific text in Selenium Webdriver (Python)?: https://stackoverflow.com/questions/12323403/how-do-i-find-an-element-that-contains-specific-text-in-selenium-webdriver-pyth
  804. Selenium -- test if element contains some text: https://stackoverflow.com/a/9928813/335867
  805. Selenium IDE "focus" and "keyUp" commands with example: http://www.software-testing-tutorials-automation.com/2013/07/selenium-ide-focus-and-keyup-commands.html' (click a troublesome button or link using tab over to it and hit Enter method)
  806. How do i allow Chrome to use my microphone programatically?: https://stackoverflow.com/questions/38832776/how-do-i-allow-chrome-to-use-my-microphone-programatically
  807. Parameterization of Tests in Selenium IDE: http://selftechy.com/2011/06/30/parameterization-of-tests-in-selenium-ide
  808. SeleniumIDE JS Extensions: http://www.seleniumhq.org/docs/08_user_extensions.jsp#using-user-extensions-with-selenium-ide | EXAMPLE
  809. When Selenium IDE Doesn't Work, SpiraTest Comes to the Rescue!: https://www.inflectra.com/Ideas/Entry/when-selenium-ide-doesnt-work-spiratest-comes-to-t-506.aspx
  810. Which test management tools provide integration with Selenium & CI tools?: http://www.inflectra.com/Ideas/Entry/test-management-tools-integration-with-selenium-ci-709.aspx
  811. Using a proxy server in SeleniumIDE 4.x: https://github.com/SeleniumHQ/selenium-ide/blob/master/packages/selenium-side-runner/README.md#using-a-proxy-server
  812. Stunning Return of Selenium IDE (Sweet Dream or Nightmare): https://www.joecolantonio.com/selenium-ide/
  813. Best Practice for Selenium IDE 3.2.X /3.3.X and Geckodriver: https://www.ibm.com/developerworks/community/blogs/0587adbc-8477-431f-8c68-9226adea11ed/entry/Best_Practice_for_Selenium_IDE_3_2_X_3_3_X_and_Geckodriver (includes SeleniumIDE .vs. GeckoDriver mapping table showing which commands are supported on both or just one)
  814. In search of the Selenium IDE’s successor: https://medium.com/@briananderson2209/in-search-of-the-selenium-ides-successor-33bc7eaefe7f
  815. Kantu - "SeleniumIDE Lite" for Chrome: https://a9t9.com/kantu/web-automation/chrome | SeleniumIDE original download for reference + FF <= 54 a Selenium
  816. Katalon Studio - free test automation IDE: https://www.katalon.com/ | SLIDES
  817. Katalon Recorder docs: https://docs.katalon.com/display/KR/Overview
  818. Import/Export function for Test Case variables in Katalon Studio: https://forum.katalon.com/discussion/9854/importexport-function-for-test-case-variables
  819. Handling Web Element Locators using Katalon Studio: https://www.katalon.com/resources-center/tutorials/web-element-locators/
  820. Katalon Studio webinars: https://m.youtube.com/channel/UC0g8oLvxnX0i3Ul98uSOrPA
  821. Silk WebDriver: https://www.microfocus.com/products/silk-portfolio/silk-webdriver/
  822. FRET (Front-End Testing Tool): https://www.frontendtest.org/blog/selenium-ide-chrome/ (claims to be "SeleniumIDE ported to Chrome")
  823. Canoo WebTest: http://webtest.canoo.com/webtest/manual/WebTestHome.html
  824. Kantu: https://a9t9.com/ | KANTU - Selenium IDE compatible commands
  825. iMacros: https://imacros.net/#prettyPhoto
  826. How to run tests from Selenium IDE in Chrome: http://screenster.io/running-tests-from-selenium-ide-in-chrome/
  827. Selenium IDE -- The Good, the Bad, and the Ugly: https://www.lucidchart.com/techblog/2016/09/13/selenium-ide-the-good-the-bad-and-the-ugly/
  828. Selenium IDE alternatives for UI regression testing: https://news.ycombinator.com/item?id=13586904
  829. Selenium IDE is not compatible with Firefox 55: https://github.com/SeleniumHQ/selenium/issues/4406
  830. Firefox 32 broken with selenium 2.42: https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/7823
  831. Simulate "keyboard shortcuts" in SeleniumIDE through the execute script command: https://github.com/SeleniumHQ/selenium-ide/issues/929
  832. Simulate "Right-click" action in SeleniumIDE through the execute script command: https://github.com/SeleniumHQ/selenium-ide/issues/754
  833. EasyMock - comprehensive user guide: http://easymock.org/user-guide.html
  834. wikipedia: EasyMock
  835. EasyMock tutorial: https://www.tutorialspoint.com/easymock/
  836. Testing with EasyMock - Tutorial: http://www.vogella.com/tutorials/EasyMock/article.html
  837. dzone - JUnit & EasyMock (REFCARDZ): https://dzone.com/storage/assets/4076-rc028-010d-junit_0.pdf
  838. EasyMock Tutorial -- Getting Started: https://dzone.com/articles/easymock-tutorial-–-getting
  839. Easier testing with EasyMock: https://www.ibm.com/developerworks/library/j-easymock/index.html
  840. EasyMock tutorial – Getting Started: https://veerasundar.com/blog/2012/06/easymock-tutorial-getting-started/
  841. wikipedia: Mockito
  842. JUnit 5 mockito extension: https://github.com/mockito/mockito/wiki/Related-Projects
  843. Mockito tutorial: https://www.tutorialspoint.com/mockito/index.htm
  844. Unit tests with Mockito - Tutorial: http://www.vogella.com/tutorials/Mockito/article.html
  845. How to partially mock HttpServletRequest using Mockito: https://stackoverflow.com/questions/22714359/how-to-partially-mock-httpservletrequest-using-mockito
  846. dzone - Mockito (REFCARDZ): https://dzone.com/asset/download/256
  847. dzone - Getting Started with Mocking in Java using Mockito: https://dzone.com/articles/getting-started-mocking-java
  848. dzone - A Guide to Mocking With Mockito: https://dzone.com/articles/a-guide-to-mocking-with-mockito
  849. dzone - 5 Minute Mockito: https://dzone.com/articles/5-minute-mockito-tutorial-howto
  850. Mockito in six easy examples: https://gojko.net/2009/10/23/mockito-in-six-easy-examples/
  851. Unit Testing Complex Java Objects with Mockito: http://code.hootsuite.com/unit-testing-complex-java-objects-with-mockito/
  852. Mockito – Using Spies: http://www.baeldung.com/mockito-spy
  853. JUnit Testing using Mockito and PowerMock: https://blog.codecentric.de/en/2016/03/junit-testing-using-mockito-powermock/
  854. A Unit Testing Practitioner's Guide to Everyday Mockito: https://www.toptal.com/java/a-guide-to-everyday-mockito
  855. Using PowerMock with EasyMock: https://github.com/powermock/powermock/wiki/EasyMock
  856. Maven config - PowerMock + EasyMock: https://github.com/powermock/powermock/wiki/EasyMock-Maven
  857. EasyMock gets more power with PowerMock: http://www.tsolak.com/easymock-gets-more-power-with-powermock/
  858. Using PowerMock with Mockito: https://github.com/powermock/powermock/wiki/Mockito
  859. Maven setup for the Mockito 2.x: https://github.com/powermock/powermock/wiki/Mockito-2-Maven
  860. JUnit Testing using Mockito and PowerMock: https://blog.codecentric.de/en/2016/03/junit-testing-using-mockito-powermock/
  861. Watir - Podcasts: https://soundcloud.com/the-watir-podcast
  862. wikipedia: HP QuickTest Professional
  863. HP QuickTest Professional 11.00 Minimum System Requirements and Supported Environments: http://h18004.www1.hp.com/products/quickspecs/14128_div/14128_div.html
  864. QTP 11 – Firefox support matrix: http://www.learnqtp.com/qtp11-firefox-support-matrix/
  865. “Genie” – Automated UI Tester for Adobe ActionScript: http://inflagrantedelicto.memoryspiral.com/2012/06/genie-automated-ui-tester-for-adobe-actionscript/
  866. SikuliX: http://sikulix.com/
  867. Sikuli project downloads landing page: https://launchpad.net/sikuli
  868. How to Integrate Sikuli with Selenium Webdriver: learn-automation.com/integrate-sikuli-with-selenium-webdriver/
  869. The Road to HTML5 -- Automating visual testing with Sikuli: https://blog.gliffy.com/2012/07/12/the-road-to-html5-automating-visual-testing-with-sikuli/
  870. Sikuli Image/Visual Test Automation: https://roadtoautomation.blogspot.com/p/sikuli.html
  871. Under what circumstances is Sikuli better for test automation than Selenium or Watir?: https://sqa.stackexchange.com/questions/994/under-what-circumstances-is-sikuli-better-for-test-automation-than-selenium-or-w/3334
  872. Road to handle file download popup in webdriver using Sikuli: https://roadtoautomation.wordpress.com/2013/08/24/road-to-handle-file-download-popup-in-webdriver-using-sikuli/comment-page-1/
  873. Visual regression testing with PhantomCSS: https://css-tricks.com/visual-regression-testing-with-phantomcss/
  874. Visual Testing in Katalon Studio: https://forum.katalon.com/discussion/9799/visual-testing-in-katalon-studio
  875. Sikuli – for all those hard to reach places!: https://hel1lotestworld.com/2012/04/27/sikuli-for-all-those-hard-to-reach-places/
  876. Using Sikuli to test legacy Flash: https://technicaltesting.wordpress.com/2012/01/19/using-sikuli-to-test-legacy-flash/
  877. Sikuli Automation Tool with Coded UI (using via C#): http://afour-tech.ulitzer.com/node/3825668
  878. Building Large-scale Testing framework Using Sikuli --- to be revised: https://answers.launchpad.net/sikuli/+faq/1110
  879. Building Large-scale Testing framework Using Sikuli 1.0 - Mac and Windows: https://answers.launchpad.net/sikuli/+question/111193/+index
  880. Write sikuli code in pure java?: https://answers.launchpad.net/sikuli/+question/108878
  881. How to use sikuli with latest apple safari driver: https://stackoverflow.com/questions/40202241/how-to-use-sikuli-with-latest-apple-safari-driver
  882. Preparing Apple Safari for Testing: https://documentation.microfocus.com/help/index.jsp?topic=%2Fcom.borland.silktest.silk4j.doc%2FGUID-954CD5DE-6B61-477B-A358-86BA4C6C0DF9.html
  883. Testing with WebDriver in Safari: https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
  884. Safari -- Unable to upload File using file chooser window, error: 'This Safari window is remotely controlled by an automated test.': https://github.com/SeleniumHQ/selenium/issues/6198
  885. WebDriver Support in Safari 10: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
  886. Maven project does not referenced sikuli-api dependency in java: https://stackoverflow.com/questions/34672702/maven-project-does-not-referenced-sikuli-api-dependency-in-java
  887. Continuous Testing -- Onboarding and Best Practices: http://info.blazemeter.com/thank-you-continuous-testing-onboarding-best-practices-0
  888. LoadRunner tutorials: http://motevich.blogspot.ca/2008/01/loadrunner-tutorials.html
  889. Apache JMeter 3.0 – What’s New?: http://dzone.com/articles/apache-jmeter-30-whats-new
  890. How to Write a plugin for JMeter: http://jmeter.apache.org/extending/jmeter_tutorial.pdf
  891. dzone -- Getting Started With Apache JMeter (REFCARDZ): https://dzone.com/refcardz/getting-started-with-apache-jmeter
  892. JMeter Tutorial: http://www.tutorialspoint.com/jmeter/
  893. JMeter Load Testing Tutorial: https://www.testertestingtoolseasy.com/2018/08/jmeter-load-testing-tutorial-step-0.html (in parcticular see sections 6, 7, [2] for good details on recording a Test Scenario for Android / iOS, and re-running later)
  894. How to get started with JMeter (PART 1): http://dzone.com/articles/how-to-get-started-with-jmeter-part-1-installation
  895. Apache JMeter Tutorial: http://dzone.com/articles/apache-jmeter-tutorial
  896. Load Testing Your Application Using JMeter, Docker, and Amazon Web Services: https://dzone.com/articles/stop-hoping-for-the-best-and-load-performing-tests
  897. How to Use JMeter for Performance & Load Testing overview: https://www.guru99.com/jmeter-performance-testing.html
  898. JMeter 12-step to Mastery Tutorial: http://www.guru99.com/jmeter-tutorials.html
  899. How to run JMeter in Non GUI mode: https://blog.e-zest.com/how-to-run-jmeter-in-non-gui-mode/
  900. How to Create Non-GUI JMeter Tests with JMeter Classes: https://www.blazemeter.com/blog/how-to-create%3Dnon-gui-jmeter-tests-with-jmeter-classes
  901. Distributed Performance Testing With Maven JMeter and Jenkins: http://dzone.com/articles/distributed-performance
  902. Recording Test Performance (history) with Jenkins: https://dzone.com/articles/recording-test-performance (store historical performance to generate graphs over time)
  903. Integrating Selenium with JMeter for Load Testing: http://www.anzaan.com/2012/07/integrating-selenium-with-jmeter-for-application-load-testing/
  904. Selenium Integration with JMeter: https://testxpress.wordpress.com/2012/09/16/selenium-integration-with-jmeter/
  905. Running Selenium scripts with JMeter: http://stackoverflow.com/questions/7817498/running-selenium-scripts-with-jmeter
  906. Selenium vs. JMeter -- Which to Choose and When: https://dzone.com/articles/selenium-vs-jmeter-which-one-should-you-choose-and
  907. Build JMeter Test Plan: https://www.toolsqa.com/jmeter/build-jmeter-test-plan/
  908. How to handle windows popups using JMeter?: http://stackoverflow.com/questions/36907636/how-to-handle-windows-popups-using-jmeter
  909. Workbench section not showing in apache jmeter: https://stackoverflow.com/questions/48780603/workbench-section-not-showing-in-apache-jmeter
  910. JMeter Listeners: http://jmeter.apache.org/usermanual/listeners.html#defaults
  911. JMeter Listeners -- Part I - Listeners with Basic Displays: https://www.blazemeter.com/blog/jmeter-listeners-part-1-basic-display-formats
  912. JMeter Listeners -- Part II - Listeners That Aggregate Data Samples:
  913. JMeter Listeners -- Part III - Listeners That Calculate Distribution Metrics: https://dzone.com/articles/jmeter-listeners-part-3-listeners-that-calculate-d
  914. JMeter Capturing Full Output: https://www.redline13.com/blog/2019/08/jmeter-capturing-full-output-2/
  915. MySQL Database and JMeter -- How to Test Your Connection: https://dzone.com/articles/mysql-database-and-jmeter-how-to-test-your-connect
  916. Using JMeter for Performance Testing HLS Video Delivery: http://info.blazemeter.com/thank-you-using-jmeter-performance-testing-hls-video-delivery-0
  917. XMPP Load Testing - Advanced Scenarios: https://dzone.com/articles/xmpp-load-testing-advanced-scenarios
  918. JMeter Parameterization -- The Complete Guide: https://dzone.com/articles/jmeter-parameterization-the-complete-guide
  919. Generating Report Dashboard: http://jmeter.apache.org/usermanual/generating-dashboard.html
  920. Continuous Integration 101 -- How to Run JMeter With Jenkins: https://www.blazemeter.com/blog/continuous-integration-101-how-run-jmeter-jenkins
  921. Configure Jenkins to Run and Show JMeter Tests: http://www.baeldung.com/jenkins-and-jmeter (both Jenkins classic GUI config and Jenkins Pipeline examples)
  922. How to Set Your JMeter Load Test to Use Client Side Certificates: https://www.blazemeter.com/blog/how-set-your-jmeter-load-test-use-client-side-certificates
  923. How to Load Test Async Requests with JMeter: https://www.blazemeter.com/blog/how-to-load-test-async-requests-with-jmeter
  924. How to Load Test OpenID Secured Websites: https://www.blazemeter.com/blog/how-load-test-openid-secured-websites
  925. The Boundary Extractor vs. the Regular Expression Extractor in JMeter: https://www.blazemeter.com/blog/the-boundary-extractor-vs-the-regular-expression-extractor-in-jmeter
  926. JMeter Plugins: https://jmeter-plugins.org/
  927. How to Create a Local Repository of JMeter Plugins: https://dzone.com/articles/how-to-create-a-local-repository-of-jmeter-plugins
  928. How to Reuse Your JMeter Code With JAR Files and Save Time: https://dzone.com/articles/how-to-reuse-your-jmeter-code-with-jar-files-and-s
  929. Make Use of Docker with JMeter (locally) - Learn How: https://www.blazemeter.com/blog/make-use-of-docker-with-jmeter-learn-how
  930. Running JMeter with Docker in the Cloud: https://www.blazemeter.com/blog/running-jmeter-with-docker-in-the-cloud
  931. RTMP Performance Testing with JMeter -- Learn How: https://www.blazemeter.com/blog/rtmp-performance-testing-with-jmeter-learn-how
  932. JMeter’s Raw Data Source PreProcessor - The Ultimate Guide: https://www.blazemeter.com/blog/jmeters-raw-data-source-preprocessor-the-ultimate-guide
  933. Load Testing Mobile Apps Made Easy: https://www.blazemeter.com/blog/load-testing-mobile-apps-made-easy
  934. The Ultimate JMeter Resource List: https://www.blazemeter.com/blog/ultimate-jmeter-resource-list
  935. Beanshell vs JSR223 vs Java JMeter Scripting -- The Performance-Off You've Been Waiting For!: https://www.blazemeter.com/blog/beanshell-vs-jsr223-vs-java-jmeter-scripting-its-performance
  936. How to Change JMeter´s Load During Runtime: https://www.blazemeter.com/blog/how-to-change-jmeters-load-during-runtime
  937. Social Network Authentication Load Testing with JMeter: https://www.blazemeter.com/blog/social-network-authentication-load-testing-with-jmeter
  938. How to Count Retries as a Single Request in JMeter: https://www.blazemeter.com/blog/how-to-count-retries-as-a-single-request-in-jmeter
  939. JMeter WebSocket Samplers: https://bitbucket.org/pjtr/jmeter-websocket-samplers/src/master/
  940. How to record an Android application using HTTPS traffic with JMeter: https://www.ubik-ingenierie.com/blog/how-to-record-android-application-using-https-traffic-jmeter/
  941. Selenium .vs. JMeter - Which One Should You Choose, and When?: https://www.blazemeter.com/blog/selenium-vs-jmeter-which-one-should-you-choose-and-when
  942. What’s New in Apache JMeter 5.0?: https://blog.e-zest.com/whats-new-in-apache-jmeter-5.0
  943. Stress testing with JMeter: https://geoserver.geo-solutions.it/edu/en/enterprise/jmeter.html
  944. The JMeter HTTP Raw Request Sampler - When and How to Use It: https://www.blazemeter.com/blog/the-jmeter-http-raw-request-sampler-when-and-how-to-use-it
  945. JMeter - Browser recording via "HTTPS/Proxy Recorder": https://www.blazemeter.com/jmeter-training/jmeter-browser-recording
  946. Recording a user session with the proxy: https://guide.blazemeter.com/hc/en-us/articles/206733979-Recording-a-user-session-with-the-proxy
  947. How to Make Performance Testing Simple with JMeter & BlazeMeter (OVERVIEW): https://www.youtube.com/watch?v=yT0ULpRgZMI
  948. No Need to Fear -- How to Make Performance Testing with JMeter Simple (WEBINAR): https://info.blazemeter.com/make-performance-testing-jmeter-simple-ty?submissionGuid=146a1bf1-a982-40dc-917c-0c03151f06a5
  949. Understanding Your Reports - Part 4: How to Read Your Load Testing Reports on BlazeMeter https://www.blazemeter.com/blog/understanding-your-reports-part-4-how-read-your-load-testing-reports-blazemeter
  950. Top 8 JMeter Java Classes You Should Be Using with Groovy: https://www.blazemeter.com/blog/top-8-jmeter-java-classes-you-should-be-using-with-groovy
  951. How to Use HTTP Basic Authentication in JMeter: https://www.blazemeter.com/blog/how-use-http-basic-authentication-jmeter | VIDEO
  952. JMeter Basic Authentication Explained: https://octoperf.com/blog/2018/04/24/jmeter-basic-authentication/
  953. How to Run Performance Tests on OAuth Secured Apps with JMeter: https://www.blazemeter.com/blog/how-run-performance-tests-oauth-secured-apps-jmeter
  954. How to Load Test Async Requests with JMeter: https://www.blazemeter.com/blog/how-to-load-test-async-requests-with-jmeter
  955. How to Use Multiple Certificates When Load Testing Secure Websites: https://www.blazemeter.com/blog/how-to-use-multiple-certificates-when-load-testing-secure-websites
  956. JMeter Constant Throughput Timer: https://performanceengineeringsite.wordpress.com/2018/04/21/constant-throughput-timer/
  957. Performance Testing of Event-Driven Microservices: https://medium.com/capital-one-tech/performance-testing-of-event-driven-microservices-f5de74305985
  958. Implementing Data Driven Testing Using Google Sheets: https://www.blazemeter.com/blog/implementing-data-driven-testing-using-google-sheets
  959. The JMeter Access Log Sampler - A Guide: https://www.blazemeter.com/blog/the-jmeter-access-log-sampler-a-guide
  960. How to Use the Composite Graph Plugin in JMeter: https://www.blazemeter.com/blog/how-to-use-the-composite-graph-plugin-in-jmeter
  961. QA -- Performance Test Plan using JMeter: https://github.com/department-of-veterans-affairs/ascent-sample/wiki/QA-:-Performance-Test-Plan-using-JMeter
  962. JMeter Properties -- Configurable Test Plans: https://octoperf.com/blog/2019/01/14/flexible-test-plans/
  963. JMeter Dashboard and Other Cool JMeter Improvements in RedLine13: https://www.redline13.com/blog/2019/06/jmeter-dashboard/
  964. JMeter Testing Multiple Random File Uploads: https://www.redline13.com/blog/2019/09/jmeter-multiple-random-file-uploads/
  965. JMeter – How To Create Reusable & Modular Test Scripts: www.vinsguru.com/jmeter-modularizing-test-scripts/
  966. How to do Performance Testing using JMeter? – JMeter Tutorials Series Day 5: https://www.softwaretestingclass.com/how-to-do-performance-testing-using-jmeter-tutorial-series-5/
  967. JMeter’s Distributed Testing – JMeter Tutorials Series Day 10: https://www.softwaretestingclass.com/jmeters-distributed-testing-jmeter-tutorials-series-day-10/
  968. JMeter Parameterization -- The Complete Guide: https://dzone.com/articles/jmeter-parameterization-the-complete-guide
  969. JMeter – How To Run Multiple Thread Groups in Multiple Test Environments through properties & parameterization: https://www.vinsguru.com/jmeter-manage-test-plan/
  970. JMeter Performance and Load Testing: https://dzone.com/articles/jmeter-performance-and-load-testing
  971. How to Test SOAP Web Services With JMeter: https://dzone.com/articles/how-to-test-soap-services-with-jmeter
  972. Performance Test Strategy for Jenkins Pipeline (Groovy DSL) - Continuous Performance Testing: https://octoperf.com/blog/2019/03/21/performance-test-strategy/
  973. JMeter – Continuous Performance Testing – JMeter + ANT + Jenkins Integration – Part 2: http://www.testautomationguru.com/jmeter-continuous-performance-testing-part2/
  974. How to make JMeter behave more like a real browser: https://guide.blazemeter.com/hc/en-us/articles/206733719-How-to-make-JMeter-behave-more-like-a-real-browser
  975. How to Load Test AJAX/XHR Enabled Sites With JMeter: https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter/
  976. Authentication and load testing using JMeter: https://sqa.stackexchange.com/questions/30979/authentication-and-load-testing-using-jmeter
  977. JMeter load testing in SPA: https://stackoverflow.com/questions/55941735/jmeter-load-testing-in-spa
  978. JMeter Tutorials -- Test Better, Build Better (ROUNDUP): https://dzone.com/articles/jmeter-tutorial-1
  979. How to Generate Jmeter Report Dashboard: https://learn-jmeter.blogspot.com/2016/10/how-to-generate-jmeter-report-dashboard.html
  980. JMeter 4.0: Error starting remote server: https://stackoverflow.com/questions/50113061/jmeter-4-0-error-starting-remote-server (what to do when getting message: "Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks")
  981. JMeter - Setting up SSL: http://jmeter.apache.org/usermanual/remote-test.html#setup_ssl
  982. What You Need to Know About the Difference Between JMeter 4 & 5: https://abstracta.us/blog/performance-testing/difference-between-jmeter4-jmeter5/
  983. How to resolve Root CA Certificate message in JMeter – Windows 10: http://qainsights.com/resolve-root-ca-certificate-message-jmeter-windows-10/
  984. How to Run JMeter Test Plan Via Docker: https://dzone.com/articles/how-to-run-jmeter-test-plan-via-docker
  985. Automatically stop a JMeter load test after too many errors: https://www.redline13.com/blog/2021/03/stop-a-jmeter-load-test/
  986. JMeter - Example of Synchronizing Timer (sample usage): http://www.2min2code.com/articles/jmeter_intro/sync_timer
  987. Most Popular Load Test Types Over The Years – JMeter Keeps Growing: https://www.redline13.com/blog/2021/08/popular-load-test-types/
  988. How to read a value from response header in jMeter?: https://stackoverflow.com/questions/36547421/how-to-read-a-value-from-response-header-in-jmeter
  989. Meet skipfish, our automated web security scanner: http://googleonlinesecurity.blogspot.ca/2010/03/meet-skipfish-our-automated-web.html
  990. Akamai Security Advisory - Skipfish Web App Scanner: http://www.akamai.com/dl/akamai/Akamai-Security-Advisory-Skipfish-Application-Scanner.pdf
  991. Attackers Use Skipfish to Target Financial Sites: http://blogs.akamai.com/2014/01/attackers-use-skipfish-to-target-financial-sites.html
  992. Google releases Skipfish web-security scanner: http://www.zdnet.com/article/google-releases-skipfish-web-security-scanner-3040088391/
  993. BDD-Security (Continuum Security Automation): http://iriusrisk.com/open-source/
  994. Agile in a Nutshell -- The Testing Pyramid: http://www.agilenutshell.com/episodes/41-testing-pyramid
  995. The Mobile Test Pyramid: https://dojo.ministryoftesting.com/dojo/lessons/the-mobile-test-pyramid
  996. Inverting The Testing Pyramid: https://www.slideshare.net/nashjain/inverting-the-testing-pyramid
  997. The Forgotten Layer of the Test Automation Pyramid: https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
  998. Agile-Friendly Test Automation Tools/Frameworks: http://testobsessed.com/2008/04/agile-friendly-test-automation-toolsframeworks/
  999. The Agile Testing Pyramid: http://www.agilecoachjournal.com/2014-01-28/the-agile-testing-pyramid
  1000. WebDriver docs: https://seleniumhq.github.io/docs/wd.html
  1001. See NOTES on the User Testing Methods Comparison Chart: http://dzone.com/articles/user-testing-methods-comparison-chart
  1002. Test Driven Development (TDD) by Stephan Wels: https://sewiki.iai.uni-bonn.de/_media/teaching/labs/xp/2012b/seminar/3-tdd.pdf
  1003. TDD strategy in Real Life: http://dzone.com/articles/tdd-strategy-in-real-life
  1004. Keyword-Driven Testing overview: https://www.stickyminds.com/article/keyword-driven-testing
  1005. Creating a Custom Keyword-Driven Framework: http://docs.testplant.com/ePF/using/epf-keyword-driven-testing-with-eggplant-functional.htm
  1006. wikipedia: Keyword-driven testing
  1007. Keyword Driven Framework Testing - Complete Tutorial: https://www.guru99.com/keyword-driven-testing.html
  1008. Keyword-Driven Test Automation with Ranorex: https://www.ranorex.com/blog/keyword-driven-test-automation-framework/
  1009. List of Keyword-driven testing tools: http://www.qatestingtools.com/keyword-driven-testing-tools
  1010. 4 Ways to Choose Which Browsers and Devices to Test: https://crossbrowsertesting.com/blog/browsers/choose-which-browsers-to-test/
  1011. Current Web Browser, OS, Device and Version Statistics (2016): https://collectiveinnovation.com/current-web-browser-os-device-and-version-statistics/
  1012. Global market share held by leading smartphone vendors from 4th quarter 2009 to 4th quarter 2017: https://www.statista.com/statistics/271496/global-market-share-held-by-smartphone-vendors-since-4th-quarter-2009/
  1013. OS Market Share (2018): https://netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222017-03%22%2C%22dateEnd%22%3A%222018-02%22%2C%22segments%22%3A%22-1000%22%7D
  1014. Browser Market Share (2018): https://netmarketshare.com/browser-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22browser%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22browsersDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222017-03%22%2C%22dateEnd%22%3A%222018-02%22%2C%22segments%22%3A%22-1000%22%7D
  1015. Mobile Vendor Market Share Worldwide: http://gs.statcounter.com/vendor-market-share/mobile
  1016. Apple Trails Samsung in Smartphone Market—share, Won't likely Catch Up in 2018: http://fortune.com/2018/02/13/apple-iphone-samsung-market-share/
  1017. Apple Passes Samsung to Capture the Top Position in the Worldwide Smartphone Market While Overall Shipments Decline 6.3% in the Fourth Quarter, According to IDC: https://www.idc.com/getdoc.jsp?containerId=prUS43548018
  1018. What are examples of automated testing?: http://www.inflectra.com/Ideas/Entry/what-are-examples-of-automated-testing-688.aspx
  1019. Introducing the Web UI Test Automation Playground: http://www.inflectra.com/Ideas/Entry/introducing-the-web-ui-test-automation-playground-689.aspx
  1020. Problem Steps Recorder (PSR.exe) + Windows Error Reporting = Another tool to help find solutions to software defects: https://blogs.msdn.microsoft.com/wer/2009/03/30/problem-steps-recorder-psr-exe-windows-error-reporting-another-tool-to-help-find-solutions-to-software-defects/
  1021. Pareto Analysis - How/When To Use It: http://erc.msh.org/quality/pstools/pspareto.cfm
  1022. Pareto Analysis (the 80:20 rule): http://www.managers-net.com/paretoanalysis.html
  1023. Intro to QUnit (verbatim copy of SmashingMagazine article on JS unit testing): http://qunitjs.com/intro/
  1024. Difference Between JMeter & LoadRunner: http://www.differencebetween.net/technology/software-technology/difference-between-jmeter-and-loadrunner/
  1025. Deming institute - Eliminate Slogans, Exhortations and Targets: https://deming.org/eliminate-slogans-exhortations-and-targets/ (a criticism of "Zero Defects" mentality)
  1026. What is Zero Defects?: https://www.toolshero.com/quality-management/zero-defects/
  1027. SixSigma -- The Concept of Zero Defects in Quality Management: https://www.simplilearn.com/concept-of-zero-defects-quality-management-article
  1028. Zero Defects -- What Does It Achieve? What Does It Mean?: https://www.isixsigma.com/new-to-six-sigma/sigma-level/zero-defects-what-does-it-achieve-what-does-it-mean/
  1029. Pros & Cons of Zero Defects: https://www.shmula.com/25038-2/25038/
  1030. What Is Difference Between SDET And TESTER?: https://www.softwaretestingclass.com/what-is-difference-between-sdet-and-tester/ (SDET = Software Development Engineer in Test)
  1031. The Cost of Fixing Bugs in Production: https://www.genrocket.com/the-cost-of-fixing-bugs-in-production/
  1032. 11 of the most costly software errors in history: https://raygun.com/blog/costly-software-errors-history/
  1033. Financial Cost of Software Bugs: https://medium.com/@ryancohane/financial-cost-of-software-bugs-51b4d193f107
  1034. Software Errors Cost U.S. Economy $59.5 Billion Annually: http://www.abeacha.com/NIST_press_release_bugs_cost.htm
  1035. How much do bugs cost to fix during each phase of the SDLC?: https://www.synopsys.com/blogs/software-security/cost-to-fix-bugs-during-each-sdlc-phase/
  1036. Software Defects - Do Late Bugs Really Cost More?: https://developers.slashdot.org/story/03/10/21/0141215/software-defects---do-late-bugs-really-cost-more
  1037. Software testing black swan bites cause pain: https://testertested.blogspot.com/2010/11/software-testing-black-swan-bites-cause.html
  1038. CA Technologies buys BlazeMeter: https://www.zdnet.com/article/ca-technologies-buys-blazemeter/
  1039. Why did Broadcom acquire CA Technologies? Was this wise? How will this play out? What are the implications for Broadcom’s future and for Broadcom investors?: https://www.quora.com/Why-did-Broadcom-acquire-CA-Technologies-Was-this-wise-How-will-this-play-out-What-are-the-implications-for-Broadcom-s-future-and-for-Broadcom-investors
  1040. Weirdest. Acquisition. Ever. Broadcom buys CA Technologies: https://www.theregister.co.uk/2018/07/12/broadcom_ca_technologies/

See Also

Agile | CI/CD | SCM | Ant | Maven | Logging | Monitoring | Scheduling | Productivity | Security