tag:blogger.com,1999:blog-88797064614481097592016-07-07T14:57:21.425+05:30coffee with codeSanjay Jainnoreply@blogger.comBlogger2125tag:blogger.com,1999:blog-8879706461448109759.post-34037207416883384652016-07-07T14:51:00.000+05:302016-07-07T14:57:04.305+05:30Hawthorne Effect<div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: "verdana" , sans-serif;">While reading about system analyst roles and responsibilities, I came across the term Hawthorne effect.</span><br /><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">Hawthorne effect is related to human behavior and can be described as<i> 'people tend to act differently if they know that they are being observed'</i>.</span><br /><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">In relation to software engineering, its system analyst roles to identify and gather information regarding a system.The System can be new or existing.</span><br /><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">There are multiple methods from which system analyst can collect information about a system like an interview, questionnaire, observation etc.</span><br /><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">In the case of observation, Hawthorne effect comes as a side effect of this approach. </span><span style="font-family: "verdana" , sans-serif;">As motivation of the system analyst may not be fulfilled if people act differently for the time period of observation.</span></div>Sanjay Jainnoreply@blogger.com0tag:blogger.com,1999:blog-8879706461448109759.post-3017671676715766392016-07-02T08:43:00.000+05:302016-07-03T10:57:46.717+05:30Testing Pyramid<div dir="ltr" style="text-align: left;" trbidi="on"><div class="MsoNormal" style="margin-bottom: 8pt;"><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">While searching theory behind integration tests, I landed into testing pyramid concept and found it good to be share. </span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">Basically, tests are used as a feedback loop. They are responsible to inform developer whether the application is working or not.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">With respect to the testing pyramid, three types of test cases are described.</span></span><br /><br /><ul style="text-align: left;"><li><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">Unit test cases are focused on the single unit of responsibility at a time. All the dependencies of that single unit will be mocked.</span></span></li><li><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">Integration tests are to ensure that more than one unit working together should work fine without mocking other units.</span></span></li><li><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">End to end tests or acceptance tests is used to test the application by simulating end user scenarios.</span></span></li></ul><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><img border="0" height="264" src="https://3.bp.blogspot.com/-WI4fYi0bI1M/V3cvYMmamxI/AAAAAAAAH84/25AKIVfS3pEfnkxupZLsOvtpTbU15Rc7QCKgB/s320/testing-pyramid.jpg" style="margin-left: auto; margin-right: auto;" width="320" /></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Verdana, sans-serif;">Testing Pyramid</span></td></tr></tbody></table><div class="separator" style="clear: both; text-align: center;"></div><span style="line-height: 16.8px;"><br /></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">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.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">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.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">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.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">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.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">Only advantages of the end to end tests are they are able to simulate end user behavior.</span></span><br /><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span><span style="line-height: 16.8px;"><span style="font-family: "verdana" , sans-serif;">Also from one of google blog, it is also suggested to have 70 (Unit) / 20 (Integration) / 10 (End to end) ratio for tests.</span></span></div><div class="MsoNormal" style="line-height: 105%; margin-bottom: 8.0pt;"><o:p></o:p></div></div>Sanjay Jainnoreply@blogger.com0