Thursday, July 7, 2016

Hawthorne Effect

While reading about system analyst roles and responsibilities, I came across the term Hawthorne effect octafx login demo .

Hawthorne effect is related to human behavior and can be described as 'people tend to act differently if they know that they are being observed'.

In relation to software engineering, its system analyst roles to identify and gather information regarding a system.The System can be new or existing.

There are multiple methods from which system analyst can collect information about a system like an interview, questionnaire, observation etc.

In the case of observation, Hawthorne effect comes as a side effect of this approach. As motivation of the system analyst may not be fulfilled if people act differently for the time period of observation.

Saturday, July 2, 2016

Testing Pyramid

While searching theory behind integration tests, I landed into testing pyramid concept and found it good to be share. 

Basically, tests are used as a feedback loop. They are responsible to inform developer whether the application is working or not .

With respect to the testing pyramid, three types of test cases are described.

  • Unit test cases are focused on the single unit of responsibility at a time. All the dependencies of that single unit will be mocked.
  • Integration tests are to ensure that more than one unit working together should work fine without mocking other units.
  • End to end tests or acceptance tests is used to test the application by simulating end user scenarios.
Testing Pyramid

In testing pyramid concept, it always focuses on to write more and more unit test case and business should be tested in form smallest unit.

Integration tests to test integration between units without mocking the units. It will make sure communication between units is working fine as the business logic already tested in unit tests.

With testing pyramid concept, it always discourages to write more end to end test cases as they are slow to run as running against a live application.
Also, it’s not easy to identify which unit is failing. Single change / enhancement in one feature may lead to failure of most of the end to end test like if login feature is changed in an application then the further features test will start failing
Only advantages of the end to end tests are they are able to simulate end user behavior.

Also from one of google blog, it is also suggested to have 70 (Unit) / 20 (Integration) / 10 (End to end) ratio for tests.