Difference between revisions of "Testing"

From BC$ MobileTV Wiki
Jump to: navigation, search
(Selenium)
(Automated)
(364 intermediate revisions by the same user not shown)
Line 36: Line 36:
  
 
=== 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.
  
 
* [[wikipedia: Continuous testing]]
 
* [[wikipedia: Continuous testing]]
 
* Getting started with "Headless Chrome" browser: https://developers.google.com/web/updates/2017/04/headless-chrome
 
* Getting started with "Headless Chrome" browser: https://developers.google.com/web/updates/2017/04/headless-chrome
 
* Using headless Chrome as an automated screenshot tool: https://medium.com/@dschnr/using-headless-chrome-as-an-automated-screenshot-tool-4b07dffba79a<ref>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</ref>
 
* Using headless Chrome as an automated screenshot tool: https://medium.com/@dschnr/using-headless-chrome-as-an-automated-screenshot-tool-4b07dffba79a<ref>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</ref>
<ref>Continuous Testing -- Your Ultimate Summer Reading Guide : https://dzone.com/articles/continuous-testing-your-ultimate-summer-reading-gu</ref>
+
<ref>Continuous Testing -- Your Ultimate Summer Reading Guide: https://dzone.com/articles/continuous-testing-your-ultimate-summer-reading-gu</ref>
 +
<ref>Continuous Testing -- Transforming Testing for Agile and DevOps: https://dzone.com/refcardz/continuous-testing-101</ref>
 +
<ref>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/</ref>
 +
<ref>Wasteful Activity #2 -- Playing with defects: https://wastebyexample.wordpress.com/2015/05/18/wasteful-activity-2-playing-with-defects/</ref>
 +
<ref>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/</ref>
 +
<ref>Continuous Testing: What, Why, and How?: https://www.continuoustesting.com/2019/02/12/continuous-testing-what-why-and-how/</ref>
 +
<ref>Shift Left, Shift Right -- What Are We Shifting, and Why?: https://dzone.com/articles/shift-left-shift-right-what-are-we-shifting-and-wh</ref>
 +
 
  
 
==== Shift Left ====
 
==== 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).
  
 
* [[wikipedia: Shift left testing]]
 
* [[wikipedia: Shift left testing]]
Line 55: Line 66:
 
* Shift-left - why you need to perform testing earlier in Dev cycle: https://dzone.com/articles/shift-left-approach-why-do-you-need-to-perform-ear
 
* Shift-left - why you need to perform testing earlier in Dev cycle: https://dzone.com/articles/shift-left-approach-why-do-you-need-to-perform-ear
 
* We're all Testers now -- getting the organization ready for Shift-left automation: https://techbeacon.com/were-all-testers-now-5-steps-get-ready-shift-left-automation
 
* We're all Testers now -- getting the organization ready for Shift-left automation: https://techbeacon.com/were-all-testers-now-5-steps-get-ready-shift-left-automation
 +
<ref>What is shift-left testing?: https://blog.parasoft.com/what-is-the-shift-left-approach-to-software-testing</ref>
  
 
==== Shift Right ====
 
==== 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''.
 +
  
 
* 8 Reasons to Shift Testing Right: https://www.linkedin.com/pulse/8-reasons-shift-testing-right-lanette-creamer/
 
* 8 Reasons to Shift Testing Right: https://www.linkedin.com/pulse/8-reasons-shift-testing-right-lanette-creamer/
 
* Shift-right -- Test microservices in the wild to tame DevOps: https://techbeacon.com/shift-right-test-microservices-wild-tame-devops
 
* Shift-right -- Test microservices in the wild to tame DevOps: https://techbeacon.com/shift-right-test-microservices-wild-tame-devops
 +
<ref>How to Implement Testing in Production: https://www.split.io/blog/how-to-implement-testing-in-production/ (nice visual timeline to implement PROD testing)</ref>
 +
 +
  
 
== Types of Testing ==
 
== Types of Testing ==
  
 
* [[wikipedia: Software testing]]
 
* [[wikipedia: Software testing]]
 +
<ref>Different kinds of testing: https://blog.frankel.ch/different-kinds-testing/</ref>
 +
<ref>Defining Test Boundaries – An example: https://www.simpleorientedarchitecture.com/defining-test-boundaries/</ref>
  
 
=== Unit ===
 
=== Unit ===
Line 71: 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>Unit Test Your Architecture with ArchUnit: https://blog.scottlogic.com/2019/12/05/unit-test-your-architecture-with-archunit.html | [https://www.archunit.org/userguide/html/000_Index.html DOCS] | [https://github.com/TNG/ArchUnit-Examples EXAMPLES]</ref>
 +
<ref>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/</ref>
 +
<ref>10 Awesome Features of Pytest for Unit Testing: https://dzone.com/articles/10-awesome-features-of-pytest</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>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 79: Line 111:
 
* [[wikipedia: Usability testing]]
 
* [[wikipedia: Usability testing]]
 
* [[wikipedia: Component-based usability testing]]
 
* [[wikipedia: Component-based usability testing]]
 +
* Measuring Usability with the System Usability Scale (SUS): https://measuringu.com/sus/
 +
<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>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 ====
 +
 +
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
 +
 +
* The Little Mocker: https://blog.cleancoder.com/uncle-bob/2014/05/14/TheLittleMocker.html
 +
<ref>Mocking in Unit Tests: https://dzone.com/articles/mocking-in-unit-tests</ref>
 +
<ref>'''The Test Double Rule of Thumb: http://engineering.pivotal.io/post/the-test-double-rule-of-thumb/'''</ref>
 +
<ref>When Writing Unit Tests, Don’t Use Mocks: https://sendgrid.com/blog/when-writing-unit-tests-dont-use-mocks/</ref>
 +
<ref>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/</ref>
 +
<ref>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</ref>
 +
<ref>Mocks or the real thing? Tips for better unit testing: https://blog.codecentric.de/en/2017/07/mocks-real-thing-tips-better-unit-testing/</ref>
 +
<ref>Mock yourself, not your tests: https://hernantz.github.io/mock-yourself-not-your-tests.html</ref>
 +
<ref>J.B. Rainsberger - Integrated Tests Are A Scam: https://vimeo.com/80533536</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 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 88: Line 148:
 
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.  
 
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.  
  
* SoapUI: http://soapui.org
+
* SoapUI: http://soapui.org<ref>API Load Testing with cURL and RedLine13: https://www.redline13.com/blog/2019/11/api-load-testing-with-curl-and-redline13/</ref>
 
* Swagger Inspector -- Test & auto-generate OpenAPI documentation for any API: https://inspector.swagger.io/builder | [https://swagger.io/swagger-inspector/ DOCS]
 
* Swagger Inspector -- Test & auto-generate OpenAPI documentation for any API: https://inspector.swagger.io/builder | [https://swagger.io/swagger-inspector/ DOCS]
* Postman: https://www.getpostman.com/<ref>Testing APIs Using Postman: https://dzone.com/articles/testing-apis-using-postman</ref>
+
* Postman: https://www.getpostman.com/<ref>Testing APIs Using Postman: https://dzone.com/articles/testing-apis-using-postman</ref><ref>Postman Tutorial for Beginners with API Testing Example: https://www.guru99.com/postman-tutorial.html</ref>
<ref>Karate framework -- REST API testing made easy!: https://aboullaite.me/karate-framework-rest-testing/</ref>
+
* Karate: https://intuit.github.io/karate/<ref>Karate framework -- REST API testing made easy!: https://aboullaite.me/karate-framework-rest-testing/</ref><ref>Karate Netty -- standalone JAR: https://github.com/intuit/karate/tree/master/karate-netty#standalone-jar</ref>
 +
<ref>10 API Testing Tips for Beginners (SOAP and REST): https://dzone.com/articles/10-api-testing-tips-for-beginners-soap-amp-rest</ref>
  
 
=== Integration ===
 
=== Integration ===
Line 99: 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 109: 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 115: 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>
* '''THE Internet app: https://the-internet.herokuapp.com/''' (comprehensive "generic" Webpage/WebApp functionality for Automated Testing "training/practice")</ref><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>
+
* 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>
 
<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>
 
<ref>Flaky Tests at Google and How We Mitigate Them: https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html</ref>
 
<ref>Flaky Tests at Google and How We Mitigate Them: https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html</ref>
 +
<ref>13 Scary Test Automation Practices: https://www.joecolantonio.com/13-scary-test-automation-practices/</ref>
 +
<ref>Top 10 Reasons (heard from procrastinators/nay-sayers) NOT To Do Automated Testing!: https://bespoken.io/blog/top-10-reasons-not-to-test/</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>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 124: Line 196:
 
* Java - Page Object Pattern: http://www.assertselenium.com/automation-design-practices/page-object-pattern/<ref>Page Object Pattern with TestNG: https://stackoverflow.com/questions/21967914/page-object-pattern-with-testng</ref>
 
* Java - Page Object Pattern: http://www.assertselenium.com/automation-design-practices/page-object-pattern/<ref>Page Object Pattern with TestNG: https://stackoverflow.com/questions/21967914/page-object-pattern-with-testng</ref>
 
* Page Object (by Martin Fowler): https://martinfowler.com/bliki/PageObject.html
 
* Page Object (by Martin Fowler): https://martinfowler.com/bliki/PageObject.html
<ref>PageFactory, Page Objects and locators from an external file: https://rationaleemotions.wordpress.com/2016/06/27/pagefactory-page-objects-and-locators-from-an-external-file/</ref>
+
<ref>'''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/'''</ref>
 
<ref>Page Object Pattern using PageFactory: http://toolsqa.com/selenium-webdriver/page-object-pattern-model-page-factory/</ref>
 
<ref>Page Object Pattern using PageFactory: http://toolsqa.com/selenium-webdriver/page-object-pattern-model-page-factory/</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 +
<ref>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</ref>
  
 
=== System ===
 
=== System ===
Line 139: 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 157: Line 232:
 
* [[wikipedia: Acceptance_testing#User_acceptance_testing]] (UAT)
 
* [[wikipedia: Acceptance_testing#User_acceptance_testing]] (UAT)
 
<ref>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</ref>
 
<ref>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</ref>
 +
<ref>Introduction to Capybara: https://testautomationu.applitools.com/capybara-ruby</ref>
 +
 +
===== Hallway Usability Testing =====
 +
 +
* [[wikipedia: Usability testing]]
 +
* Hallway Usability Tests: http://wall-skills.com/2014/hallway-usability-tests/
 +
* 12 steps to better code: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/ (aka. ''The Joel Test'')<ref>The Joel Test for 2017: https://myers.io/2017/04/04/the-joel-test-for-2017/</ref>
 +
<ref>Hallway Usability Testing, First Fridays Usability Program: https://www.slideshare.net/DigitalGov/hallway-usability-testing-first-fridays-usability-program</ref>
 +
<ref>Take Your UX on a Trial Run With Hallway Testing: https://www.appmakr.com/blog/ux-hallway-testing/</ref>
 +
<ref>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</ref>
 +
<ref>Study.com -- E-Learning course "Usability Testing Methods" - Definition & Hallway Usability: https://study.com/academy/lesson/usability-testing-methods-definition-hallway-usability.html</ref>
 +
<ref>Hallway Usability Testing and why it is important for your Startup: https://cnu.name/hallway-usability-testing/</ref>
 +
<ref>Apple's Usability Guidelines: http://www.apple2scans.net/files/1982-A2F2116-m-a2e-aiiedg.pdf (section on Usability Testing)</ref>
 +
<ref>5 Killer Hallway Usability Testing Tips: https://usabilitylab.walkme.com/5-killer-hallway-usability-testing-tips/</ref>
 +
<ref>10 Tips for Better Hallway Usability Testing: https://digital.gov/2014/02/19/10-tips-for-better-hallway-usability-testing/</ref>
 +
<ref>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)</ref>
 +
<ref>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")</ref>
 +
<ref>Why You Only Need to Test with 5 Users: https://www.nngroup.com/articles/why-you-only-need-to-test-with-5-users/</ref>
 +
 +
==== 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:
 +
# '''CSS & attribute matching''' (i.e. CSS selectors, or, ''img src'')
 +
# '''DOM comparison techniques''' (checking ''isVisible'', ''isClickable'', etc)
 +
# '''Screenshots during UI/E2E Functional Test''' failures & errors (i.e. Selenium, HP TQM, etc)
 +
# '''Screenshots + Open Source [[Image Recognition]]''' libraries (i.e. OpenCV, TensorFlow, etc)
 +
# '''Screenshots + Pixel-to-Pixel Comparison''' & driver tools (i.e. SikuliX, etc)
 +
# '''Screenshots + Cloud AI services''' (like Applitools Eyes, etc)
 +
 +
<ref>What is Visual Testing? A comprehensive explanation: https://applitools.com/blog/visual-testing</ref>
 +
<ref>Automated Visual Testing -- A Fast Path To Test Automation Success: https://testautomationu.applitools.com/automated-visual-testing-a-fast-path-to-test-automation-success/</ref>
 +
<ref>Wrong Tool, Wrong Time -- Re-Thinking Test Automation: https://applitools.com/blog/state-of-visual-testing-research-webinar</ref>
 +
<ref>Easy Parallel Mobile Visual Testing with Appium: https://applitools.com/blog/parallel-visual-testing-with-appium</ref>
 +
<ref>Meeting CI/CD Requirements -- Key Factors in Test Automation We Must Consider: https://applitools.com/blog/ci-requirements | [https://www.youtube.com/watch?v=kvHnD1VzO3cVIDEO]</ref>
 +
<ref>Things to consider when running visual tests in CI/CD pipelines - Getting Started (Part 1): https://jessicadeen.com/getting-started-visual-tests-cd/</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>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 ====
+
==== 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.  
 
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.  
  
 
* [[wikipedia: A/B testing]]
 
* [[wikipedia: A/B testing]]
 +
* '''A/B Testing & Hypothesis Kit: http://www.experimentationhub.com/hypothesis-kit.html''' (brilliant philosophy of "Design like you're right, Test like you're wrong")
 
* Optimizely: https://www.optimizely.com/ | [https://www.optimizely.com/optimization-glossary/ab-testing/ A/B Testing]
 
* Optimizely: https://www.optimizely.com/ | [https://www.optimizely.com/optimization-glossary/ab-testing/ A/B Testing]
* Google Optimize: https://www.google.com/analytics/optimize/<ref>The Beginner’s Guide to Google Optimize: https://conversionxl.com/blog/google-optimize/</ref>
+
* SalesForce - Evergage: https://web.archive.org/web/20190213184913/https://www.evergage.com/ | [https://doc.evergage.com/ DOCS]<ref>[[wikipedia: Evergage]]</ref><ref>Salesforce "Interaction Studio": https://www.salesforce.com/products/marketing-cloud/customer-interaction/ (acquisition & re-branding of "Evergage" personalization service)</ref><ref>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)</ref><ref>How To Get The Most Out Of A/B Testing In Salesforce Marketing Cloud?: http://blog.amogus.com/ab-testing-salesforce-marketing-cloud/</ref><ref>Startup Spotlight - Evergage's Personalization Platform: http://www.enterpriseappstoday.com/crm/startup-spotlight-evergages-personalization-platform.html</ref><ref>Why Salesforce Is Buying Evergage: https://pulse2.com/why-salesforce-is-buying-evergage/</ref><ref>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/</ref>
 +
* Google - Optimize: https://www.google.com/analytics/optimize/<ref>The Beginner’s Guide to Google Optimize: https://conversionxl.com/blog/google-optimize/</ref>
 
* '''Web Analytics Automation Testing Framework (WAAT): https://essenceoftesting.blogspot.ca/2017/10/analytics-forgotten-child.html''' | [https://github.com/anandbagmar/WAAT SRC]<ref>Analytics Testing: https://essenceoftesting.blogspot.ca/2017/03/analytics-testing.html</ref><ref>WAAT 2.0 (BETA) available for use: https://essenceoftesting.blogspot.ca/2016/09/waat-20-beta-available-for-use.html'''</ref>
 
* '''Web Analytics Automation Testing Framework (WAAT): https://essenceoftesting.blogspot.ca/2017/10/analytics-forgotten-child.html''' | [https://github.com/anandbagmar/WAAT SRC]<ref>Analytics Testing: https://essenceoftesting.blogspot.ca/2017/03/analytics-testing.html</ref><ref>WAAT 2.0 (BETA) available for use: https://essenceoftesting.blogspot.ca/2016/09/waat-20-beta-available-for-use.html'''</ref>
* “Test What Matters: Automated Analytics Testing” – by Marcus Merrell
+
* “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>
(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>
 +
* 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>
 +
<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>'''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 178: 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 185: 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 200: 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 ====
  
 
* [[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>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 ===
  
 
Testing for [[Security]] vulnerabilities by Hacking, DDOS'ing, etc.
 
Testing for [[Security]] vulnerabilities by Hacking, DDOS'ing, etc.
  
 
* [[wikipedia: Penetration testing]]
 
* [[wikipedia: Penetration testing]]
 +
* "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>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>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>
 +
 +
 +
==== Physical Penetration Testing ====
 +
 +
* [[wikipedia: Physical access]]
 +
* [[wikipedia: Access_control#Physical_security]]
 +
<ref>'''I'll Let Myself In -- Tactics of Physical Pen Testers: https://www.youtube.com/watch?v=rnmcRTnTNC8''''</ref>
 +
 +
=== Exploratory Testing ===
 +
 +
* [[wikipedia: Exploratory testing]]
 +
<ref>Why test automation is a lot like bubble wrap: https://www.ontestautomation.com/why-test-automation-is-a-lot-like-bubble-wrap/</ref>
 +
<ref>Exploratory Testing explained: https://martinfowler.com/bliki/ExploratoryTesting.html</ref>
 +
<ref>Exploratory Testing - A Detailed Guide: https://dzone.com/articles/exploratory-testing-a-detailed-guide</ref>
 +
<ref>Exploratory Testing (ET) - What, When, Why and How: https://medium.com/xandr-tech/exploratory-testing-et-what-when-why-and-how-a29a879cb20e</ref>
  
 
== QA ==
 
== QA ==
Line 224: 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 248: Line 431:
 
* [[wikipedia: Test-driven_development]]
 
* [[wikipedia: Test-driven_development]]
 
* Test Driven Development (TDD) - Best Practices Using Java Examples: https://technologyconversations.com/2013/12/24/test-driven-development-tdd-best-practices-using-java-examples-2/
 
* Test Driven Development (TDD) - Best Practices Using Java Examples: https://technologyconversations.com/2013/12/24/test-driven-development-tdd-best-practices-using-java-examples-2/
 +
* Test-Driven JavaScript Development: http://www.letscodejavascript.com
 
<ref>TDD .vs. BDD: http://www.developmentthatpays.com/files/DevelopmentThatPays-TDDvsBDD-CheatSheet-1-4.pdf</ref>
 
<ref>TDD .vs. BDD: http://www.developmentthatpays.com/files/DevelopmentThatPays-TDDvsBDD-CheatSheet-1-4.pdf</ref>
 
<ref>Why TDD?: https://builttoadapt.io/why-tdd-489fdcdda05e</ref>
 
<ref>Why TDD?: https://builttoadapt.io/why-tdd-489fdcdda05e</ref>
 
<ref>8 Observations On Test Driven Development: https://medium.com/@solidi/8-observations-on-test-driven-development-a9b5144f868</ref>
 
<ref>8 Observations On Test Driven Development: https://medium.com/@solidi/8-observations-on-test-driven-development-a9b5144f868</ref>
 +
<ref>A comparison of "assertion" libraries: https://blog.frankel.ch/comparison-assertion-libraries/</ref>
 +
<ref>Test-Driven Development -- Really, It’s a Design Technique: https://www.infoq.com/articles/test-driven-design-java</ref>
 +
<ref>Unit testing & TDD concepts with best practice guidelines: https://www.slideshare.net/tamanm/unit-testing-tdd-concepts-with-best-practice-guidelines</ref>
 +
<ref>Why TDD: https://builttoadapt.io/why-tdd-489fdcdda05e</ref>
 +
<ref>Test-Driven Development - Really, It’s a Design Technique: https://www.infoq.com/articles/test-driven-design-java</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>How TDD Can Prevent Over-Engineering (on the front-end too): https://itnext.io/how-tdd-can-prevent-over-engineering-1265a02f8863</ref>
 +
 +
===== 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".
 +
 +
* [[wikipedia: Acceptance test–driven development]]
 +
* Acceptance Test Driven Development (ATDD): https://www.agilealliance.org/glossary/atdd
 +
* ATDD From the Trenches  -- Getting started with Acceptance-Test Driven Development: https://www.infoq.com/articles/atdd-from-the-trenches
  
 
==== BDD ====
 
==== BDD ====
Line 272: Line 472:
 
<ref>BDD: https://www.agilealliance.org/glossary/bdd/</ref>
 
<ref>BDD: https://www.agilealliance.org/glossary/bdd/</ref>
 
<ref>Behavior Driven Development (SLIDES): https://www.slideshare.net/marakana/behavior-driven-development-11222326</ref>
 
<ref>Behavior Driven Development (SLIDES): https://www.slideshare.net/marakana/behavior-driven-development-11222326</ref>
<ref>BDD Using Cucumber JVM and Groovy (PRESENTATION): https://www.infoq.com/presentations/bdd-cucumber-groovy</ref>
 
<ref>Selenium Integration with Cucumber BDD Tool : https://www.youtube.com/watch?v=Vv7hHrVX_Zg</ref>
 
 
<ref>Test-Driven Development (TDD) .vs. Behaviour-Driven Development (BDD): https://businessanalystlearnings.com/technology-matters/2014/8/13/test-driven-vs-behaviour-driven-development</ref>
 
<ref>Test-Driven Development (TDD) .vs. Behaviour-Driven Development (BDD): https://businessanalystlearnings.com/technology-matters/2014/8/13/test-driven-vs-behaviour-driven-development</ref>
 
<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
 
<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>
 +
<ref>BDD Using Cucumber JVM and Groovy (PRESENTATION): https://www.infoq.com/presentations/bdd-cucumber-groovy</ref>
 +
<ref>Selenium Integration with Cucumber BDD tool: https://www.youtube.com/watch?v=Vv7hHrVX_Zg</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>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>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>
 +
 +
 +
===== 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.
 +
 +
* [[wikipedia: Data-driven testing]] (DDT)
  
 
=== Code Coverage ===
 
=== Code Coverage ===
Line 291: Line 528:
 
* Is Code Coverage Important?: http://java.dzone.com/articles/is-code-coverage-important<ref>Is 100% Code Coverage Possible?: http://java.dzone.com/articles/100-code-coverage-possible</ref>
 
* Is Code Coverage Important?: http://java.dzone.com/articles/is-code-coverage-important<ref>Is 100% Code Coverage Possible?: http://java.dzone.com/articles/100-code-coverage-possible</ref>
 
<ref>An Introduction to Code Coverage: https://dzone.com/articles/an-introduction-to-code-coverage</ref>
 
<ref>An Introduction to Code Coverage: https://dzone.com/articles/an-introduction-to-code-coverage</ref>
 +
* Java & Groovy -- Code Coverage: https://www.atlassian.com/software/clover | [https://www.atlassian.com/software/clover/download-archives DOWNLOAD] | [https://bitbucket.org/atlassian/clover/src/default/ SOURCE]<ref>Atlassian Clover is now open source: https://www.atlassian.com/blog/announcements/atlassian-clover-open-source</ref>
 +
* Istanbul - JS Code Coverage reports: https://istanbul.js.org | [https://www.npmjs.com/package/istanbul-reports DOWNLOAD] | [https://github.com/istanbuljs/istanbuljs SRC] (JavaScript test coverage made simple)
 +
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>JUnit team on "Unit Testing theories": https://github.com/junit-team/junit4/wiki/Theories</ref>
 +
<ref>Reporting Code Coverage Using Maven and JaCoCo Plugin : https://dzone.com/articles/reporting-code-coverage-using-maven-and-jacoco-plu</ref>
  
 
=== Code Review ===
 
=== Code Review ===
Line 297: 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>
* The Code Review -- The Most Important Developer Practice: https://dzone.com/articles/the-most-important-developer-practice
 
* 11 Best Practices for Peer Code Review: http://support.smartbear.com/support/media/resources/cc/11_Best_Practices_for_Peer_Code_Review.pdf
 
 
* Code Review tips: https://github.com/ryanmcdermott/code-review-tips#basics
 
* Code Review tips: https://github.com/ryanmcdermott/code-review-tips#basics
 +
* 11 Best Practices for Peer Code Review: http://support.smartbear.com/support/media/resources/cc/11_Best_Practices_for_Peer_Code_Review.pdf
 
<ref>'''Code Reviews -- A Framework for Startups: https://summify.wordpress.com/2011/09/21/code-reviews-a-framework-for-startups/'''</ref>
 
<ref>'''Code Reviews -- A Framework for Startups: https://summify.wordpress.com/2011/09/21/code-reviews-a-framework-for-startups/'''</ref>
 
<ref>The only valid measure of "Code Quality" - Daily WTFs or WTFs/min: http://www.osnews.com/story/19266/WTFs_m</ref>
 
<ref>The only valid measure of "Code Quality" - Daily WTFs or WTFs/min: http://www.osnews.com/story/19266/WTFs_m</ref>
Line 313: Line 557:
 
<ref>Unlearning toxic behaviors in a code review culture: https://medium.freecodecamp.org/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c</ref>
 
<ref>Unlearning toxic behaviors in a code review culture: https://medium.freecodecamp.org/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c</ref>
 
<ref>The Rule of Three (and code re-use .vs. refactoring for more reusability): https://blog.codinghorror.com/rule-of-three/</ref>
 
<ref>The Rule of Three (and code re-use .vs. refactoring for more reusability): https://blog.codinghorror.com/rule-of-three/</ref>
 +
<ref>10  Code Commit Best Practices for Streamlined Development: https://www.perforce.com/blog/vcs/10-code-commit-best-practices-streamlined-development</ref>
 +
<ref>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</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>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 - Making a Pull Request: https://www.atlassian.com/git/tutorials/making-a-pull-request</ref>
 +
<ref>Atlassian - Pull requests and code review: https://confluence.atlassian.com/bitbucket/work-with-pull-requests-223220593.html</ref>
 +
<ref>Atlassian - Creating Optimal Reviews: https://www.atlassian.com/blog/archives/creating_optimal_reviews</ref>
 +
<ref>Atlassian - 5 tips for great Code Review:https://www.atlassian.com/blog/software-teams/5-tips-great-code-reviews</ref>
 +
<ref>Atlassian - Why Code Reviews matter and actually save time: https://www.atlassian.com/agile/software-development/code-reviews</ref>
 +
<ref>BitBucket team - Learn about code review in Bitbucket Cloud: https://www.atlassian.com/git/tutorials/learn-about-code-review-in-bitbucket-cloud</ref>
 +
<ref>Awesome Code Review list of lists: https://github.com/joho/awesome-code-review</ref>
 +
<ref>The Pull Request 10 Commandments: https://medium.com/@dsteplight/the-10-pull-request-commandments-d512b8c881bc</ref>
 +
<ref>Code Review best practices: https://medium.com/palantir/code-review-best-practices-19e02780015f</ref>
 +
<ref>Pull Request Etiquette: https://gist.github.com/mikepea/863f63d6e37281e329f8</ref>
 +
<ref>10 tips for better Pull Requests: http://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/</ref>
 +
<ref>The art of Pull Requests: https://hackernoon.com/the-art-of-pull-requests-6f0f099850f9</ref>
 +
<ref>Code Review Guidelines: https://blog.philipphauer.de/code-review-guidelines/</ref>
 +
<ref>Code Review Best Practices: https://www.kevinlondon.com/2015/05/05/code-review-best-practices.html</ref>
 +
<ref>Best practices for peer Code Review: https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/</ref>
 +
<ref>Keeping Peer Code Review An Agile Process: https://smartbear.com/blog/develop/peer-code-review-an-agile-process/</ref>
 +
<ref>Crash Course in Lightweight Code Review: http://www.drdobbs.com/architecture-and-design/crash-course-in-lightweight-code-review/215800147</ref>
 +
<ref>Getting the Absolute Most Out of Your Peer Review Data: https://smartbear.com/blog/collaborate/getting-the-absolute-most-out-of-your-peer-review/</ref>
 +
<ref>Calculate Your ROI on Code Reviews: https://smartbear.com/product/collaborator/roi-calculator/</ref>
 +
<ref>Metrics for Gerrit code reviews: http://www.sis.uta.fi/~tp54752/pub/gerrit/gerrit-codereviews.pdf</ref>
 +
<ref>Code Review for Real People: https://hackernoon.com/code-review-for-real-people-261e3d9124ba</ref>
 +
<ref>How to Do Code Reviews Like a Human Pt1: https://mtlynch.io/human-code-reviews-1/</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>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>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 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>
  
  
==== Static Code Analysis ====
+
==== Software Composition Analysis ====
  
* [[wikipedia: List_of_tools_for_static_code_analysis#Java]]
+
 
 +
===== Static Code Analysis =====
 +
 
 +
'''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'''
 +
LESS linting
 +
stylelint "/apps/alc/clientlibs/**/*.less"
 +
stylelint "/apps/alc/components/**/*.less"
 +
stylelint "/apps/proline/clientlibs/**/*.less"
 +
stylelint "/apps/proline/components/**/*.less"
 +
<ref>LESS linting: https://stylelint.io/user-guide/cli/</ref>
 +
 
 +
 
 +
LESS-to-CSS compilation
 +
find . -name "*.less" -print0 | xargs -0 lessc
 +
test:lint
 +
autoless --source-map files www
 +
 
 +
CSS combination
 +
cat *.css > main.css
 +
<ref>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</ref>
 +
 
 +
 
 +
JS linting
 +
find . -name "*.js" -print0 | xargs -0 jslint
 +
 
 +
JS combination
 +
cat *.js > main.js
 +
<ref>JSlint with multiple files: https://stackoverflow.com/questions/7628009/jslint-with-multiple-files</ref>
 +
 
 +
'''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
 +
 
 +
<ref>Minify Javascript and CSS with YUI Compressor: https://electrictoolbox.com/minify-javascript-css-yui-compressor/</ref>
 +
 
 +
Node.JS Unit Testing (optional... WIP)
 +
npm-run-all test:*
 +
 
 +
 
 +
* [[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)
 
* 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>
 
* FindBugs: http://findbugs.sourceforge.net | [http://findbugs.sourceforge.net/manual/running.html DOCS - CLI]<ref>'''Apache Maven plugin - FindBugs: https://gleclaire.github.io/findbugs-maven-plugin/usage.html'''</ref><ref>Tutorial on using FindBugs with Maven: https://gualtierotesta.wordpress.com/2015/06/14/tutorial-using-findbugs-with-maven/</ref><ref>FindBugs Maven Plugin Tutorial: https://www.petrikainulainen.net/programming/maven/findbugs-maven-plugin-tutorial/</ref>
 
* FindBugs: http://findbugs.sourceforge.net | [http://findbugs.sourceforge.net/manual/running.html DOCS - CLI]<ref>'''Apache Maven plugin - FindBugs: https://gleclaire.github.io/findbugs-maven-plugin/usage.html'''</ref><ref>Tutorial on using FindBugs with Maven: https://gualtierotesta.wordpress.com/2015/06/14/tutorial-using-findbugs-with-maven/</ref><ref>FindBugs Maven Plugin Tutorial: https://www.petrikainulainen.net/programming/maven/findbugs-maven-plugin-tutorial/</ref>
 
* Checkstyle: http://checkstyle.sourceforge.net/ | [http://checkstyle.sourceforge.net/cmdline.html DOCS - CLI]<ref>'''Apache Maven plugin - Checkstyle: http://maven.apache.org/plugins/maven-checkstyle-plugin/'''</ref><ref>Checkstyle vs PMD vs Findbugs: http://continuousdev.com/2015/08/checkstyle-vs-pmd-vs-findbugs/</ref><ref>Using the Checkstyle, PMD, and FindBugs Reports: https://www.safaribooksonline.com/library/view/jenkins-the-definitive/9781449311155/ch09s05.html</ref>
 
* Checkstyle: http://checkstyle.sourceforge.net/ | [http://checkstyle.sourceforge.net/cmdline.html DOCS - CLI]<ref>'''Apache Maven plugin - Checkstyle: http://maven.apache.org/plugins/maven-checkstyle-plugin/'''</ref><ref>Checkstyle vs PMD vs Findbugs: http://continuousdev.com/2015/08/checkstyle-vs-pmd-vs-findbugs/</ref><ref>Using the Checkstyle, PMD, and FindBugs Reports: https://www.safaribooksonline.com/library/view/jenkins-the-definitive/9781449311155/ch09s05.html</ref>
* JS lint: http://jslint.com<ref>The Ultimate List of 38 JavaScript Tools: https://hackernoon.com/the-ultimate-list-of-javascript-tools-e0a5351b98e3</ref>
+
* JS lint: http://jslint.com<ref>The Ultimate List of 38 JavaScript Tools: https://hackernoon.com/the-ultimate-list-of-javascript-tools-e0a5351b98e3</ref><ref>'''JSLint with multiple files: https://stackoverflow.com/questions/7628009/jslint-with-multiple-files'''</ref>
 
* JavaScript Lint: http://www.javascriptlint.com (different from the original JSlint)
 
* JavaScript Lint: http://www.javascriptlint.com (different from the original JSlint)
 
* JShint: http://jshint.com
 
* JShint: http://jshint.com
* ESlint: https://eslint.org
+
* ESlint: https://eslint.org<ref>These tools will help you write clean (frontend) code:https://medium.freecodecamp.org/these-tools-will-help-you-write-clean-code-da4b5401f68e</ref>
 
* CSS lint: http://csslint.net
 
* CSS lint: http://csslint.net
* Stylelint: https://stylelint.io
+
* Stylelint: https://stylelint.io<ref>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</ref><ref>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</ref><ref>"lessc": https://lesscss.org</ref>
 +
* CSS comb: http://csscomb.com | [http://csscomb.com/online DEMO]
 
* Prettier: https://prettier.io/ (an opinionated code formatter that supports many languages & integrates with most editors that automatically refactors whitespace/linebreaks/syntax rather than just making suggestions)
 
* Prettier: https://prettier.io/ (an opinionated code formatter that supports many languages & integrates with most editors that automatically refactors whitespace/linebreaks/syntax rather than just making suggestions)
 +
* 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
 +
* 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 335: 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>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>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>
 +
 +
==== Refactoring ====
 +
 +
* [[wikipedia: Code refactoring]]
 +
* 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/
 +
<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 =====
 +
 +
* '''Codemod: https://github.com/facebook/codemod''' | [https://github.com/reactjs/react-codemod React plugin] ([[Python]]-based [[OSS]] tool/lib developed at Facebook, intended to assist on large-scale codebase refactors that can be partially automated but still require human oversight and occasional intervention)<ref>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)</ref><ref>Christoph Nakazawa -- Evolving Complex Systems Incrementally: https://www.youtube.com/watch?v=d0pOgY8__JM</ref><ref>Codemod - Refactoring Code Programmatically - Interview with Ramana Venkata: https://survivejs.com/blog/codemod-interview/</ref><ref>Building The Facebook News Feed With Relay: https://reactjs.org/blog/2015/03/19/building-the-facebook-news-feed-with-relay.html</ref><ref>Refactor Code in Your Lunch Break - Getting Started with Codemods: https://www.sitepoint.com/getting-started-with-codemods/</ref>
 +
* JS Codeshift: https://github.com/facebook/jscodeshift ([[OSS]] tool/lib also developed at Facebook, provides an additional layer on top of Codemod to expose all operations via NodeJS over CLI, focused on JavaScript & TypeScript application source)<ref>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'')</ref><ref>'''React Higher Order Components in depth: https://medium.com/@franleplant/react-higher-order-components-in-depth-cf9032ee6c3e'''</ref><ref>A gentle Introduction to React's Higher Order Components: https://www.robinwieruch.de/gentle-introduction-higher-order-components/</ref>
 +
 +
== WebDriver ==
 +
 +
* WebDriver spec: https://w3c.github.io/webdriver/
 +
<ref>The state of test automation -- 7 key trends to watch: https://techbeacon.com/state-test-automation-7-key-trends-watch</ref>
 +
<ref>A JSON configuration file that can be used to spawn a webdriver node: https://gist.github.com/krmahadevan/1106418</ref>
 +
<ref>Using Selenium with Headless Firefox (on Windows): https://intoli.com/blog/running-selenium-with-headless-firefox/</ref>
 +
<ref>Setting up Grid2 and working with it!: https://rationaleemotions.wordpress.com/2012/01/23/setting-up-grid2-and-working-with-it/</ref>
 +
<ref>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</ref>
 +
<ref>Headless Execution of Selenium Tests in Jenkins: https://www.blazemeter.com/blog/headless-execution-selenium-tests-jenkins</ref>
 +
<ref>Proposal #1 -- Add Switch to Shadow DOM command (WebDriver): https://github.com/w3c/webdriver/pull/1320</ref>
 +
<ref>Proposal #2 -- Shadow DOM support in WebDriver: https://github.com/w3c/webdriver/issues/350</ref>
  
 
== Debugging ==
 
== Debugging ==
Line 342: Line 760:
 
* OllyDbgG: http://www.ollydbg.de/ (native x86 app debugger)
 
* OllyDbgG: http://www.ollydbg.de/ (native x86 app debugger)
 
* IDA: https://www.hex-rays.com/products/ida/ (Windows, Linux or Mac OS X hosted multi-processor disassembler and debugger)
 
* IDA: https://www.hex-rays.com/products/ida/ (Windows, Linux or Mac OS X hosted multi-processor disassembler and debugger)
 +
<ref>'''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'''</ref>
 +
<ref>Colorful Console Message: https://medium.com/@samanthaming/colorful-console-message-2e8203786838</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>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>
 +
 +
 +
=== Root Cause Analysis ===
  
 +
* The 7 Key Components of True Root Cause Analysis: https://blog.overops.com/the-7-key-components-of-true-root-cause-analysis
  
 
== Tools ==
 
== Tools ==
Line 358: 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>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 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 ====
  
* Appium: http://appium.io/ (Mobile App emulation/testing)
+
* Appium: http://appium.io/ (Mobile App emulation/testing) | [https://github.com/appium/appium-xcuitest-driver iOS] | [https://github.com/appium/appium-android-driver Android]
<ref>Automating Mobile Apps with Appium and RSpec: https://medium.com/@javondavis/automating-mobile-apps-with-appium-and-rspec-540fd49758e1</ref>
+
* Appium Doctor: https://github.com/appium/appium-doctor (tool to verify appium installation)<ref>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</ref>
 +
* Appium Studio: https://experitest.com/mobile-test-automation/appium-studio/<ref>Appium Studio tutorial: https://www.toolsqa.com/appium-studio-tutorial/</ref><ref>Appium Studio Tutorial -- All You Need To Know: https://www.edureka.co/blog/appium-studio-tutorial/</ref>
 +
* How to install Appium on Windows with required tools (appium-doctor):
 +
* How to Install Appium on Mac OS with Required Tools (appium-doctor, 2019 Update): https://www.swtestacademy.com/how-to-install-appium-on-mac/
 +
<ref>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/</ref>
 +
<ref>First time Appium configuration and basic test tutorial (PLAYLIST): https://www.youtube.com/playlist?list=PLhW3qG5bs-L8npSSZD6aWdYFQ96OEduhk</ref>
 +
<ref>Appium tutorials: https://www.toolsqa.com/mobile-automation/appium/appium-tutorial/</ref>
 +
<ref>Mobile Testing - Appium Framework: https://www.tutorialspoint.com/mobile_testing/mobile_testing_appium_framework.htm</ref>
 +
<ref>Complete Ultimate Appium tutorial for beginners: https://learn-automation.com/appium-tutorial-for-beginners/</ref>
 +
<ref>Step-by-Step Appium tutorial for beginners: http://www.automationtestinghub.com/appium-tutorial/</ref>
 +
<ref>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/</ref>
 +
<ref>Appium basics overview: https://www.edureka.co/blog/appium-tutorial/</ref>
 +
<ref>An Introduction to Appium (in Python): https://code.tutsplus.com/tutorials/an-introduction-to-appium--cms-23861 | [https://github.com/tutsplus/Appium-Introduction SRC]</ref>
 +
<ref>Automating Mobile Apps with Appium & RSpec (in Ruby): https://medium.com/@javondavis/automating-mobile-apps-with-appium-and-rspec-540fd49758e1</ref>
 +
<ref>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/</ref>
 +
<ref>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</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
 +
<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>
  
 +
* Understanding Desired Capabilities: https://nishantverma.gitbooks.io/appium-for-android/understanding_desired_capabilities.html
 +
<ref>How to find Elements in Appium using UiAutomatorViewer tool?: https://www.inviul.com/find-elements-uiautomatoviewer/</ref>
 +
<ref>UI Testing with Espresso: https://github.com/codepath/android_guides/wiki/UI-Testing-with-Espresso</ref>
  
 +
* '''Appium (BOOK): https://info.kobiton.com/hubfs/Appium%20Book/Appium%20Book-v0.9.1.pdf'''
 +
<ref>Appium server arguments: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md</ref>
 +
<ref>Appium XCUITest Driver Real Device Setup: http://appium.io/docs/en/drivers/ios-xcuitest-real-devices/</ref>
 +
<ref>Appium Test on Real IOS Device: https://www.toolsqa.com/mobile-automation/appium/appium-test-on-real-ios-device/</ref>
 +
<ref>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</ref>
 +
<ref>Android Testing -- UIAutomator vs Espresso: https://stackoverflow.com/questions/31076228/android-testing-uiautomator-vs-espresso</ref>
 +
<ref>UIAutomation Vs XCUITest: https://journeyofquality.wordpress.com/category/uiautomation-vs-xcuitest/</ref>
 +
<ref>Espresso Driver for Android: https://appium.io/docs/en/drivers/android-espresso/</ref>
 +
<ref>BrowserStack --  App Automate - Appium + JUnit: https://www.browserstack.com/app-automate/appium-junit</ref>
 +
<ref>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</ref>
 +
<ref>How to test drive a main method: https://rkennke.wordpress.com/2012/04/12/how-to-test-drive-a-main-method/</ref>
 +
<ref>Build & Run Xcode Project: https://www.toolsqa.com/mobile-automation/appium/build-run-xcode-project/</ref>
 +
<ref>APPIUM Tutorial for Android & iOS Mobile Apps Testing: https://www.guru99.com/introduction-to-appium.html</ref>
 +
<ref>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/</ref>
 +
<ref>How to run Appium Parallel Execution using TestNG: https://www.toolsqa.com/mobile-automation/appium/appium-parallel-execution-using-testng/</ref>
 +
<ref>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</ref>
 +
<ref>Exception with "com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet" with Android + Appium: https://stackoverflow.com/questions/47652619/com-google-common-collect-immutablesortedset-toimmutablesortedset</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>Appium docs -- How To Troubleshoot Activities Startup: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md</ref>
 +
<ref>Appium docs -- Automating mobile web apps: https://appium.io/docs/en/writing-running-appium/web/mobile-web/</ref>
 +
<ref>Espresso vs UiAutomator2 with Appium: https://journeyofquality.wordpress.com/2018/05/29/espresso-vs-uiautomator2-in-appium/ (good FluentWait examples)</ref>
 +
<ref>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'')</ref>
 +
<ref>How to submit searching field with android keyboard?: https://stackoverflow.com/questions/26053663/how-to-submit-searching-field-with-android-keyboard</ref>
 +
<ref>How to dismiss the keyboard in appium using Java?: https://stackoverflow.com/questions/23220067/how-to-dismiss-the-keyboard-in-appium-using-java</ref>
 +
<ref>Appium android button click not working?: https://stackoverflow.com/questions/38239351/appium-android-button-click-not-working</ref>
 +
<ref>Appium -- Problem with button element: https://discuss.appium.io/t/problem-with-button-element/1376</ref>
 +
<ref>How to solve the org.openqa.selenium.NoSuchElementException: https://stackoverflow.com/questions/4601296/how-to-solve-the-org-openqa-selenium-nosuchelementexception</ref>
 +
<ref>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</ref>
 +
<ref>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/</ref>
 +
<ref>org.openqa.selenium.NoSuchElementException: no such element: https://stackoverflow.com/questions/20046783/org-openqa-selenium-nosuchelementexception-no-such-element</ref>
 +
<ref>Appium Mobile Actions -- Swipe | Tap | MultiTouch | Press: https://www.swtestacademy.com/appium-mobile-actions-swipe-tap-press/</ref>
 +
<ref>Appium Parallel Testing -- Parallel Mobile Device Farm: https://www.swtestacademy.com/appium-parallel-tests/</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>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 ====
 +
 +
* End-to-End Testing Web Apps -- The Painless Way: https://mtlynch.io/painless-web-app-testing/
  
 
=== Test Management ===
 
=== Test Management ===
Line 382: Line 878:
 
* RemoteLaunch® -- Automated Testing (DOCS): https://www.inflectra.com/Documents/SpiraTest-Team RemoteLaunch Automated Testing User Guide.pdf<ref>'''Running Selenium WebDriver Scripts using RemoteLaunch and JUnit: http://www.inflectra.com/Support/KnowledgeBase/KB140.aspx'''</ref><ref>'''Running Selenium WebDriver Scripts using RemoteLaunch and TestNG: https://www.inflectra.com/Support/KnowledgeBase/KB148.aspx''' (with exact comman-line run command example)</ref><ref>'''Running Selenium IDE Scripts using RemoteLaunch: http://www.inflectra.com/Support/KnowledgeBase/KB108.aspx'''</ref><ref>Does the SpiraTest JUnit integration library support parameterized tests?: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/1213.aspx (not without custom modifications)</ref>
 
* RemoteLaunch® -- Automated Testing (DOCS): https://www.inflectra.com/Documents/SpiraTest-Team RemoteLaunch Automated Testing User Guide.pdf<ref>'''Running Selenium WebDriver Scripts using RemoteLaunch and JUnit: http://www.inflectra.com/Support/KnowledgeBase/KB140.aspx'''</ref><ref>'''Running Selenium WebDriver Scripts using RemoteLaunch and TestNG: https://www.inflectra.com/Support/KnowledgeBase/KB148.aspx''' (with exact comman-line run command example)</ref><ref>'''Running Selenium IDE Scripts using RemoteLaunch: http://www.inflectra.com/Support/KnowledgeBase/KB108.aspx'''</ref><ref>Does the SpiraTest JUnit integration library support parameterized tests?: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/1213.aspx (not without custom modifications)</ref>
 
* SpiraTest/Team -- CI Build Server Integration Guide: https://www.inflectra.com/Documents/SpiraTestPlanTeam-Build-Server-Integration-Guide.pdf | [https://www.inflectra.com/SpiraTest/Downloads.aspx#BuildServers ADD-ONS]<ref>Jenkins plugin: https://www.inflectra.com/Support/Forum/spirateam/issues-questions/1014.aspx (Jenkins integration to SpiraTest/Team requires SpiraTest/Team v4.0+)</ref><ref>SpiraTest Jenkins Integration: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/656.aspx</ref><ref>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</ref>
 
* SpiraTest/Team -- CI Build Server Integration Guide: https://www.inflectra.com/Documents/SpiraTestPlanTeam-Build-Server-Integration-Guide.pdf | [https://www.inflectra.com/SpiraTest/Downloads.aspx#BuildServers ADD-ONS]<ref>Jenkins plugin: https://www.inflectra.com/Support/Forum/spirateam/issues-questions/1014.aspx (Jenkins integration to SpiraTest/Team requires SpiraTest/Team v4.0+)</ref><ref>SpiraTest Jenkins Integration: https://www.inflectra.com/Support/Forum/spiratest/issues-questions/656.aspx</ref><ref>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</ref>
 +
<ref>How Do You Pronounce Spira and Rapise?: http://www.inflectra.com/Ideas/Entry/how-do-you-pronounce-spira-and-rapise-720.aspx</ref>
  
 
=== Simulators/Emulators ===
 
=== Simulators/Emulators ===
Line 396: 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 403: Line 901:
 
* '''Running soapUI Unit Tests in Hudson/Jenkins: http://blogs.sap.com/2010/12/07/running-soapui-unit-tests-in-hudson/''' (Test Automation / Continuous Testing - OPTION #1 -- use [Maven SoapUI Plugin])
 
* '''Running soapUI Unit Tests in Hudson/Jenkins: http://blogs.sap.com/2010/12/07/running-soapui-unit-tests-in-hudson/''' (Test Automation / Continuous Testing - OPTION #1 -- use [Maven SoapUI Plugin])
 
* Functional/headless testing via SOAP UI (for running from CLI, CI build/test server, automatically on system login, etc): https://www.soapui.org/test-automation/running-from-command-line/functional-tests.html
 
* Functional/headless testing via SOAP UI (for running from CLI, CI build/test server, automatically on system login, etc): https://www.soapui.org/test-automation/running-from-command-line/functional-tests.html
 +
* Running SoapUI functional tests: https://www.soapui.org/test-automation/running-functional-tests.html
 
* Automating SoapUI test runs with Command Line Execution: https://support.smartbear.com/readyapi/docs/soapui/running/automating/cli.html
 
* Automating SoapUI test runs with Command Line Execution: https://support.smartbear.com/readyapi/docs/soapui/running/automating/cli.html
 
<ref>SoapUI Command Line Execution: https://testarenablog.wordpress.com/2016/08/13/soapui-command-line-execution/</ref>
 
<ref>SoapUI Command Line Execution: https://testarenablog.wordpress.com/2016/08/13/soapui-command-line-execution/</ref>
Line 420: Line 919:
 
<ref>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/</ref>
 
<ref>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/</ref>
 
<ref>API Testing With Cucumber (BDD) based jUnit tests - Configuration Tips: https://dzone.com/articles/api-testing-with-cucumber-bdd-configuration-tips</ref>
 
<ref>API Testing With Cucumber (BDD) based jUnit tests - Configuration Tips: https://dzone.com/articles/api-testing-with-cucumber-bdd-configuration-tips</ref>
<ref>SoapUI 101 -- Beginner’s Guide to API Testing: https://smartbear.com/SmartBear/media/ebooks/SoapUI-101-Beginners-Guide-to-API-Testing.pdf</ref>
+
<ref>'''SoapUI 101 -- Beginner’s Guide to API Testing: https://smartbear.com/SmartBear/media/ebooks/SoapUI-101-Beginners-Guide-to-API-Testing.pdf'''</ref>
 +
<ref>SoapUI resources: https://www.soapui.org/resources.html</ref>
 
<ref>'''SoapUI in-depth overview: http://www.testmanagement.com/blog/2016/03/module-4-executing-our-rest-api-tests'''</ref>
 
<ref>'''SoapUI in-depth overview: http://www.testmanagement.com/blog/2016/03/module-4-executing-our-rest-api-tests'''</ref>
 +
<ref>Accelerating Your Delivery Pipeline with ReadyAPI & Jenkins: https://smartbear.com/resources/webinars/accelerate-delivery-pipeline-jenkins/</ref>
 +
<ref>Adding More APIs to Existing Projects: https://support.smartbear.com/readyapi/docs/projects/add.html</ref>
 +
<ref>Updating APIs: https://support.smartbear.com/readyapi/docs/projects/update/update.html</ref>
 +
<ref>SOAPUI - UPLOADING A FILE: https://community.smartbear.com/t5/SoapUI-Open-Source/SOAPUI-UPLOADING-A-FILE/td-p/4811</ref>
 +
<ref>How to test FileUpload using SOAP UI: https://stackoverflow.com/questions/4051816/how-to-test-fileupload-using-soap-ui</ref>
 +
<ref>SOAP Attachments and Files: https://www.soapui.org/docs/soap-and-wsdl/attachments.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>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/
 +
<ref>HTTP Recording Overview: https://www.soapui.org/http-recording/http-recording.html</ref>
 +
<ref>How to Write Basic Groovy Script in SoapUI (OSS version): https://www.softwaretestinghelp.com/soapui-tutorial-6-write-groovy-script-in-soapui/</ref>
 +
<ref>Scripting and the Script Library: https://www.soapui.org/scripting-properties/scripting-and-the-script-library.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 432: Line 956:
 
=== Language-Specific ===
 
=== Language-Specific ===
  
==== AJAX ====
+
* Open Source Robotic Process Automation (OpenRPA): https://openrpa.openrpa.dk
 +
 
 +
==== JavaScript & AJAX ====
  
 
* Jasmine: http://pivotal.github.com/jasmine/ (behavior-driven development framework for testing JavaScript code)<ref>Testing Your JavaScript with Jasmine: http://net.tutsplus.com/tutorials/javascript-ajax/testing-your-javascript-with-jasmine/</ref><ref>Unit test JavaScript applications with Jasmine: http://www.adobe.com/devnet/html5/articles/unit-test-javascript-applications-with-jasmine.html</ref><ref>Jasmine and jQuery: http://a-developer-life.blogspot.ca/2011/05/jasmine-part-1-unit-testing-javascript.html</ref>
 
* Jasmine: http://pivotal.github.com/jasmine/ (behavior-driven development framework for testing JavaScript code)<ref>Testing Your JavaScript with Jasmine: http://net.tutsplus.com/tutorials/javascript-ajax/testing-your-javascript-with-jasmine/</ref><ref>Unit test JavaScript applications with Jasmine: http://www.adobe.com/devnet/html5/articles/unit-test-javascript-applications-with-jasmine.html</ref><ref>Jasmine and jQuery: http://a-developer-life.blogspot.ca/2011/05/jasmine-part-1-unit-testing-javascript.html</ref>
 +
* Test-Driven Development in React.js -- Unit Testing with Enzyme & Jest: https://www.toptal.com/react/tdd-react-unit-testing-enzyme-jest
 +
* React Testing Library: https://github.com/kentcdodds/react-testing-library (an alternative to using the Mochai/Chai or Jest/Enzyme stacks)
 +
<ref>'''Kent Dodds -- Write tests, Not too many, Mostly integration: https://kentcdodds.com/blog/write-tests'''</ref>
 +
<ref>Unit Test React Components: https://www.codeblocq.com/2016/03/Unit-Test-React-Components/</ref>
 +
<ref>Check out these beginner-friendly unit testing patterns for React: https://medium.freecodecamp.org/unit-testing-patterns-for-react-720a8275873b</ref>
 +
<ref>What Is React Testing Library?: https://www.youtube.com/watch?v=JKOwJUM4_RM</ref>
 +
<ref>Unit-testing React code: https://medium.com/@baphemot/unite-testing-react-code-88651801f16b</ref>
 +
<ref>How to -- Unit Testing React Components: https://medium.com/writing-objects/how-to-unit-testing-react-components-3cc4e88327ae</ref>
  
 
===== Selenium =====
 
===== Selenium =====
Line 440: Line 974:
 
* '''Selenium -- Web Application: http://seleniumhq.org/''' | [https://github.com/SeleniumHQ/selenium PROJECT] | [https://sourceforge.net/projects/portableapps/files/Mozilla%20Firefox,%20Portable%20Ed./Mozilla%20Firefox,%20Portable%20Edition%2050.0.2/FirefoxPortable_50.0.2_English.paf.exe/download?use_mirror=gigenet FF 50.x "Portable App"] (Selenium is a platform consisting of language-agnostic automated test suites, plus a Firefox IDE/plugin for recording interactions as test cases then exporting to your programming language of choice: Java/C#/Python/NodeJS, other converters exist too)<ref>Selenium Project WebDriver Test Results: https://webdriver-herald.herokuapp.com</ref>
 
* '''Selenium -- Web Application: http://seleniumhq.org/''' | [https://github.com/SeleniumHQ/selenium PROJECT] | [https://sourceforge.net/projects/portableapps/files/Mozilla%20Firefox,%20Portable%20Ed./Mozilla%20Firefox,%20Portable%20Edition%2050.0.2/FirefoxPortable_50.0.2_English.paf.exe/download?use_mirror=gigenet FF 50.x "Portable App"] (Selenium is a platform consisting of language-agnostic automated test suites, plus a Firefox IDE/plugin for recording interactions as test cases then exporting to your programming language of choice: Java/C#/Python/NodeJS, other converters exist too)<ref>Selenium Project WebDriver Test Results: https://webdriver-herald.herokuapp.com</ref>
 
* 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>
+
* '''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>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>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>
  
<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>
+
* NodeJS Selenium: https://www.npmjs.com/package/selenium-standalone | [https://www.npmjs.com/package/selenium-webdriver WEB DRIVER]
<ref>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</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>
<ref>'''Adding Executables to your PATH: https://seleniumhq.github.io/docs/wd.html#adding_executables_to_your_path'''</ref>
+
* 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>
<ref>Selenium -- Internet Explorer Driver required setup steps: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration</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>
<ref>Selenium Grid Extras: https://github.com/groupon/Selenium-Grid-Extras</ref>
+
* Testing with PHPUnit and Selenium: http://netbeans.org/kb/docs/php/phpunit.html
 +
 
 +
* selenium4junit: http://code.google.com/p/selenium4junit/
 +
<ref>How to execute a Selenium test in Java: http://stackoverflow.com/questions/18492668/how-to-execute-a-selenium-test-in-java</ref>
 +
<ref>Selenium Test Automation Success Reasons and Best Practices: http://dzone.com/articles/selenium-test-automation-success-reasons-amp-best</ref>
 +
<ref>FF cross-platform Linux installation scripts example: https://gist.github.com/cgoldberg/4097efbfeb40adf698a7d05e75e0ff51</ref>
 +
<ref>'''Run Selenium WebDriver test on a Linux server: https://stackoverflow.com/questions/30051268/run-selenium-webdriver-test-on-a-linux-server'''</ref>
 +
<ref>Install Chrome, ChromeDriver and Selenium on Ubuntu 16.04: https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5</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>
 +
* '''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>Automating Selenium testing with TestNG, Ant and CruiseControl: http://hedleyproctor.com/2011/07/automating-selenium-testing-with-testng-ant-and-cruisecontrol/</ref>
 +
<ref>How to verify title of any web page in Selenium WebDriver?: http://www.inviul.com/verify-title-web-page-selenium/</ref>
 +
<ref>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</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>
 +
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>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>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</ref>
 +
<ref>Selenium IDE and Web Scraping: http://scraping.pro/selenium-ide-and-web-scraping/</ref>
 +
<ref>What is jUnit – testing framework (and how is it used with Selenium): https://seleniumonlinetrainingexpert.wordpress.com/2012/11/21/what-is-junit-testing-framework/</ref>
 +
<ref>'''Selenium - Quick Guide: https://www.tutorialspoint.com/selenium/selenium_quick_guide.htm'''</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>Using Selenium scripts with JMeter for load testing: https://sqa.stackexchange.com/questions/3313/using-selenium-scripts-with-jmeter-for-load-testing</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>Sauce Labs: https://saucelabs.com/ | [https://saucelabs.com/blog/category/selenium-resources DOCS]</ref>
 +
<ref>Loadable Component Pattern for better Page Object Model (POM) Architecture: https://www.swtestacademy.com/loadable-component-pattern/ | [https://github.com/swtestacademy/loadablecomponentexample SRC]</ref>
 +
<ref>Page Object Model with JAVA Generics: https://www.swtestacademy.com/page-object-model-java-generics/</ref>
 +
<ref>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/</ref>
 +
<ref>Selenium-Jupiter -- JUnit 5 extension for Selenium and Appium: https://bonigarcia.github.io/selenium-jupiter/ | [https://github.com/bonigarcia/selenium-jupiter SRC]</ref>
 +
<ref>Selenium WebDriver usage in JUnit4 .vs. JUnit5: https://www.blazemeter.com/blog/how-to-run-a-selenium-test-with-junit/ | [https://github.com/dihnatsyeu/blazemeter-SeleniumJUnit4 SRC - 4.x] | [https://github.com/dihnatsyeu/blazemeter-SeleniumJUnit5 SRC - 5.x]</ref>
 +
<ref>How to Run a Selenium Test with TestNG: https://www.blazemeter.com/blog/how-to-run-a-selenium-test-with-testng/</ref>
 +
<ref>Selenium advanced topics -- Parallel Tests Using Selenium Grid and JUnit: https://www.swtestacademy.com/selenium-parallel-tests-grid-junit/</ref>
 +
<ref>Setting up Selenium with Eclipse: http://selftechy.com/2011/05/31/setting-up-selenium-with-eclipse</ref>
 +
<ref>Selenium – Creating XML Reports: http://selftechy.com/2011/07/07/selenium-creating-xml-reports</ref>
 +
<ref>Selenium – Use Ant to Generate (jUnit-style) HTML Reports: http://selftechy.com/2011/06/29/selenium-use-ant-to-generate-html-reports</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>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>'''Selenium IDE native format (Selenese & .side) interpreter: https://github.com/vmi/selenese-runner-java'''</ref>
 +
<ref>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)</ref>
 
<ref>'''Awesome Selenium links: https://github.com/christian-bromann/awesome-selenium'''</ref>
 
<ref>'''Awesome Selenium links: https://github.com/christian-bromann/awesome-selenium'''</ref>
 
<ref>RocketPoweredJetPants -- Selenium/TestAutomation-focused blog: http://blog.rocketpoweredjetpants.com/</ref>
 
<ref>RocketPoweredJetPants -- Selenium/TestAutomation-focused blog: http://blog.rocketpoweredjetpants.com/</ref>
 +
<ref>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</ref>
 +
<ref>How to get System OS, Browser and Version using Java and Selenium WebDriver: https://mashtips.com/get-system-os-browser-version-java-selenium-webdriver/</ref>
 +
<ref>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</ref>
 +
<ref>How to find the operating system version using JavaScript?: https://stackoverflow.com/questions/9514179/how-to-find-the-operating-system-version-using-javascript#18706818</ref>
 +
<ref>Selenium 101 -- Running Your Test Against Two Browsers at Once: https://crossbrowsertesting.com/blog/how-to/run-test-multiple-browsers-parallel-selenium/</ref>
 
<ref>WebDriver -- Advanced Usage: https://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy</ref>
 
<ref>WebDriver -- Advanced Usage: https://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy</ref>
<ref>'''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'''</ref>
+
<ref>Selenium_Webdriver -- Proxy setting: https://stackoverflow.com/questions/12279723/selenium-webdriver-proxy-setting</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>'''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'''</ref>
 
<ref>WebDriver setup: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver</ref>
 
<ref>WebDriver setup: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver</ref>
 
<ref>webdriver.gecko.driver system property: https://github.com/mozilla/geckodriver/issues/177</ref>
 
<ref>webdriver.gecko.driver system property: https://github.com/mozilla/geckodriver/issues/177</ref>
Line 457: Line 1,062:
 
<ref>'''How to use Firefox in Selenium using geckodriver in Selenium 3: http://learn-automation.com/use-firefox-selenium-using-geckodriver-selenium-3/'''</ref>
 
<ref>'''How to use Firefox in Selenium using geckodriver in Selenium 3: http://learn-automation.com/use-firefox-selenium-using-geckodriver-selenium-3/'''</ref>
 
<ref>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)</ref>
 
<ref>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)</ref>
 +
<ref>'''BrowserStack - Selenium Capabilities Generator: https://www.browserstack.com/automate/capabilities'''</ref>
 
<ref>How to setup "MutableCapabilities": https://gist.github.com/shs96c/0951bdd0ca903ca22b2510e4438085c3</ref>
 
<ref>How to setup "MutableCapabilities": https://gist.github.com/shs96c/0951bdd0ca903ca22b2510e4438085c3</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 +
<ref>'''How To Upgrade from SeleniumRC to WebDriver: http://elementalselenium.com/tips/28-upgrading-from-rc'''</ref>
 +
<ref>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()")</ref>
 
<ref>Handling Date Time Picker using Selenium: http://www.guru99.com/handling-date-time-picker-using-selenium.html</ref>
 
<ref>Handling Date Time Picker using Selenium: http://www.guru99.com/handling-date-time-picker-using-selenium.html</ref>
 
<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 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>How to Use Selenium with JMeter's Webdriver Sampler: https://www.blazemeter.com/blog/jmeter-webdriver-sampler</ref>
 
<ref>How to Use Selenium with JMeter's Webdriver Sampler: https://www.blazemeter.com/blog/jmeter-webdriver-sampler</ref>
 +
<ref>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</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>How To Scroll Web Page Down Or UP Using Selenium WebDriver: https://www.softwaretestingmaterial.com/scroll-web-page-using-selenium-webdriver/</ref>
 
<ref>How To Scroll Web Page Down Or UP Using Selenium WebDriver: https://www.softwaretestingmaterial.com/scroll-web-page-using-selenium-webdriver/</ref>
Line 476: Line 1,090:
 
<ref>What’s new in selenium 3.0: http://qavalidation.com/2016/08/whats-new-in-selenium-3-0.html/</ref>
 
<ref>What’s new in selenium 3.0: http://qavalidation.com/2016/08/whats-new-in-selenium-3-0.html/</ref>
 
<ref>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/</ref>
 
<ref>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/</ref>
 +
<ref>Bringing new life into Edge Selenium Tools: https://dev.to/mintzworld/bringing-new-life-into-edge-selenium-tools-5b25</ref>
 
<ref>Can Selenium interact with an existing browser session?: https://stackoverflow.com/questions/8344776/can-selenium-interact-with-an-existing-browser-session</ref>
 
<ref>Can Selenium interact with an existing browser session?: https://stackoverflow.com/questions/8344776/can-selenium-interact-with-an-existing-browser-session</ref>
 
<ref>Selenium Java - Hybrid Framework: https://github.com/Abhilash04/SeleniumJavaHybridFramework (some helpful example patterns such as Apache POI - Excel Data Reader, PageObject test pattern, etc)</ref>
 
<ref>Selenium Java - Hybrid Framework: https://github.com/Abhilash04/SeleniumJavaHybridFramework (some helpful example patterns such as Apache POI - Excel Data Reader, PageObject test pattern, etc)</ref>
Line 482: 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 488: Line 1,104:
 
<ref>'''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/</ref>
 
<ref>'''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/</ref>
 
<ref>How to run Selenium tests in Safari browser?: http://toolsqa.com/selenium-webdriver/running-tests-in-safari-browser/</ref>
 
<ref>How to run Selenium tests in Safari browser?: http://toolsqa.com/selenium-webdriver/running-tests-in-safari-browser/</ref>
<ref>How To Use Safari: http://elementalselenium.com/tips/69-safari</ref>
+
<ref>How To Use Safari + Selenium: http://elementalselenium.com/tips/69-safari</ref>
 +
<ref>43 Exceptions in Selenium -- Have you ever "met" them?: https://www.katalon.com/resources-center/blog/selenium-exceptions/#</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>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>
  
* '''Selenium IDE: http://docs.seleniumhq.org/projects/ide/''' | [https://github.com/seleniumhq/selenium-ide PROJECT] | [https://www.npmjs.com/package/selenium-side-runner Selenium SIDE Runner] | [https://output.jsbin.com/zagemaw SeleniumIDE 3.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 GRID ======
 +
 
 +
* 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
 +
<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>Docker -- Selenium image for Automated Testing - Getting Started: https://www.youtube.com/watch?v=S4OkrnFb-YY</ref>
 +
<ref>'''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''")</ref>
 +
<ref>[[wikipedia: Xvfb]]</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>Headless Chrome run with selenium: https://stackoverflow.com/questions/47067188/headless-chrome-run-with-selenium</ref>
 +
<ref>Headless driver: https://stackoverflow.com/questions/51357401/headless-driver</ref>
 +
<ref>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</ref>
 +
<ref>'''Headless Browsers roundup: https://chercher.tech/java/headless-browsers-selenium-webdriver'''</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>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)
 +
<ref>Automated Testing with Selenium Grid and Jenkins in 3 Steps: http://www.agiletrailblazers.com/blog/automated-testing-with-selenium-grid-and-jenkins</ref>
 +
<ref>How to configure Selenium HTML Reports in Jenkins: https://stackoverflow.com/questions/13082425/how-to-configure-selenium-html-reports-in-jenkins</ref>
 +
<ref>Selenium plugin for Jenkins: https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin</ref>
 +
<ref>Selenium Grid VS Jenkins: https://stackoverflow.com/questions/27573634/selenium-grid-vs-jenkins</ref>
 +
<ref>Distributed Testing with Selenium Grid: https://www.packtpub.com/sites/default/files/downloads/Distributed_Testing_with_Selenium_Grid.pdf</ref>
 +
<ref>Mozilla Dev -- FireFox - Using headless mode: https://developer.mozilla.org/en-US/Firefox/Headless_mode</ref>
 +
<ref>HeadlessFirefoxSeleniumExample.java: https://github.com/mdn/headless-examples/blob/master/headlessfirefox-gradle/src/main/java/com/mozilla/example/HeadlessFirefoxSeleniumExample.java</ref>
 +
<ref>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)</ref>
 +
<ref>'''GhostDriver: https://github.com/detro/ghostdriver''' | [https://github.com/detro/ghostdriver/releases DOWNLOAD] | [https://www.npmjs.com/package/ghostdriver npm package](GhostDriver is the Java PhantomJS Driver)</ref>
 +
<ref>How To Run Your Tests Headlessly with Ghost Driver: http://elementalselenium.com/tips/46-headless-ghostdriver</ref>
 +
<ref>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</ref>
 +
<ref>Alternative Uses for GhostDriver and Headless Browser testing: http://seleniumsimplified.com/post/2013-08-30-alternative-uses-for-ghostdriver-and-headless-browser-testing/</ref>
 +
<ref>How to implement PhantomJS with Selenium WebDriver using java: https://stackoverflow.com/questions/24138398/how-to-implement-phantomjs-with-selenium-webdriver-using-java</ref>
 +
<ref>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</ref>
 +
<ref>''WebDriver driver = new PhantomJSDriver();'' FAILS now... What happened to Selenium's support for PhantomJS headless tests?: https://github.com/SeleniumHQ/selenium/issues/5295</ref>
 +
<ref>HTMLUnitDriver & PhantomJS for Selenium Headless Testing: https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html</ref>
 +
<ref>Headless Browser Testing Using HtmlUnitDriver in Selenium WebDriver: https://www.softwaretestingmaterial.com/headless-browser-testing-using-htmlunitdriver/</ref>
 +
<ref>Headless browser Testing using Selenium HtmlUnitDriver: http://learn-automation.com/headless-browser-testing-using-selenium-htmlunitdriver/</ref>
 +
<ref>HtmlUnitDriver: https://github.com/SeleniumHQ/selenium/wiki/HtmlUnitDriver</ref>
 +
<ref>How to use HtmlUnit (without Selenium) in Java?: https://stackoverflow.com/questions/4869426/how-to-use-htmlunit-in-java#49383391 (see the [http://htmlunit.sourceforge.net/gettingStarted.html HtmlUnit website] as well for lots of examples)</ref>
 +
<ref>How to run webdriver in IE browser?: https://www.seleniumeasy.com/selenium-tutorials/how-to-run-webdriver-in-ie-browser</ref>
 +
<ref>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</ref>
 +
<ref>'''Adding Executables to your PATH: https://seleniumhq.github.io/docs/wd.html#adding_executables_to_your_path'''</ref>
 +
<ref>Selenium -- Internet Explorer Driver required setup steps: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration</ref>
 +
 
 +
====== Selenium IDE ======
 +
 
 +
* '''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>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>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>
 
<ref>'''SideeX''' - extended version of Selenium IDE: http://sideex.org/ (works on Chrome/FF, more limited functionality, still allows export/bindings)</ref>
 
<ref>'''SideeX''' - extended version of Selenium IDE: http://sideex.org/ (works on Chrome/FF, more limited functionality, still allows export/bindings)</ref>
 
<ref>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)</ref>
 
<ref>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)</ref>
 +
* '''SeleniumIDE “.side” JSON parser for “Durable Selectors”, more maintainable Test Automation: http://bcmoney-mobiletv.com/blog/2019/04/27/selenium-ide-side-parser-for-durable-selectors/'''<ref>'''SeleniumIDE 3.x to 2.x converter: http://output.jsbin.com/zagemaw'''</ref><ref>Selenium IDE 4.x - The Next Generation (WEBINAR): https://applitools.com/blog/selenium-ide-by-simon-stewart</ref><ref>SeleniumIDE -- Adding "Code Export" feature back: https://github.com/SeleniumHQ/selenium-ide/issues/592</ref><ref>SeleniumIDE -- ".side"-format specification: https://github.com/SeleniumHQ/selenium-ide/issues/77</ref>
 +
 +
* '''Selenium IDE Complete List of Commands: http://seleniummaster.com/sitecontent/index.php/introduction-to-selenium-automation/selenium-ide/114-selenium-ide-complete-list-of-commands'''
 
<ref>Using Selenium IDE for the first time: https://techblog.polteq.com/en/using-selenium-ide-first-time/</ref>
 
<ref>Using Selenium IDE for the first time: https://techblog.polteq.com/en/using-selenium-ide-first-time/</ref>
 +
<ref>Why you should learn test automation with Selenium IDE: https://medium.com/@alicealdaine/why-you-should-learn-test-automation-with-selenium-ide-ae252c65b45d</ref>
 
<ref>'''Recording Test Scripts: http://blog.browsermob.com/help/creating-a-test/recording-test-scripts/'''</ref>
 
<ref>'''Recording Test Scripts: http://blog.browsermob.com/help/creating-a-test/recording-test-scripts/'''</ref>
 
<ref>Automated Web Testing with Selenium and the NetBeans Platform: http://wadechandler.blogspot.ca/2011/04/automated-web-testing-with-selenium-and.html</ref>
 
<ref>Automated Web Testing with Selenium and the NetBeans Platform: http://wadechandler.blogspot.ca/2011/04/automated-web-testing-with-selenium-and.html</ref>
Line 503: Line 1,188:
 
<ref>How to click on All links in Web page: https://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page</ref>
 
<ref>How to click on All links in Web page: https://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page</ref>
 
<ref>How to click all links in WebPage (Selenium WebDriver): http://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page</ref>
 
<ref>How to click all links in WebPage (Selenium WebDriver): http://stackoverflow.com/questions/21898567/how-to-click-on-all-links-in-web-page</ref>
 +
<ref>xPath for href element: https://stackoverflow.com/questions/13124942/xpath-for-href-element</ref>
 +
<ref>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'')</ref>
 
<ref>How to find broken links using Selenium IDE (or WebDriver): https://sqa.stackexchange.com/questions/11879/how-to-find-broken-links-using-selenium-ide</ref>
 
<ref>How to find broken links using Selenium IDE (or WebDriver): https://sqa.stackexchange.com/questions/11879/how-to-find-broken-links-using-selenium-ide</ref>
 +
<ref>'''Take a screenshot with Selenium WebDriver: https://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver'''</ref>
 +
<ref>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/</ref>
 
<ref>Compare screenshots of rendered web pages: ttps://sqa.stackexchange.com/questions/2459/compare-screenshots-of-rendered-web-pages</ref>
 
<ref>Compare screenshots of rendered web pages: ttps://sqa.stackexchange.com/questions/2459/compare-screenshots-of-rendered-web-pages</ref>
 
<ref>How to Do Visual Testing with Selenium: http://testautomation.applitools.com/post/105435804567/how-to-do-visual-testing-with-selenium</ref>
 
<ref>How to Do Visual Testing with Selenium: http://testautomation.applitools.com/post/105435804567/how-to-do-visual-testing-with-selenium</ref>
 +
<ref>How to Do Visual Testing with Selenium: https://applitools.com/blog/how-to-do-visual-testing-with-selenium</ref>
 
<ref>Selenium IDE Firefox add-on end of life: https://www.ghacks.net/2017/08/21/selenium-ide-firefox-add-on-end-of-live/</ref>
 
<ref>Selenium IDE Firefox add-on end of life: https://www.ghacks.net/2017/08/21/selenium-ide-firefox-add-on-end-of-live/</ref>
 
<ref>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)</ref>
 
<ref>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)</ref>
Line 531: Line 1,221:
 
<ref>Manual input from user while running Selenium IDE script: http://stackoverflow.com/questions/8921929/manual-input-from-user-while-running-selenium-ide-script</ref>
 
<ref>Manual input from user while running Selenium IDE script: http://stackoverflow.com/questions/8921929/manual-input-from-user-while-running-selenium-ide-script</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 +
<ref>"storeLocation" and "storeTitle" commands in selenium IDE: http://www.software-testing-tutorials-automation.com/2012/11/storelocation-and-storetitle-commands.html</ref>
 +
<ref>Guide to installing the latest SeleniumIDE: https://www.guru99.com/install-selenuim-ide.html</ref>
 +
<ref>Selenium IDE "open" and "openWindow" commands with example: http://www.software-testing-tutorials-automation.com/2012/10/selenium-ide-openand-openwindow-command.html</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>CSS target elements by partial class or ID name: http://www.antimath.info/css/css-target-elements-by-partial-class-or-id-name/</ref>
 
<ref>CSS target elements by partial class or ID name: http://www.antimath.info/css/css-target-elements-by-partial-class-or-id-name/</ref>
Line 539: Line 1,232:
 
<ref>Getting Started With Selenium - Test Automation Pyramids: https://smartbear.com/learn/automated-testing/getting-started-with-selenium/?q=selenium</ref>
 
<ref>Getting Started With Selenium - Test Automation Pyramids: https://smartbear.com/learn/automated-testing/getting-started-with-selenium/?q=selenium</ref>
 
<ref>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</ref>
 
<ref>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</ref>
<ref>How to assert the src of an image in Selenium?: https://groups.google.com/forum/#!topic/webdriver/-NRiru2dEoo</ref>
 
<ref>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</ref>
 
 
<ref>Selenium - test if element contains some text: http://stackoverflow.com/questions/9922054/selenium-test-if-element-contains-some-text</ref>
 
<ref>Selenium - test if element contains some text: http://stackoverflow.com/questions/9922054/selenium-test-if-element-contains-some-text</ref>
 
<ref>Selenium jQuery lib in Java: http://www.vcskicks.com/selenium-jquery.php</ref>
 
<ref>Selenium jQuery lib in Java: http://www.vcskicks.com/selenium-jquery.php</ref>
 
<ref>Using Selenium IDE's getEval command with FirefoxWebdriver: http://stackoverflow.com/questions/17214151/using-selenium-ides-geteval-command-with-firefoxwebdriver</ref>
 
<ref>Using Selenium IDE's getEval command with FirefoxWebdriver: http://stackoverflow.com/questions/17214151/using-selenium-ides-geteval-command-with-firefoxwebdriver</ref>
 +
<ref>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</ref>
 +
<ref>How to Use Gecko (Marionette) Driver in Selenium 3: https://www.toolsqa.com/selenium-webdriver/how-to-use-geckodriver/</ref>
 
<ref>Compare stored values in Selenium IDE: http://stackoverflow.com/questions/30073301/compare-stored-values-in-selenium-ide</ref>
 
<ref>Compare stored values in Selenium IDE: http://stackoverflow.com/questions/30073301/compare-stored-values-in-selenium-ide</ref>
 
<ref>Selenium questions/answers from an expert Automated Tester: https://arunpp.wordpress.com/selenium/</ref>
 
<ref>Selenium questions/answers from an expert Automated Tester: https://arunpp.wordpress.com/selenium/</ref>
<ref>'''Selenium Tips -- CSS Selectors: http://saucelabs.com/resources/articles/selenium-tips-css-selectors'''</ref>
+
<ref>'''Locators in Selenium IDE -- CSS Selector, DOM, XPath, Link Text, ID: https://www.guru99.com/locators-in-selenium-ide.html'''</ref>
<ref>ElementalSelenium -- CSS .vs. xPath selector Benchmarks - http://elementalselenium.com/tips/category/benchmarks</ref>
+
<ref>Writing CSS Selectors (WEBINAR): https://applitools.com/blog/css-selectors | [https://github.com/iamalittletester/selenium-tutorial/blob/master/src/test/java/tutorialsolution/cssselectorssolution/CSSSelectorsTest.java CSSSelectorsTest.java] | [https://github.com/iamalittletester/selenium-tutorial/blob/master/src/main/resources/fullPage.html fullPage.html]</ref>
 
<ref>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/</ref>
 
<ref>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/</ref>
 +
<ref>'''SauceLabs -- Selenium Tips - CSS Selectors: https://saucelabs.com/resources/articles/selenium-tips-css-selectors'''</ref>
 +
<ref>Why CSS Selectors are the most useful Selenium WebDriver locators?: https://www.pineboat.in/post/css-selectors-selenium-webdriver-find-element-xpath-replaced/</ref>
 +
<ref>CSS Selector Strategies for Automated Browser Testing: https://ghostinspector.com/blog/css-selector-strategies-automated-browser-testing/</ref>
 +
<ref>CSS nth-child Selector: https://codoid.com/css-nth-child-selector/</ref>
 +
<ref>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/</ref>
 +
<ref>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</ref>
 +
<ref>Get All image "src" values in selected container: https://stackoverflow.com/questions/33259923/get-all-src-image-selected-container</ref>
 +
<ref>How to assert the src of an image in Selenium?: https://groups.google.com/forum/#!topic/webdriver/-NRiru2dEoo</ref>
 +
<ref>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</ref>
 +
<ref>ElementalSelenium -- CSS .vs. xPath selector Benchmarks - http://elementalselenium.com/tips/category/benchmarks</ref>
 
<ref>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)</ref>
 
<ref>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)</ref>
<ref>Tutorial post for selenium IDE "waitForTitle" and "waitForNotTitle" commands : http://www.software-testing-tutorials-automation.com/2013/11/tutorial-post-for-selenium-ide.html</ref>
+
<ref>Tutorial post for selenium IDE "waitForTitle" and "waitForNotTitle" commands: http://www.software-testing-tutorials-automation.com/2013/11/tutorial-post-for-selenium-ide.html</ref>
 
<ref>WaitForTitle does not work: http://stackoverflow.com/questions/39107883/waitfortitle-does-not-work</ref>
 
<ref>WaitForTitle does not work: http://stackoverflow.com/questions/39107883/waitfortitle-does-not-work</ref>
 
<ref>Selenium IDE testing all links: http://stackoverflow.com/questions/10137250/selenium-ide-testing-all-links</ref>
 
<ref>Selenium IDE testing all links: http://stackoverflow.com/questions/10137250/selenium-ide-testing-all-links</ref>
Line 567: Line 1,270:
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 
+
<ref>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</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>Stunning Return of Selenium IDE (Sweet Dream or Nightmare): https://www.joecolantonio.com/selenium-ide/</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>
+
<ref>'''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)</ref>
* NodeJS Selenium: https://www.npmjs.com/package/selenium-standalone | [https://www.npmjs.com/package/selenium-webdriver WEB DRIVER]
+
<ref>In search of the Selenium IDE’s successor: https://medium.com/@briananderson2209/in-search-of-the-selenium-ides-successor-33bc7eaefe7f</ref>
* flex-ui-selenium -- Selenium RC driving the tests against Flex applications: http://code.google.com/p/flex-ui-selenium/
+
<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>
* Selenium-Flex API - Automation for Adobe Flex applications: http://code.google.com/p/sfapi/
+
<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>
* Flex acceptance testing and continuous integration: http://www.blackpepper.co.uk/black-pepper-blog/Flex-acceptance-testing-and-continuous-integration.html
+
<ref>Katalon Studio webinars: https://m.youtube.com/channel/UC0g8oLvxnX0i3Ul98uSOrPA</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>
+
 
+
* selenium4junit: http://code.google.com/p/selenium4junit/<ref>How to execute a Selenium test in Java: http://stackoverflow.com/questions/18492668/how-to-execute-a-selenium-test-in-java</ref><ref>Selenium Test Automation Success Reasons and Best Practices: http://dzone.com/articles/selenium-test-automation-success-reasons-amp-best</ref>
+
* Testing with PHPUnit and Selenium: http://netbeans.org/kb/docs/php/phpunit.html
+
<ref>FF cross-platform Linux instal scripts example: https://gist.github.com/cgoldberg/4097efbfeb40adf698a7d05e75e0ff51</ref>
+
<ref>Install Chrome, ChromeDriver and Selenium on Ubuntu 16.04: https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5</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>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>'''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>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>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</ref>
+
<ref>Selenium IDE and Web Scraping: http://scraping.pro/selenium-ide-and-web-scraping/</ref>
+
<ref>What is jUnit – testing framework (and how is it used with Selenium): https://seleniumonlinetrainingexpert.wordpress.com/2012/11/21/what-is-junit-testing-framework/</ref>
+
<ref>'''Selenium - Quick Guide: https://www.tutorialspoint.com/selenium/selenium_quick_guide.htm'''</ref>
+
<ref>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</ref>
+
<ref>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</ref>
+
<ref>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</ref>
+
<ref>Using Selenium scripts with JMeter for load testing: https://sqa.stackexchange.com/questions/3313/using-selenium-scripts-with-jmeter-for-load-testing</ref>
+
<ref>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</ref>
+
<ref>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</ref>
+
<ref>Sauce Labs: https://saucelabs.com/ | [https://saucelabs.com/blog/category/selenium-resources DOCS]</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>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 607: Line 1,284:
 
<ref>How to run tests from Selenium IDE in Chrome: http://screenster.io/running-tests-from-selenium-ide-in-chrome/</ref>
 
<ref>How to run tests from Selenium IDE in Chrome: http://screenster.io/running-tests-from-selenium-ide-in-chrome/</ref>
 
<ref>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/</ref>
 
<ref>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/</ref>
<ref>SauceLabs -- Selenium Tips - CSS Selectors: https://saucelabs.com/resources/articles/selenium-tips-css-selectors</ref>
 
 
<ref>Selenium IDE alternatives for UI regression testing: https://news.ycombinator.com/item?id=13586904</ref>
 
<ref>Selenium IDE alternatives for UI regression testing: https://news.ycombinator.com/item?id=13586904</ref>
 
<ref>Selenium IDE is not compatible with Firefox 55: https://github.com/SeleniumHQ/selenium/issues/4406</ref>
 
<ref>Selenium IDE is not compatible with Firefox 55: https://github.com/SeleniumHQ/selenium/issues/4406</ref>
 
<ref>Firefox 32 broken with selenium 2.42: https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/7823</ref>
 
<ref>Firefox 32 broken with selenium 2.42: https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/7823</ref>
<ref>Running Selenium tests under ''py.test'' convention with docker support: https://github.com/eliranshani/selenium-docker-allure</ref>
+
<ref>Simulate "keyboard shortcuts" in SeleniumIDE through the ''execute script'' command: https://github.com/SeleniumHQ/selenium-ide/issues/929</ref>
<ref>Setting up Selenium with Eclipse: http://selftechy.com/2011/05/31/setting-up-selenium-with-eclipse</ref>
+
<ref>Simulate "Right-click" action in SeleniumIDE through the ''execute script'' command: https://github.com/SeleniumHQ/selenium-ide/issues/754</ref>
<ref>Selenium – Creating XML Reports: http://selftechy.com/2011/07/07/selenium-creating-xml-reports</ref>
+
<ref>Selenium – Use Ant to Generate (jUnit-style) HTML Reports: http://selftechy.com/2011/06/29/selenium-use-ant-to-generate-html-reports</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>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)</ref>
+
<ref>Automated Testing with Selenium Grid and Jenkins in 3 Steps: http://www.agiletrailblazers.com/blog/automated-testing-with-selenium-grid-and-jenkins</ref>
+
<ref>How to configure Selenium HTML Reports in Jenkins: https://stackoverflow.com/questions/13082425/how-to-configure-selenium-html-reports-in-jenkins</ref>
+
<ref>Selenium plugin for Jenkins: https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin</ref>
+
<ref>Selenium Grid VS Jenkins: https://stackoverflow.com/questions/27573634/selenium-grid-vs-jenkins</ref>
+
<ref>Distributed Testing with Selenium Grid: https://www.packtpub.com/sites/default/files/downloads/Distributed_Testing_with_Selenium_Grid.pdf</ref>
+
<ref>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/</ref>
+
<ref>Mozilla Dev -- FireFox - Using headless mode: https://developer.mozilla.org/en-US/Firefox/Headless_mode</ref>
+
<ref>HeadlessFirefoxSeleniumExample.java: https://github.com/mdn/headless-examples/blob/master/headlessfirefox-gradle/src/main/java/com/mozilla/example/HeadlessFirefoxSeleniumExample.java</ref>
+
<ref>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)</ref>
+
<ref>'''GhostDriver: https://github.com/detro/ghostdriver''' | [https://github.com/detro/ghostdriver/releases DOWNLOAD] | [https://www.npmjs.com/package/ghostdriver npm package](GhostDriver is the Java PhantomJS Driver)</ref>
+
<ref>How To Run Your Tests Headlessly with Ghost Driver: http://elementalselenium.com/tips/46-headless-ghostdriver</ref>
+
<ref>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</ref>
+
<ref>Alternative Uses for GhostDriver and Headless Browser testing: http://seleniumsimplified.com/post/2013-08-30-alternative-uses-for-ghostdriver-and-headless-browser-testing/</ref>
+
<ref>How to implement PhantomJS with Selenium WebDriver using java: https://stackoverflow.com/questions/24138398/how-to-implement-phantomjs-with-selenium-webdriver-using-java</ref>
+
<ref>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</ref>
+
<ref>''WebDriver driver = new PhantomJSDriver();'' FAILS now... What happened to Selenium's support for PhantomJS headless tests?: https://github.com/SeleniumHQ/selenium/issues/5295</ref>
+
<ref>HTMLUnitDriver & PhantomJS for Selenium Headless Testing: https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html</ref>
+
<ref>Headless Browser Testing Using HtmlUnitDriver in Selenium WebDriver: https://www.softwaretestingmaterial.com/headless-browser-testing-using-htmlunitdriver/</ref>
+
<ref>Headless browser Testing using Selenium HtmlUnitDriver: http://learn-automation.com/headless-browser-testing-using-selenium-htmlunitdriver/</ref>
+
<ref>HtmlUnitDriver: https://github.com/SeleniumHQ/selenium/wiki/HtmlUnitDriver</ref>
+
<ref>How to use HtmlUnit (without Selenium) in Java?: https://stackoverflow.com/questions/4869426/how-to-use-htmlunit-in-java#49383391 (see the [http://htmlunit.sourceforge.net/gettingStarted.html HtmlUnit website] as well for lots of examples)</ref>
+
<ref>Selenium Grid (OFFICIAL DOCS): http://www.seleniumhq.org/docs/07_selenium_grid.jsp</ref>
+
<ref>Selenium Grid - Hub & Node diagram: https://www.hub4tech.com/selenium/selenium-grid</ref>
+
<ref>Docker -- Selenium image for Automated Testing - Getting Started: https://www.youtube.com/watch?v=S4OkrnFb-YY</ref>
+
<ref>'''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''")</ref>
+
<ref>[[wikipedia: Xvfb]]</ref>
+
<ref>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</ref>
+
<ref>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</ref>
+
<ref>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</ref>
+
<ref>Headless Chrome run with selenium: https://stackoverflow.com/questions/47067188/headless-chrome-run-with-selenium</ref>
+
<ref>Headless driver: https://stackoverflow.com/questions/51357401/headless-driver</ref>
+
<ref>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</ref>
+
<ref>'''Headless Browsers roundup: https://chercher.tech/java/headless-browsers-selenium-webdriver'''</ref>
+
  
 
===== jsUnit =====
 
===== jsUnit =====
Line 658: Line 1,296:
 
* jsUnit Test Runner (example): http://jsunit.net/runner/testRunner.html?testpage=/runner/tests/jsUnitTestSuite.html
 
* jsUnit Test Runner (example): http://jsunit.net/runner/testRunner.html?testpage=/runner/tests/jsUnitTestSuite.html
 
* jsUnit Documentation: http://jsunit.net/documentation/
 
* jsUnit Documentation: http://jsunit.net/documentation/
 
===== Firebug =====
 
 
* FireFox ''F12'' Dev Tools: https://developer.mozilla.org/en-US/docs/Tools (replaced '''[http://getfirebug.org Firebug]''' as of 2016-02-08<ref>Merging Firebug into the built-in Firefox Developer Tools: https://blog.getfirebug.com/2016/02/08/merging-firebug-into-the-built-in-firefox-developer-tools/</ref>)<ref>What are browser developer tools?: https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools</ref>
 
* Chrome ''F12'' DevTools: https://developers.google.com/web/tools/chrome-devtools/
 
* IE 5-7 Debugger: https://www.my-debugbar.com/wiki/Doc/HomePage (Microsoft Script Debugger<ref>[[wikipedia: Microsoft Script Debugger]]</ref> used to be the best option but DebugBar was a popular alternative, years later it is the only workable option)<ref>Test your Web scripts using the Microsoft Script Debugger: http://www.techrepublic.com/article/test-your-web-scripts-using-the-microsoft-script-debugger/</ref><ref>How to debug JS in (old) IE browsers: https://jonathanboutelle.com/2006/01/16/how-to-debug-javascript-in-internet-explorer/</ref>
 
* IE 8+ Developer Tools: https://msdn.microsoft.com/en-us/library/gg589512(v=vs.85).aspx<ref>Debugging Script with the Developer Tools: https://msdn.microsoft.com/en-us/library/dd565625(v=vs.85).aspx</ref><ref>Debugging HTML and CSS with the Developer Tools: https://msdn.microsoft.com/en-us/library/dd565627(v=vs.85).aspx</ref><ref>Debugging Internet Explorer - A Beginner’s Guide: https://blogs.msdn.microsoft.com/ieinternals/2014/01/15/debugging-internet-explorer-a-beginners-guide/</ref><ref>IE 11 - Using the ''F12'' Dev Tools: https://msdn.microsoft.com/en-us/library/bg182326(v=vs.85).aspx</ref>
 
* IE - Edge -- ''F12'' Dev Tools: https://developer.microsoft.com/en-us/microsoft-edge/tools/<ref>MS Edge - F12 Dev Tools guide: https://docs.microsoft.com/en-us/microsoft-edge/f12-devtools-guide</ref><ref>Meet the Microsoft Edge F12 Dev Tools: https://docs.microsoft.com/en-us/microsoft-edge/f12-devtools-guide</ref><ref>'''IE11/Edge -- How to use F12 Developer Tools to Debug your Webpages: https://msdn.microsoft.com/en-us/library/gg589507(v=vs.85).aspx'''</ref>
 
* Safari : https://developer.apple.com/safari/tools/<ref>'''Safari's iOS WebDev Tools & Debugger: https://developer.apple.com/library/content/qa/qa1804/_index.html#//apple_ref/doc/uid/DTS40013776'''</ref><ref>10 Years of Web Inspector: https://webkit.org/blog/5718/10-years-of-web-inspector/</ref><ref>Enable the Safari Debug Console on iPhone & iPad: http://osxdaily.com/2012/05/07/enable-safari-debug-console-ios/</ref><ref>Quick Tip - Using Web Inspector to Debug Mobile Safari: https://webdesign.tutsplus.com/articles/quick-tip-using-web-inspector-to-debug-mobile-safari--webdesign-8787</ref><ref>Debug a Website in iOS Safari on Windows: http://washamdev.com/2016/02/debug-a-website-in-ios-safari-on-windows/</ref><ref>Debug iOS Safari html layout on Windows: https://stackoverflow.com/questions/11333501/debug-ios-safari-html-layout-on-windows</ref><ref>How to Activate the iPhone Debug Console: https://www.lifewire.com/activate-the-debug-console-in-safari-445798</ref><ref>Optimizing Page Load Time (and a little about the Debug menu): https://webkit.org/blog/75/optimizing-page-load-time-and-a-little-about-the-debug-menu/</ref><ref>Web Inspector Redesign/Updates (2008-2009): https://webkit.org/blog/829/web-inspector-updates/ (see links to previous updates within)</ref><ref>State of Web Inspector: https://webkit.org/blog/2518/state-of-web-inspector/</ref><ref>Web Inspector Console Improvements: https://webkit.org/blog/3516/web-inspector-console-improvements/</ref><ref>Web Inspector Keyboard Shortcuts: https://webkit.org/blog/4038/web-inspector-keyboard-shortcuts/</ref><ref>Web Inspector User Interface Changes (2015): https://webkit.org/blog/3574/web-inspector-interface-changes/</ref><ref>Breakpoint Options: https://webkit.org/blog/5435/breakpoint-options/</ref><ref>Memory Debugging with Web Inspector: https://webkit.org/blog/6425/memory-debugging-with-web-inspector/</ref>
 
* Opera DevTools: http://help.opera.com/Windows/9.50/en/devtools.html<ref>How to open DevTools in Opera?: http://help.opera.com/Windows/9.50/en/devtools.html</ref>
 
  
 
====== FireUnit ======
 
====== FireUnit ======
  
* FireUnit: http://fireunit.org
+
* Firebug --  FireUnit: http://fireunit.org (xUnit platform for Firebug to Unit Test JS)
 
* Unit Testing JavaScript with FireUnit: http://stephenwalther.com/blog/archive/2009/05/18/unit-testing-javascript-with-fireunit.aspx
 
* Unit Testing JavaScript with FireUnit: http://stephenwalther.com/blog/archive/2009/05/18/unit-testing-javascript-with-fireunit.aspx
  
Line 755: Line 1,383:
 
* t2framework: http://code.google.com/p/t2framework/
 
* t2framework: http://code.google.com/p/t2framework/
 
* Automated Java testing using T2 + JUnit: http://code.google.com/p/t2framework/wiki/AutomatedTestingWithJunit
 
* Automated Java testing using T2 + JUnit: http://code.google.com/p/t2framework/wiki/AutomatedTestingWithJunit
 +
 +
===== FitNesse =====
 +
 +
* FitNesse: http://fitnesse.org/ (Acceptance Testing framework) | [http://fitnesse.org/FitNesse.UserGuide.AcceptanceTests DOCS] | [http://fitnesse.org/FitNesseDownload DOWNLOAD]
  
 
==== PHP ====
 
==== PHP ====
Line 799: Line 1,431:
  
 
* UnitTest++: http://unittest-cpp.sourceforge.net/
 
* UnitTest++: http://unittest-cpp.sourceforge.net/
 
  
 
=== System ===
 
=== System ===
Line 819: Line 1,450:
 
<ref>'''How to Integrate Sikuli with Selenium Webdriver: learn-automation.com/integrate-sikuli-with-selenium-webdriver/'''</ref>
 
<ref>'''How to Integrate Sikuli with Selenium Webdriver: learn-automation.com/integrate-sikuli-with-selenium-webdriver/'''</ref>
 
<ref>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/</ref>
 
<ref>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/</ref>
 +
<ref>Sikuli Image/Visual Test Automation: https://roadtoautomation.blogspot.com/p/sikuli.html</ref>
 +
<ref>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</ref>
 +
<ref>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/</ref>
 +
<ref>Visual regression testing with PhantomCSS: https://css-tricks.com/visual-regression-testing-with-phantomcss/</ref>
 +
<ref>Visual Testing in Katalon Studio: https://forum.katalon.com/discussion/9799/visual-testing-in-katalon-studio</ref>
 
<ref>Sikuli – for all those hard to reach places!: https://hel1lotestworld.com/2012/04/27/sikuli-for-all-those-hard-to-reach-places/</ref>
 
<ref>Sikuli – for all those hard to reach places!: https://hel1lotestworld.com/2012/04/27/sikuli-for-all-those-hard-to-reach-places/</ref>
 
<ref>Using Sikuli to test legacy Flash: https://technicaltesting.wordpress.com/2012/01/19/using-sikuli-to-test-legacy-flash/</ref>
 
<ref>Using Sikuli to test legacy Flash: https://technicaltesting.wordpress.com/2012/01/19/using-sikuli-to-test-legacy-flash/</ref>
Line 825: Line 1,461:
 
<ref>Building Large-scale Testing framework Using Sikuli 1.0 - Mac and Windows: https://answers.launchpad.net/sikuli/+question/111193/+index</ref>
 
<ref>Building Large-scale Testing framework Using Sikuli 1.0 - Mac and Windows: https://answers.launchpad.net/sikuli/+question/111193/+index</ref>
 
<ref>'''Write sikuli code in pure java?: https://answers.launchpad.net/sikuli/+question/108878'''</ref>
 
<ref>'''Write sikuli code in pure java?: https://answers.launchpad.net/sikuli/+question/108878'''</ref>
 
+
<ref>How to use sikuli with latest apple safari driver: https://stackoverflow.com/questions/40202241/how-to-use-sikuli-with-latest-apple-safari-driver</ref>
 +
<ref>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</ref>
 +
<ref>Testing with WebDriver in Safari: https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari</ref>
 +
<ref>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</ref>
 +
<ref>WebDriver Support in Safari 10: https://webkit.org/blog/6900/webdriver-support-in-safari-10/</ref>
 +
<ref>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</ref>
  
 
=== Performance ===
 
=== Performance ===
Line 858: 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
 
* JMeter - plugins: https://jmeter-plugins.org/<ref>How to Write a plugin for JMeter: http://jmeter.apache.org/extending/jmeter_tutorial.pdf</ref>
 
* JMeter - plugins: https://jmeter-plugins.org/<ref>How to Write a plugin for JMeter: http://jmeter.apache.org/extending/jmeter_tutorial.pdf</ref>
 
* BlazeMeter JMX Converter: http://converter.blazemeter.com (HAR, SoapUI/XML, Selenium & JSON to JMeter's "JMX" format)
 
* BlazeMeter JMX Converter: http://converter.blazemeter.com (HAR, SoapUI/XML, Selenium & JSON to JMeter's "JMX" format)
 +
* JMeter - Docker image: https://hub.docker.com/r/vmarrazzo/jmeter/
 +
<ref>dzone -- Getting Started With Apache JMeter (REFCARDZ): https://dzone.com/refcardz/getting-started-with-apache-jmeter</ref>
 
<ref>JMeter Tutorial: http://www.tutorialspoint.com/jmeter/</ref>
 
<ref>JMeter Tutorial: http://www.tutorialspoint.com/jmeter/</ref>
<ref>How to run JMeter in Non GUI mode: https://blog.e-zest.com/how-to-run-jmeter-in-non-gui-mode/</ref>
+
<ref>JMeter Load Testing Tutorial: https://www.testertestingtoolseasy.com/2018/08/jmeter-load-testing-tutorial-step-0.html (in parcticular see sections [https://www.testertestingtoolseasy.com/2018/09/jmeter-load-testing-tutorial-step-6.html 6], [https://www.testertestingtoolseasy.com/2018/09/jmeter-load-testing-tutorial-step-7-ios.html 7], [https://www.testertestingtoolseasy.com/2018/09/jmeter-load-testing-tutorial-step-8.html8] for good details on recording a Test Scenario for Android / iOS, and re-running later)</ref>
 
<ref>How to get started with JMeter (PART 1): http://dzone.com/articles/how-to-get-started-with-jmeter-part-1-installation</ref>
 
<ref>How to get started with JMeter (PART 1): http://dzone.com/articles/how-to-get-started-with-jmeter-part-1-installation</ref>
 
<ref>Apache JMeter Tutorial: http://dzone.com/articles/apache-jmeter-tutorial</ref>
 
<ref>Apache JMeter Tutorial: http://dzone.com/articles/apache-jmeter-tutorial</ref>
<ref>'''Distributed Performance Testing With Maven JMeter and Jenkins: http://dzone.com/articles/distributed-performance'''</ref>
+
<ref> Load Testing Your Application Using JMeter, Docker, and Amazon Web Services: https://dzone.com/articles/stop-hoping-for-the-best-and-load-performing-tests</ref>
 +
<ref>How to Use JMeter for Performance & Load Testing overview: https://www.guru99.com/jmeter-performance-testing.html</ref>
 
<ref>JMeter 12-step to Mastery Tutorial: http://www.guru99.com/jmeter-tutorials.html</ref>
 
<ref>JMeter 12-step to Mastery Tutorial: http://www.guru99.com/jmeter-tutorials.html</ref>
 +
<ref>How to run JMeter in Non GUI mode: https://blog.e-zest.com/how-to-run-jmeter-in-non-gui-mode/</ref>
 +
<ref>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</ref>
 +
<ref>'''Distributed Performance Testing With Maven JMeter and Jenkins: http://dzone.com/articles/distributed-performance'''</ref>
 
<ref>Recording Test Performance (history) with Jenkins: https://dzone.com/articles/recording-test-performance (store historical performance to generate graphs over time)</ref>
 
<ref>Recording Test Performance (history) with Jenkins: https://dzone.com/articles/recording-test-performance (store historical performance to generate graphs over time)</ref>
 
<ref>'''Integrating Selenium with JMeter for Load Testing: http://www.anzaan.com/2012/07/integrating-selenium-with-jmeter-for-application-load-testing/'''</ref>
 
<ref>'''Integrating Selenium with JMeter for Load Testing: http://www.anzaan.com/2012/07/integrating-selenium-with-jmeter-for-application-load-testing/'''</ref>
 
<ref>Selenium Integration with JMeter: https://testxpress.wordpress.com/2012/09/16/selenium-integration-with-jmeter/</ref>
 
<ref>Selenium Integration with JMeter: https://testxpress.wordpress.com/2012/09/16/selenium-integration-with-jmeter/</ref>
 
<ref>Running Selenium scripts with JMeter: http://stackoverflow.com/questions/7817498/running-selenium-scripts-with-jmeter</ref>
 
<ref>Running Selenium scripts with JMeter: http://stackoverflow.com/questions/7817498/running-selenium-scripts-with-jmeter</ref>
 +
<ref>Selenium vs. JMeter -- Which to Choose and When: https://dzone.com/articles/selenium-vs-jmeter-which-one-should-you-choose-and</ref>
 +
<ref>Build JMeter Test Plan: https://www.toolsqa.com/jmeter/build-jmeter-test-plan/</ref>
 
<ref>How to handle windows popups using JMeter?: http://stackoverflow.com/questions/36907636/how-to-handle-windows-popups-using-jmeter</ref>
 
<ref>How to handle windows popups using JMeter?: http://stackoverflow.com/questions/36907636/how-to-handle-windows-popups-using-jmeter</ref>
<ref>'''How to Use HTTP Basic Authentication in JMeter''': https://www.blazemeter.com/blog/how-use-http-basic-authentication-jmeter</ref>
+
<ref>Workbench section not showing in apache jmeter: https://stackoverflow.com/questions/48780603/workbench-section-not-showing-in-apache-jmeter</ref>
 
<ref>JMeter Listeners: http://jmeter.apache.org/usermanual/listeners.html#defaults</ref>
 
<ref>JMeter Listeners: http://jmeter.apache.org/usermanual/listeners.html#defaults</ref>
 
<ref>JMeter Listeners -- Part I - Listeners with Basic Displays: https://www.blazemeter.com/blog/jmeter-listeners-part-1-basic-display-formats</ref>
 
<ref>JMeter Listeners -- Part I - Listeners with Basic Displays: https://www.blazemeter.com/blog/jmeter-listeners-part-1-basic-display-formats</ref>
 
<ref>JMeter Listeners -- Part II - Listeners That Aggregate Data Samples: </ref>
 
<ref>JMeter Listeners -- Part II - Listeners That Aggregate Data Samples: </ref>
 
<ref>JMeter Listeners -- Part III - Listeners That Calculate Distribution Metrics: https://dzone.com/articles/jmeter-listeners-part-3-listeners-that-calculate-d</ref>
 
<ref>JMeter Listeners -- Part III - Listeners That Calculate Distribution Metrics: https://dzone.com/articles/jmeter-listeners-part-3-listeners-that-calculate-d</ref>
 +
<ref>JMeter Capturing Full Output: https://www.redline13.com/blog/2019/08/jmeter-capturing-full-output-2/</ref>
 
<ref>MySQL Database and JMeter -- How to Test Your Connection: https://dzone.com/articles/mysql-database-and-jmeter-how-to-test-your-connect</ref>
 
<ref>MySQL Database and JMeter -- How to Test Your Connection: https://dzone.com/articles/mysql-database-and-jmeter-how-to-test-your-connect</ref>
 
<ref>Using JMeter for Performance Testing HLS Video Delivery: http://info.blazemeter.com/thank-you-using-jmeter-performance-testing-hls-video-delivery-0</ref>
 
<ref>Using JMeter for Performance Testing HLS Video Delivery: http://info.blazemeter.com/thank-you-using-jmeter-performance-testing-hls-video-delivery-0</ref>
Line 887: Line 1,538:
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>How to Load Test Async Requests with JMeter: https://www.blazemeter.com/blog/how-to-load-test-async-requests-with-jmeter</ref>
 
<ref>How to Load Test Async Requests with JMeter: https://www.blazemeter.com/blog/how-to-load-test-async-requests-with-jmeter</ref>
<ref>How to Load Test OpenId Secured Websites: https://www.blazemeter.com/blog/how-load-test-openid-secured-websites</ref>
+
<ref>How to Load Test OpenID Secured Websites: https://www.blazemeter.com/blog/how-load-test-openid-secured-websites</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 
<ref>JMeter Plugins: https://jmeter-plugins.org/</ref>
 
<ref>JMeter Plugins: https://jmeter-plugins.org/</ref>
 
<ref>How to Create a Local Repository of JMeter Plugins: https://dzone.com/articles/how-to-create-a-local-repository-of-jmeter-plugins</ref>
 
<ref>How to Create a Local Repository of JMeter Plugins: https://dzone.com/articles/how-to-create-a-local-repository-of-jmeter-plugins</ref>
 
<ref>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</ref>
 
<ref>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</ref>
 +
<ref>Make Use of Docker with JMeter (locally) - Learn How: https://www.blazemeter.com/blog/make-use-of-docker-with-jmeter-learn-how</ref>
 
<ref>Running JMeter with Docker in the Cloud: https://www.blazemeter.com/blog/running-jmeter-with-docker-in-the-cloud</ref>
 
<ref>Running JMeter with Docker in the Cloud: https://www.blazemeter.com/blog/running-jmeter-with-docker-in-the-cloud</ref>
 
<ref>RTMP Performance Testing with JMeter -- Learn How: https://www.blazemeter.com/blog/rtmp-performance-testing-with-jmeter-learn-how</ref>
 
<ref>RTMP Performance Testing with JMeter -- Learn How: https://www.blazemeter.com/blog/rtmp-performance-testing-with-jmeter-learn-how</ref>
Line 906: Line 1,558:
 
<ref>'''What’s New in Apache JMeter 5.0?''': https://blog.e-zest.com/whats-new-in-apache-jmeter-5.0</ref>
 
<ref>'''What’s New in Apache JMeter 5.0?''': https://blog.e-zest.com/whats-new-in-apache-jmeter-5.0</ref>
 
<ref>Stress testing with JMeter: https://geoserver.geo-solutions.it/edu/en/enterprise/jmeter.html</ref>
 
<ref>Stress testing with JMeter: https://geoserver.geo-solutions.it/edu/en/enterprise/jmeter.html</ref>
 +
<ref>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</ref>
 +
<ref>JMeter - Browser recording via "HTTPS/Proxy Recorder": https://www.blazemeter.com/jmeter-training/jmeter-browser-recording</ref>
 +
<ref>Recording a user session with the proxy: https://guide.blazemeter.com/hc/en-us/articles/206733979-Recording-a-user-session-with-the-proxy</ref>
 +
<ref>How to Make Performance Testing Simple with JMeter & BlazeMeter (OVERVIEW): https://www.youtube.com/watch?v=yT0ULpRgZMI</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>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</ref>
 +
<ref>'''How to Use HTTP Basic Authentication in JMeter''': https://www.blazemeter.com/blog/how-use-http-basic-authentication-jmeter | [https://guide.blazemeter.com/hc/en-us/articles/207421705-How-to-use-JMeter-for-Login-Authentication VIDEO]</ref>
 +
<ref>JMeter Basic Authentication Explained: https://octoperf.com/blog/2018/04/24/jmeter-basic-authentication/</ref>
 +
<ref>How to Run Performance Tests on OAuth Secured Apps with JMeter: https://www.blazemeter.com/blog/how-run-performance-tests-oauth-secured-apps-jmeter</ref>
 +
<ref>How to Load Test Async Requests with JMeter: https://www.blazemeter.com/blog/how-to-load-test-async-requests-with-jmeter</ref>
 +
<ref>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</ref>
 +
<ref>JMeter Constant Throughput Timer: https://performanceengineeringsite.wordpress.com/2018/04/21/constant-throughput-timer/</ref>
 +
<ref>Performance Testing of Event-Driven Microservices: https://medium.com/capital-one-tech/performance-testing-of-event-driven-microservices-f5de74305985</ref>
 +
<ref>Implementing Data Driven Testing Using Google Sheets: https://www.blazemeter.com/blog/implementing-data-driven-testing-using-google-sheets</ref>
 +
<ref>The JMeter Access Log Sampler - A Guide: https://www.blazemeter.com/blog/the-jmeter-access-log-sampler-a-guide</ref>
 +
<ref>How to Use the Composite Graph Plugin in JMeter: https://www.blazemeter.com/blog/how-to-use-the-composite-graph-plugin-in-jmeter</ref>
 +
<ref>'''QA -- Performance Test Plan using JMeter: https://github.com/department-of-veterans-affairs/ascent-sample/wiki/QA-:-Performance-Test-Plan-using-JMeter'''</ref>
 +
<ref>JMeter Properties -- Configurable Test Plans: https://octoperf.com/blog/2019/01/14/flexible-test-plans/</ref>
 +
<ref>JMeter Dashboard and Other Cool JMeter Improvements in RedLine13: https://www.redline13.com/blog/2019/06/jmeter-dashboard/</ref>
 +
<ref>JMeter Testing Multiple Random File Uploads: https://www.redline13.com/blog/2019/09/jmeter-multiple-random-file-uploads/</ref>
 +
<ref>JMeter – How To Create Reusable & Modular Test Scripts: www.vinsguru.com/jmeter-modularizing-test-scripts/</ref>
 +
<ref>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/</ref>
 +
<ref>JMeter’s Distributed Testing – JMeter Tutorials Series Day 10: https://www.softwaretestingclass.com/jmeters-distributed-testing-jmeter-tutorials-series-day-10/</ref>
 +
<ref>JMeter Parameterization -- The Complete Guide: https://dzone.com/articles/jmeter-parameterization-the-complete-guide</ref>
 +
<ref>JMeter – How To Run Multiple Thread Groups in Multiple Test Environments through properties & parameterization: https://www.vinsguru.com/jmeter-manage-test-plan/</ref>
 +
<ref>JMeter Performance and Load Testing: https://dzone.com/articles/jmeter-performance-and-load-testing</ref>
 +
<ref>How to Test SOAP Web Services With JMeter: https://dzone.com/articles/how-to-test-soap-services-with-jmeter</ref>
 +
<ref>Performance Test Strategy for Jenkins Pipeline (Groovy DSL) - Continuous Performance Testing: https://octoperf.com/blog/2019/03/21/performance-test-strategy/</ref>
 +
<ref>JMeter – Continuous Performance Testing – JMeter + ANT + Jenkins Integration – Part 2: http://www.testautomationguru.com/jmeter-continuous-performance-testing-part2/</ref>
 +
<ref>'''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'''</ref>
 +
<ref>How to Load Test AJAX/XHR Enabled Sites With JMeter: https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter/</ref>
 +
<ref>Authentication and load testing using JMeter: https://sqa.stackexchange.com/questions/30979/authentication-and-load-testing-using-jmeter</ref>
 +
<ref>JMeter load testing in SPA: https://stackoverflow.com/questions/55941735/jmeter-load-testing-in-spa</ref>
 +
<ref>'''JMeter Tutorials -- Test Better, Build Better (ROUNDUP)''': https://dzone.com/articles/jmeter-tutorial-1</ref>
 +
<ref>How to Generate Jmeter Report Dashboard: https://learn-jmeter.blogspot.com/2016/10/how-to-generate-jmeter-report-dashboard.html</ref>
 +
<ref>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")</ref>
 +
<ref>'''JMeter - Setting up SSL: http://jmeter.apache.org/usermanual/remote-test.html#setup_ssl'''</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 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 ===
  
 
* Skipfish - web application security scanner: https://code.google.com/p/skipfish/ | [https://code.google.com/p/skipfish/wiki/SkipfishDoc DOCS] (released as [[OSS]] site reconnaisance tool by [[Google]])<ref>Meet skipfish, our automated web security scanner: http://googleonlinesecurity.blogspot.ca/2010/03/meet-skipfish-our-automated-web.html</ref><ref>Akamai Security Advisory - Skipfish Web App Scanner: http://www.akamai.com/dl/akamai/Akamai-Security-Advisory-Skipfish-Application-Scanner.pdf</ref><ref>Attackers Use Skipfish to Target Financial Sites: http://blogs.akamai.com/2014/01/attackers-use-skipfish-to-target-financial-sites.html</ref><ref>Google releases Skipfish web-security scanner: http://www.zdnet.com/article/google-releases-skipfish-web-security-scanner-3040088391/</ref>
 
* Skipfish - web application security scanner: https://code.google.com/p/skipfish/ | [https://code.google.com/p/skipfish/wiki/SkipfishDoc DOCS] (released as [[OSS]] site reconnaisance tool by [[Google]])<ref>Meet skipfish, our automated web security scanner: http://googleonlinesecurity.blogspot.ca/2010/03/meet-skipfish-our-automated-web.html</ref><ref>Akamai Security Advisory - Skipfish Web App Scanner: http://www.akamai.com/dl/akamai/Akamai-Security-Advisory-Skipfish-Application-Scanner.pdf</ref><ref>Attackers Use Skipfish to Target Financial Sites: http://blogs.akamai.com/2014/01/attackers-use-skipfish-to-target-financial-sites.html</ref><ref>Google releases Skipfish web-security scanner: http://www.zdnet.com/article/google-releases-skipfish-web-security-scanner-3040088391/</ref>
 +
* OWASP Zap Java client: http://github.com/continuumsecurity/zap-java-api<ref>BDD-Security (Continuum Security Automation): http://iriusrisk.com/open-source/</ref>
 +
  
 
== Resources ==
 
== Resources ==
Line 916: Line 1,615:
 
* Test Pyramid: https://martinfowler.com/bliki/TestPyramid.html<ref>Agile in a Nutshell -- The Testing Pyramid: http://www.agilenutshell.com/episodes/41-testing-pyramid</ref><ref>The Mobile Test Pyramid: https://dojo.ministryoftesting.com/dojo/lessons/the-mobile-test-pyramid</ref>
 
* Test Pyramid: https://martinfowler.com/bliki/TestPyramid.html<ref>Agile in a Nutshell -- The Testing Pyramid: http://www.agilenutshell.com/episodes/41-testing-pyramid</ref><ref>The Mobile Test Pyramid: https://dojo.ministryoftesting.com/dojo/lessons/the-mobile-test-pyramid</ref>
 
* The Practical Test Pyramid: https://martinfowler.com/articles/practical-test-pyramid.html<ref>Inverting The Testing Pyramid: https://www.slideshare.net/nashjain/inverting-the-testing-pyramid</ref><ref>The Forgotten Layer of the Test Automation Pyramid: https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid</ref><ref>Agile-Friendly Test Automation Tools/Frameworks: http://testobsessed.com/2008/04/agile-friendly-test-automation-toolsframeworks/</ref><ref>The Agile Testing Pyramid: http://www.agilecoachjournal.com/2014-01-28/the-agile-testing-pyramid</ref>
 
* The Practical Test Pyramid: https://martinfowler.com/articles/practical-test-pyramid.html<ref>Inverting The Testing Pyramid: https://www.slideshare.net/nashjain/inverting-the-testing-pyramid</ref><ref>The Forgotten Layer of the Test Automation Pyramid: https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid</ref><ref>Agile-Friendly Test Automation Tools/Frameworks: http://testobsessed.com/2008/04/agile-friendly-test-automation-toolsframeworks/</ref><ref>The Agile Testing Pyramid: http://www.agilecoachjournal.com/2014-01-28/the-agile-testing-pyramid</ref>
* Test Driven Development (TDD): http://wiki.c2.com/?TestDrivenDevelopment
+
* The Manual Regression Testing Manifesto: https://www.infoq.com/news/2018/12/manual-regression-testing
* 12 Cross-Browser Testing Tools: http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-tools/
+
 
* The Joel Test -- 12 Steps to Better Code (measure the quality of a Development Team): http://www.joelonsoftware.com/articles/fog0000000043.html
 
* The Joel Test -- 12 Steps to Better Code (measure the quality of a Development Team): http://www.joelonsoftware.com/articles/fog0000000043.html
 +
* How I Test (PRESENTATION): http://railscasts.com/episodes/275-how-i-test
 +
* 12 Cross-Browser Testing Tools: http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-tools/
 +
* Test Driven Development (TDD): http://wiki.c2.com/?TestDrivenDevelopment
 +
* Gartner -- Four Steps to Adopt Open-Source Software as Part of Your Test Automation Stack: https://www.gartner.com/doc/reprints?id=1-1OFAUUNQ&ct=190826&st=sb
 +
* '''64 Test Metrics For Measuring Progress, Quality, Productivity & More!: https://www.qasymphony.com/blog/64-test-metrics/'''
 
* Short, Self Contained, Correct (Compilable), Example: http://sscce.org
 
* Short, Self Contained, Correct (Compilable), Example: http://sscce.org
 
* Types of software Testing: http://www.softwaretestinghelp.com/types-of-software-testing/
 
* Types of software Testing: http://www.softwaretestinghelp.com/types-of-software-testing/
Line 935: Line 1,638:
 
* Testing Podcast -- Round-up of leading Audio podcasts on Software Testing: https://testingpodcast.com/
 
* Testing Podcast -- Round-up of leading Audio podcasts on Software Testing: https://testingpodcast.com/
 
* UI Test Automation Playground: http://uitestingplayground.com<ref>What are examples of automated testing?:  http://www.inflectra.com/Ideas/Entry/what-are-examples-of-automated-testing-688.aspx</ref><ref>Introducing the Web UI Test Automation Playground: http://www.inflectra.com/Ideas/Entry/introducing-the-web-ui-test-automation-playground-689.aspx</ref>
 
* UI Test Automation Playground: http://uitestingplayground.com<ref>What are examples of automated testing?:  http://www.inflectra.com/Ideas/Entry/what-are-examples-of-automated-testing-688.aspx</ref><ref>Introducing the Web UI Test Automation Playground: http://www.inflectra.com/Ideas/Entry/introducing-the-web-ui-test-automation-playground-689.aspx</ref>
 +
* Testing JavaScript Applications (BOOK): https://www.manning.com/books/testing-javascript-applications | [https://www.manning.com/downloads/2150 SRC]
 +
* '''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)
  
  
Line 993: Line 1,699:
 
* How to Convert SoapUI XML to JMeter JMX: https://dzone.com/articles/how-to-convert-soapui-xml-to-jmeter-jmx
 
* How to Convert SoapUI XML to JMeter JMX: https://dzone.com/articles/how-to-convert-soapui-xml-to-jmeter-jmx
 
* SpiraTeam, the Simple Alternative to HP ALM: https://www.inflectra.com/SpiraTeam/Highlights/HP-ALM-vs-SpiraTeam.aspx
 
* SpiraTeam, the Simple Alternative to HP ALM: https://www.inflectra.com/SpiraTeam/Highlights/HP-ALM-vs-SpiraTeam.aspx
* Getting Node.js Testing and TDD Right: http://blog.codeship.com/getting-node-js-testing-and-tdd-right/
+
* Getting Node.js Testing & TDD Right: http://blog.codeship.com/getting-node-js-testing-and-tdd-right/
 +
* Learning How to Set Up Automated, Cross-browser JavaScript Unit Testing locally or on the cloud (Sauce Labs): https://philipwalton.com/articles/learning-how-to-set-up-automated-cross-browser-javascript-unit-testing/
  
  
Line 1,017: Line 1,724:
 
* [[wikipedia: Quality control]]
 
* [[wikipedia: Quality control]]
 
* [[wikipedia: Six Sigma]] (branded methodology & certification label for Software Quality & Testing)
 
* [[wikipedia: Six Sigma]] (branded methodology & certification label for Software Quality & Testing)
 +
* [[wikipedia: Total quality management]] (commonly abberviated as ''TQM'')
 
* [[wikipedia: Verification and validation]]
 
* [[wikipedia: Verification and validation]]
 
* [[wikipedia: Formal verification]]
 
* [[wikipedia: Formal verification]]
* [[wikipedia: Proof of concept]] (commonly abbreviated ''PoC'')
+
* [[wikipedia: Proof of concept]] (commonly abbreviated as ''PoC'')
 
* [[wikipedia: Software release life cycle]]
 
* [[wikipedia: Software release life cycle]]
 
* [[wikipedia: Independent test organization]] (preference to have a neutral, non-invested 3rd party to do all or specific - i.e. Performance - phases of testing of a product/service/system)  
 
* [[wikipedia: Independent test organization]] (preference to have a neutral, non-invested 3rd party to do all or specific - i.e. Performance - phases of testing of a product/service/system)  
 
* [[wikipedia: Seven Basic Tools of Quality]]
 
* [[wikipedia: Seven Basic Tools of Quality]]
 +
* [[wikipedia: Zero Defects]] (commonly abbreviated as ''ZD'', frequently aimed at but rarely hit, highly criticized by Deming as distracting from the "true goals" of the organization and being a barrier to Continuous Improvement)<ref>'''Deming institute - Eliminate Slogans, Exhortations and Targets: https://deming.org/eliminate-slogans-exhortations-and-targets/''' (a criticism of "Zero Defects" mentality)</ref><ref>What is Zero Defects?: https://www.toolshero.com/quality-management/zero-defects/</ref><ref>SixSigma -- The Concept of Zero Defects in Quality Management: https://www.simplilearn.com/concept-of-zero-defects-quality-management-article</ref><ref>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/</ref><ref>Pros & Cons of Zero Defects: https://www.shmula.com/25038-2/25038/</ref>
 +
* [[wikipedia: W._Edwards_Deming#Key_principles]] (Deming's "14 key principles" that informed "TQM", while point 11 rebukes & differentiations from "ZD")
 +
* [[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>
 +
* 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,065: Line 1,779:
 
* 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
 
* 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
 
* Xray for Jira - How to automate your QA process: https://www.slideshare.net/XpandIT/xray-for-jira-how-to-automate-your-qa-process
 
* Xray for Jira - How to automate your QA process: https://www.slideshare.net/XpandIT/xray-for-jira-how-to-automate-your-qa-process
* 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
+
 
* The Cost of Fixing Bugs in Production: https://www.genrocket.com/the-cost-of-fixing-bugs-in-production/
+
* Consortium for IT Software Quality (CISQ) -- The Cost of PoorQuality Softwarein the US (2018 Report): https: http://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
 +
* National Institute of Standards & Technology (NIST) -- The Economic Impacts of Inadequate Infrastructure for Software Tseting: https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf
 
* Quantifying The Cost of Fixing vs Preventing Bugs: http://www.newelectronics.co.uk/article-images/65147/Vector_PDF.pdf
 
* Quantifying The Cost of Fixing vs Preventing Bugs: http://www.newelectronics.co.uk/article-images/65147/Vector_PDF.pdf
* The True Cost of a Software Bug -- Part I: http://blog.celerity.com/the-true-cost-of-a-software-bug
 
 
* Examining the Agile Cost of Change Curve: http://www.agilemodeling.com/essays/costOfChange.htm
 
* Examining the Agile Cost of Change Curve: http://www.agilemodeling.com/essays/costOfChange.htm
 +
* The True Cost of a Software Bug -- Part I: http://blog.celerity.com/the-true-cost-of-a-software-bug
 +
<ref>The Cost of Fixing Bugs in Production: https://www.genrocket.com/the-cost-of-fixing-bugs-in-production/</ref>
 +
<ref>11 of the most costly software errors in history: https://raygun.com/blog/costly-software-errors-history/</ref>
 +
<ref>Financial Cost of Software Bugs: https://medium.com/@ryancohane/financial-cost-of-software-bugs-51b4d193f107</ref>
 +
<ref>Software Errors Cost U.S. Economy $59.5 Billion Annually: http://www.abeacha.com/NIST_press_release_bugs_cost.htm</ref>
 +
<ref>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/</ref>
 +
<ref>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</ref>
 +
 
* Why You Should Stop Testing Every Class NOW: https://dzone.com/articles/why-you-should-stop-now-testing-every-class
 
* Why You Should Stop Testing Every Class NOW: https://dzone.com/articles/why-you-should-stop-now-testing-every-class
 
* What Is Refactoring? (and Testing's role within it): https://dzone.com/articles/what-is-refactoring
 
* What Is Refactoring? (and Testing's role within it): https://dzone.com/articles/what-is-refactoring
Line 1,077: Line 1,799:
 
* The Black Swan of Software Testing–An experience report on exploratory testing: http://www.uploads.pnsqc.org/2012/slides/t-62_Yusuf_slides.pdf
 
* The Black Swan of Software Testing–An experience report on exploratory testing: http://www.uploads.pnsqc.org/2012/slides/t-62_Yusuf_slides.pdf
 
* Testing in the ”Black Swan” domain: http://lets-test.com/wp-content/uploads/2012/05/Testing-in-the-Black-Swan-Domain-Lets-Test-2.pdf<ref>Software testing black swan bites cause pain: https://testertested.blogspot.com/2010/11/software-testing-black-swan-bites-cause.html</ref>
 
* Testing in the ”Black Swan” domain: http://lets-test.com/wp-content/uploads/2012/05/Testing-in-the-Black-Swan-Domain-Lets-Test-2.pdf<ref>Software testing black swan bites cause pain: https://testertested.blogspot.com/2010/11/software-testing-black-swan-bites-cause.html</ref>
* What not to test in your two-week sprint -- Test smarter, not harder: https://techbeacon.com/what-not-test-your-two-week-sprint (risk-based testing approaches: JIT testing, Pareto 80/20 testing, All-Pairs logical combination testing, Automation testing)
+
* Tests won’t make your software correct: https://codewithoutrules.com/2018/12/12/tests-are-not-enough/
 +
* How Parallel Testing Instantly Improves Your Workflow: https://dzone.com/articles/how-parallel-testing-instantly-improves-your-work
 +
* '''What not to test in your two-week sprint -- Test smarter, not harder: https://techbeacon.com/what-not-test-your-two-week-sprint''' (risk-based testing approaches: JIT testing, Pareto 80/20 testing, All-Pairs logical combination testing, Automation testing)
 +
* Test Automation in 2019 -- Glimpse of the Near Future From the Experts Who Shape It: https://applitools.com/blog/test-automation-in-2019-industry-leaders-expert-panel
 +
* Quality Assurance, Quality Control and Testing — the Basics of Software Quality Management: https://www.altexsoft.com/whitepapers/quality-assurance-quality-control-and-testing-the-basics-of-software-quality-management/
 +
* CA Technologies to Acquire BlazeMeter to Drive Speed and Quality of Application Testing Practices: https://www.ca.com/us/company/newsroom/press-releases/2016/ca-technologies-to-acquire-blazemeter-to-drive-speed-and-quality-of-application-testing-practices.html<ref>CA Technologies buys BlazeMeter: https://www.zdnet.com/article/ca-technologies-buys-blazemeter/</ref>
 +
* Broadcom to Acquire CA Technologies for $18.9 Billion in Cash: https://www.ca.com/us/company/newsroom/press-releases/2018/broadcom-to-acquire-ca-technologies-for-18-9-billion-in-cash.html
 +
<ref>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</ref><ref>Weirdest. Acquisition. Ever. Broadcom buys CA Technologies: https://www.theregister.co.uk/2018/07/12/broadcom_ca_technologies/</ref>
 +
* Your Guide to Automated Testing (round-up article 2019): https://dzone.com/articles/automated-testing-cluster
 +
* You Don't Hate Mocks; You Hate Side-Effects: https://blog.thecodewhisperer.com/permalink/you-dont-hate-mocks-you-hate-side-effects
 +
* Test Environment – Getting the Test Environment Strategy Right: https://huddle.eurostarsoftwaretesting.com/test-environment-still-a-challenge-2/
 +
* 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
 +
* 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
 +
 
  
 
== References ==
 
== References ==
Line 1,085: Line 1,828:
 
== See Also ==
 
== See Also ==
  
[[Ant]] | [[Maven]] | [[CI]]/[[CD]] | [[SCM]] | [[Logging]] | [[Monitoring]] | [[Scheduling]] | [[Productivity]] | [[Security]]
+
[[Agile]] | [[CI]]/[[CD]] | [[SCM]] | [[Ant]] | [[Maven]] | [[Logging]] | [[Monitoring]] | [[Scheduling]] | [[Productivity]] | [[Security]]

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