Last active
September 24, 2020 15:03
-
-
Save mcintyre321/08b086153f17471b08ba to your computer and use it in GitHub Desktop.
Revisions
-
mcintyre321 revised this gist
Sep 24, 2020 . 1 changed file with 0 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,7 +23,6 @@ Development methodologies - Gherkin - a syntax for writing human readable tests (Given, When, Then). - inside-out tests - where you start tests anywhere, often testing internal types and classes - outside-in tests - where you only test via the public interface of the system under test Properties of tests -
mcintyre321 revised this gist
Sep 24, 2020 . 1 changed file with 4 additions and 14 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -14,26 +14,16 @@ Uses of tests - Regression test - a test that ensures existing features are working. Actually all acceptance tests - Smoke test - run after releasem, verifies a major feature is working, typically an end to end test Development methodologies - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code0 - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - ATDD (acceptance test driven development) - a bit like BDD, where agreed acceptance criteria, typically written using Gherkin (Given, When, Then) are used to drive the implementation - Gherkin - a syntax for writing human readable tests (Given, When, Then). - inside-out tests - where you start tests anywhere, often testing internal types and classes - outside-in tests - where you only test via the public interface of the system under test - test-per-class - a strict form of inside out testings, where unit corresponds to a single class Properties of tests -
mcintyre321 revised this gist
Aug 7, 2018 . 1 changed file with 5 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -14,25 +14,25 @@ Uses of tests - Regression test - a test that ensures existing features are working. Actually all acceptance tests - Smoke test - run after releasem, verifies a major feature is working, typically an end to end test Descriptive styles - Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) - Classicaly described test - Requirement is expressed using the developers own words and understanding of the requirements - Descriptive method names are often used - often meaning of code is expressed using code constructs - refactoring of codebase can cloud the meaning (e.g. a method name may be renamed to match the code inside it more closely, loosing the original expression of the requirement) Development processes - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code0 - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - ATDD (acceptance test driven development) - a bit like BDD, where agreed acceptance criteria, typically written using Gherkin (Given, When, Then) are used to drive the implementation - Gherkin - a syntax for writing human readable tests (Given, When, Then). Properties of tests @@ -47,7 +47,6 @@ Properties of tests - often related to the particular way that the code has been implemented - can be deleted if it the implementation is refactored or changed so it is no longer relevant - Poorly describerd test - in which it isn't clear what the test is doing or why Verification approaches -
mcintyre321 revised this gist
Aug 7, 2018 . No changes.There are no files selected for viewing
-
mcintyre321 revised this gist
Aug 7, 2018 . 1 changed file with 11 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,16 +1,17 @@ Test scopes - Unit test - an isolated test around a single 'unit' of code, although that can be anything from a method to a class to a series of (related) classes. - Component test - same as a unit test - Isolated test - a test that doesn't do any I/O, i.e. the Ports have been filled with in-memory Adapters - Integration test - a test that interacts with deployed instances of the code and related services, possiby with some Test Doubles (mocked/faked/stubbed etc). - End to End test - a test that entirely interacts with deployed instances using public interfaces - Test-per-class - a convention that there should be one unit test for each class Uses of tests - Development test - a test that was created to aid the process of development (not necessarily TDD) - Acceptance test - a test that demonstrates an acceptance criteria is fulfilled. - Regression test - a test that ensures existing features are working. Actually all acceptance tests - Smoke test - run after releasem, verifies a major feature is working, typically an end to end test Descriptive styles @@ -25,13 +26,12 @@ Descriptive styles - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning Development processes - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code0 - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - ATDD (acceptance test driven development) - a bit like BDD, where agreed acceptance criteria, typically written using Gherkin (Given, When, Then) are used to drive the implementation - Gherkin - a syntax for writing human readable tests (Given, When, Then). @@ -43,9 +43,11 @@ Properties of tests - tests that are bound to a particular implementation of a feature - often break or become obsolete when a feature is refactored - Expendable test (AKA throwaway) - a test which is not tied to an acceptance criteria - often related to the particular way that the code has been implemented - can be deleted if it the implementation is refactored or changed so it is no longer relevant - Poorly describerd test - in which it isn't clear what the test is doing or why - Verification approaches -
mcintyre321 revised this gist
Feb 1, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ Test scopes - Unit test - an isolated test around a single unit via it's public interface (often a class, or a series of related classes) - Component test - same as a unit test - Isolated test - a test that doesn't do any I/O, i.e. the Ports have been filled with in-memory Adapters - Integration test - a test that interacts with deployed instances of the code and related services, possiby with some mocked items - End to End test - a test that entirely interacts with deployed instances -
mcintyre321 revised this gist
Feb 1, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,6 @@ Test scopes - Unit test - an isolated test around a single unit via it's public interface (often a class, or a series of related classes) - Component test - a test that verifies multiple units of source code are working - Isolated test - a test that doesn't do any I/O, i.e. the Ports have been filled with in-memory Adapters - Integration test - a test that interacts with deployed instances of the code and related services, possiby with some mocked items -
mcintyre321 revised this gist
Feb 1, 2018 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -31,8 +31,9 @@ Development processes - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code0 - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - ATDD (acceptance test driven development) - a bit like BDD - Gherkin - a syntax for writing human readable tests (Given, When, Then). Properties of tests -
mcintyre321 revised this gist
Feb 1, 2018 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,9 @@ Test scopes - Unit test - an isolated test around a single unit (usually a class) - Component test - a test that verifies multiple units of source code are working - Isolated test - a test that doesn't do any I/O, i.e. the Ports have been filled with in-memory Adapters - Integration test - a test that interacts with deployed instances of the code and related services, possiby with some mocked items - End to End test - a test that entirely interacts with deployed instances Uses of tests -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -60,4 +60,5 @@ Test code constructs - Stub. A custom implementation which returns canned responses - Mock. An object with programmable responses and can have its responses recorded - Fake. lightweight implementation of the component. e.g. a repo that uses a hashtable under the hood - Cake - something you deserve for reading this far. -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,7 +28,7 @@ Descriptive styles Development processes - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code0 - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - Gherkin - a syntax for writing human readable tests (Given, When, Then) -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -57,7 +57,7 @@ Verification approaches Test code constructs - Test double - a component used in a unit test which acts in stead of a real component e.g. - Stub. A custom implementation which returns canned responses - Mock. An object with programmable responses and can have its responses recorded - Fake. lightweight implementation of the component. e.g. a repo that uses a hashtable under the hood -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -20,7 +20,7 @@ Descriptive styles - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) - Non-behavioural test - a test where is it not clear to a reader what the test is doing in terms of the systems feature set - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -40,7 +40,7 @@ Properties of tests - Coupled tests - tests that are bound to a particular implementation of a feature - often break or become obsolete when a feature is refactored - Expendable test (AKA throwaway) - a test which is not part of the acceptance/regression pack, typically a development test - can be deleted if it becomes hard to maintain or slow - Poorly describerd test - in which it isn't clear what the test is doing or why -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,11 +19,12 @@ Descriptive styles - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) - Non-behavioural test - a test where is it not clear to a reader what the test is doing - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning Development processes - Spike & stabilise - where code is developed and tests written after the fact @@ -42,6 +43,7 @@ Properties of tests - Expendable test - a test which is not part of the acceptance/regression pack, typically a development test - can be deleted if it becomes hard to maintain or slow - Poorly describerd test - in which it isn't clear what the test is doing or why Verification approaches -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 21 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,13 +1,18 @@ Test scopes - Unit test - a test that verifies single units of source code are working - Component test - a test that verifies multiple units of source code are working - Integration test - a test that interacts with deployed instances of the code and related services - End to End test - a test that entirely interacts with deployed instances Uses of tests - Development test - a test that was created to aid the process of development (not necessarily TDD) - Acceptance test - a test that needs to pass in order to determine a new feature is complete - Regression test - a test that ensures existing features are working - Smoke test - run after releasem, verifies a major feature is working, typically an end to end test Descriptive styles - Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit @@ -19,18 +24,26 @@ - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning Development processes - Spike & stabilise - where code is developed and tests written after the fact - TDD - a development process where tests are written before writing code - BDD - a development process where *behavioural* tests are written before writing code, ideally with input from PO/QA - Gherkin - a syntax for writing human readable tests (Given, When, Then) Properties of tests - Fast tests - tests that don't use disk/network calls, or do so sparingly - Slow tests - tests that talk to disk/network/browser and so run slowly - Coupled tests - tests that are bound to a particular implementation of a feature - often break or become obsolete when a feature is refactored - Expendable test - a test which is not part of the acceptance/regression pack, typically a development test - can be deleted if it becomes hard to maintain or slow Verification approaches - Interaction based test (AKA Mockist test) - in which a test functions by verifying execution of methods of the components involved @@ -39,11 +52,10 @@ - State based test (AKA Stateist, classicist) - in which a test functions by verifying values that are set as the result of a test Test code constructs - Test double - a component used in a unit test which acts in stead of a real component e.g. - a Stub. A custom implementation which returns canned responses - a Mock. An object with programmable responses and can have its responses recorded - a lightweight implementation of the component. e.g. a repo that uses a hashtable under the hood -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -22,6 +22,7 @@ - TDD - a development process where unit tests are written before writing code - BDD - a development process where behavioural tests are written before writing code - Gherkin - a syntax for writing human readable tests (Given, When, Then) - Coupled tests -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,12 +19,12 @@ - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning - TDD - a development process where unit tests are written before writing code - BDD - a development process where behavioural tests are written before writing code - Gherkin - a syntax for writing human readable tests (Given, When, Then) - Coupled tests - tests that are bound to a particular implementation of a feature - often break or become obsolete when a feature is refactored -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 7 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,14 +10,14 @@ - Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) - Poorly described test - a test where is it not clear to a reader what the test is doing - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning - TDD - a development process where unit tests are written before writing code - BDD - a development process where behavioural tests are written before writing code -
mcintyre321 revised this gist
Apr 28, 2015 . No changes.There are no files selected for viewing
-
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 0 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,8 +19,6 @@ - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning - TDD - a development process where unit tests are written before writing code - BDD - a development process where behavioural tests are written before writing code -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 0 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,7 +2,6 @@ - Component test - a test that verifies multiple units of source code are working - Integration test - a test that interacts with deployed instances of the code and related services - End to End test - a test that entirely interacts with deployed instances - Development test - a test that was created during the process of development (not necessarily TDD) - Acceptance test - a test that needs to pass in order to determine a new feature is complete - Regression test - a test that ensures existing features are working -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 24 additions and 24 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,3 @@ - Unit test - a test that verifies single units of source code are working - Component test - a test that verifies multiple units of source code are working - Integration test - a test that interacts with deployed instances of the code and related services @@ -11,40 +10,41 @@ - Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) - Poorly described test - a test where is it not clear to a reader what the test is doing - often meaning of code is expressed using code constructs - often refactoring of codebase will cloud the meaning - TDD - a development process where unit tests are written before writing code - BDD - a development process where behavioural tests are written before writing code - Gherkin - a syntax for writing human readable tests (Given, When, Then) - Coupled tests - tests that are bound to a particular implementation of a feature - often break or become obsolete when a feature is refactored - Fast tests - tests that don't use disk/network calls, or do so sparingly - Slow tests - tests that talk to disk/network/browser and so run slowly - Interaction based test (AKA Mockist test) - in which a test functions by verifying execution of methods of the components involved - some places call them behavioural tests, but shouldn't - often tightly coupled to implementation - State based test (AKA Stateist, classicist) - in which a test functions by verifying values that are set as the result of a test - Test double - a component used in a unit test which acts in stead of a real component e.g. - a Stub. A custom implementation which returns canned responses - a Mock. An object with programmable responses and can have its responses recorded - a lightweight implementation of the component. e.g. a repo that uses a hashtable under the hood Expendable test - a test which is not part of the acceptance/regression pack -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 8 additions and 19 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,30 +1,19 @@ - Unit test - a test that verifies single units of source code are working - Component test - a test that verifies multiple units of source code are working - Integration test - a test that interacts with deployed instances of the code and related services - End to End test - a test that entirely interacts with deployed instances - Development test - a test that was created during the process of development (not necessarily TDD) - Acceptance test - a test that needs to pass in order to determine a new feature is complete - Regression test - a test that ensures existing features are working - Smoke test - run after releasem, verifies a major feature is working, typically an end to end test - Poorly described test - meaning of code is expressed using code constructs - refactoring of codebase will cloud the meaning - Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 10 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,15 +1,18 @@ - Unit test - a test that verifies single units of source code are working - Component test - a test that verifies multiple units of source code are working - Integration test - a test that interacts with deployed instances of the code and related services - End to End test - a test that entirely interacts with deployed instances Development test - a test that was created during the process of development (not necessarily TDD) Acceptance test - a test that needs to pass in order to determine a new feature is complete Regression test - a test that ensures existing features are working. - usually built from acceptance tests Smoke test - verifies a major feature is working, run after release - often a subset of the regresion pack @@ -20,13 +23,14 @@ Smoke test Poorly described test - meaning of code is expressed using code constructs - refactoring of codebase will cloud the meaning Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) TDD - a development process where unit tests are written before writing code BDD - a development process where behavioural tests are written before writing code -
mcintyre321 revised this gist
Apr 28, 2015 . 1 changed file with 1 addition and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,4 @@ Unit test - a test that verifies single units of source code are working Component test - a test that verifies multiple units of source code are working Integration test - a test that interacts with deployed instances of the code and related services @@ -17,10 +16,10 @@ Smoke test - typically end to end tests Poorly described test - meaning of code is expressed using code constructs - refactoring of codebase will cloud the meaning Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests -
mcintyre321 created this gist
Apr 28, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,59 @@ Unit test - a test that verifies single units of source code are working Component test - a test that verifies multiple units of source code are working Integration test - a test that interacts with deployed instances of the code and related services End to End test - a test that entirely interacts with deployed instances Acceptance test - a test that needs to pass in order to determine a new feature is complete Regression test - a test that ensures existing features are working. - usually built from acceptance tests Smoke test - verifies a major feature is working, run after release - often a subset of the regresion pack - typically end to end tests Poorly described test - meaning of code is expressed using code constructs - refactoring of codebase will cloud the meaning Behavioural test (BDD terminology) - a test that is described in terms of a terms of desired behavior of the unit - not to be confused with Mockist tests - typically human (product owner/qa) readable - should not become obsolete when an implementation is altered (although may require refactoring) End to End test - a test that executes entirely against deployed instances TDD - a development process where unit tests are written before writing code BDD - a development process where behavioural tests are written before writing code Gherkin - a syntax for writing human readable tests (Given, When, Then) Coupled tests - tests that are bound to a particular implementation of a feature - break or become obsolete when a feature is refactored Fast tests - tests that don't use disk/network calls, or do so sparingly Slow tests - tests that talk to disk/network/browser and so run slowly Interaction based test (AKA Mockist test) - in which a test functions by verifying execution of methods of the components involved - some places call them behavioural tests, but shouldn't - often tightly coupled to implementation State based test (AKA Stateist, classicist) - in which a test functions by verifying values that are set as the result of a test Test double - a component used in a unit test which acts in stead of a real component e.g. - a Stub. A custom implementation which returns canned responses - a Mock. An object with programmable responses and can have its responses recorded - a lightweight implementation of the component. e.g. a repo that uses a hashtable under the hood Expendable test - a test which is not part of the acceptance/regression pack - can be deleted if it becomes hard to maintain or slow