Testing: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
=External=
=External=
 
* [https://www.amazon.com/xUnit-Test-Patterns-Refactoring-Addison-Wesley-ebook/dp/B004X1D36K/ref=sr_1_3 xUnit Test Patterns] by Gerard Meszaros.
* Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems by Ding Yuan, Yu Luo https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
* O'Reilly The Art of Software Testing http://shop.oreilly.com/product/9781118031964.do
* Mutate Your Code and Reveal Your True Test Coverage http://www.infoq.com/presentations/code-mutate-test
* Mutate Your Code and Reveal Your True Test Coverage http://www.infoq.com/presentations/code-mutate-test
* http://cafe.elharo.com/testing/harolds-corollary-to-knuths-law/
* http://cafe.elharo.com/testing/harolds-corollary-to-knuths-law/
* Christian Nelson's SDForum JavaSIG presentation, Oct 6, 2009 [[File:Web Application Testing - Christian Nelson.pdf|Web Application Testing - Christian Nelson]]. Companion source code available at http://svn.carbonfive.com/public/christian/gearlist/branches/sdforum/. README file available at http://svn.carbonfive.com/public/christian/gearlist/branches/sdforum/docs/readme.txt.
* Christian Nelson's SDForum JavaSIG presentation, Oct 6, 2009 [[File:Web Application Testing - Christian Nelson.pdf|Web Application Testing - Christian Nelson]]. Companion source code available at http://svn.carbonfive.com/public/christian/gearlist/branches/sdforum/. README file available at http://svn.carbonfive.com/public/christian/gearlist/branches/sdforum/docs/readme.txt.
* The Art of Software Testing at O'Reilly http://shop.oreilly.com/product/9781118031964.do
* Testing the Endpoints of Your REST APIs https://www.infoq.com/presentations/rest-api-testing-postman
* Effective Test Automation Approaches for Modern CI/CD Pipelines https://www.infoq.com/articles/test-automation-ci-cd/


=Internal=
=Internal=
 
* [[Software_Engineering#Testing|Software Engineering]]
* [[JUnit]]
* [[JUnit]]
* [[TestNG]]
* [[TestNG]]
* [[Mockito]]
* [[PowerMock]]


=Fundamentals and Conventions=
=Fundamentals and Conventions=
Line 16: Line 21:
* A <tt>...TestBase</tt> is an abstract class that has a protected abstract <tt>get...ToTest()</tt> method.
* A <tt>...TestBase</tt> is an abstract class that has a protected abstract <tt>get...ToTest()</tt> method.
* If in developing a <tt>SomethingBase</tt> we want to test the base behavior at its own layer, then conventionally we should use a <tt>SomethingTestBase</tt> (and not a <tt>SomethingBaseTestBase</tt>).
* If in developing a <tt>SomethingBase</tt> we want to test the base behavior at its own layer, then conventionally we should use a <tt>SomethingTestBase</tt> (and not a <tt>SomethingBaseTestBase</tt>).
=<span id='Mock'></span><span id='Stub'></span>Concepts=
{{Internal|Software Testing Concepts|Testing Concepts}}
=To Process=
* Lessons Learned in Software Testing: A Context-Driven Approach https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
* https://medium.com/@copyconstruct/testing-microservices-the-sane-way-9bb31d158c16
* Five Factor Testing https://www.devmynd.com/blog/five-factor-testing/
* https://testing.googleblog.com/2013/07/testing-on-toilet-know-your-test-doubles.html
* Property-based Testing http://propertesting.com
* https://martinfowler.com/articles/practical-test-pyramid.html
* Contract testing: https://docs.pact.io. Also see [[Consumer-Driven Contract]].

Latest revision as of 23:40, 2 July 2023

External

Internal

Fundamentals and Conventions

  • Access classes are BAD. Write test classes to belong the same package as the tested classes, this way package private functionality can be tested even if the test classes are physically in a different location.
  • A ...TestBase is an abstract class that has a protected abstract get...ToTest() method.
  • If in developing a SomethingBase we want to test the base behavior at its own layer, then conventionally we should use a SomethingTestBase (and not a SomethingBaseTestBase).

Concepts

Testing Concepts

To Process