{"id":21411,"date":"2021-02-28T01:01:06","date_gmt":"2021-02-28T06:01:06","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/recent-posts\/software-testing-development-random-thoughts\/"},"modified":"2021-02-28T01:01:06","modified_gmt":"2021-02-28T06:01:06","slug":"software-testing-development-random-thoughts","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=21411","title":{"rendered":"Software Testing, Development, Random Thoughts"},"content":{"rendered":"<p>Happened to write this for a reason; so just pasting it here<\/p>\n<p>I watched a Talk probably Google Talk..<br \/>\nOne developer from Adobe mentioned that they have 20 developers but 30 testers in their group&#8230;.They must be terrible developers with all the terrible programmers&#8217; taxonomy characteristics&#8230;.Probably, I am slightly terrible in that way, my understanding is, if you want robust software; you should not fully depend on the testing that developers do\/conduct while developing&#8230;..[ no matter how well the developer tested\/checked the software, for reliability\/robustness reasons, you need testing by other than developers ]<\/p>\n<p>Probably a test phase <b id=\"ext-gen2531\">by testers a<\/b>long with user acceptance test phase (by someone who is involved with requirements side) will result better products&#8230;But web-sites are not killing ppl; like one of the medical device software that caused to release more xrays or chemicals (do not remember exactly) that caused deaths&#8230;&#8230;.developers are not to decide on what the customers want [they can definitely suggest alternatives, pros, and cons ] &#8230;.developers primarily develop on what their understanding about the requirements are&#8230;.it is the BA or Customer who can decide if the developed stuff meet the needs [i.e requirements] or not. It&#8217;s not developers&#8217; call..<\/p>\n<p>[customers\/or BA type [or even PM if the PM also did the BA work] people ideally can work on the acceptance tests]<\/p>\n<p>The guy Joel, Owner of StackOverflow says something on Developers and Testers&#8230;Probably he is not a big fan of using software developers to test the software they themselves wrote&#8230;<br \/>\n<a id=\"ext-gen2703\" href=\"http:\/\/www.joelonsoftware.com\/searchResults.html?cx=partner-pub-7553644598686111%3Abl4i7p-y0o5&amp;cof=FORID%3A9&amp;ie=UTF-8&amp;q=testing&amp;sa=Search&amp;siteurl=joelonsoftware.com%2F&amp;ref=&amp;ss=1781j561127j7\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.joelonsoftware.com\/searchResults.html?cx=partner-pub-7553644598686111%3Abl4i7p-y0o5&amp;cof=FORID%3A9&amp;ie=UTF-8&amp;q=testing&amp;sa=Search&amp;siteurl=joelonsoftware.com%2F&amp;ref=&amp;ss=1781j561127j7<\/a><\/p>\n<p>But Microsoft sees software testing is a complex activity and wants developers as testers&#8230;.they want to hire developers in software testing positions&#8230;<\/p>\n<h3 id=\"ext-gen2704\">Economics<\/h3>\n<p id=\"ext-gen2705\">A study conducted by <a title=\"NIST\" href=\"http:\/\/en.wikipedia.org\/wiki\/NIST\" target=\"_blank\" rel=\"noopener noreferrer\">NIST<\/a> in 2002 reports that software bugs cost the U.S. economy $59.5 billion annually. More than a third of this cost could be avoided if better software testing was performed.<sup id=\"cite_ref-10\"><a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_testing#cite_note-10\" target=\"_blank\" rel=\"noopener noreferrer\">[10]<\/a><\/sup><\/p>\n<p><sup>Reference:<\/sup><\/p>\n<p><sup><a id=\"ext-gen2706\" href=\"http:\/\/en.wikipedia.org\/wiki\/Software_testing\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/en.wikipedia.org\/wiki\/Software_testing<\/a><\/sup><\/p>\n<p id=\"ext-gen2707\">\n<p>In many positions, I did not have testers, I had to do all the testing along with development, and write all ends of the software<br \/>\nIn couple of positions I wrotes guides on testing [how to test software]: Also, created test cases for the testers&#8230;<\/p>\n<p>Books on software testing: I read one; the last one [recommended reading for the interview for Microsoft], hope to read the other two [not to be a software tester [not really my interest] , but to understand it, and probably I do not mind writing software test cases or design software test]<\/p>\n<p>One thing though, I have the experience that when as a developer, I wrote test cases and gave it to the testers, the testers only used my test cases; did not use their own; so they missed what I missed; better ideas could be testers could do all the testing they could think and then they could use my test cases to find out if there is anything they did not test&#8230;<\/p>\n<p><a href=\"http:\/\/kaner.com\/?page_id=10\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/kaner.com\/?page_id=10<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" width=\"110\" height=\"140\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" width=\"113\" height=\"140\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"image\/gif;base64,R0lGODlhAQABAIAAAP\/\/\/\/\/\/\/yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"\" width=\"113\" height=\"142\" \/><\/p>\n<p>Some software testing Terminologies<\/p>\n<h1 id=\"ext-gen2710\">Software Testing Basics<\/h1>\n<p>Note: Different testing strategies are described here. In practice, a detail test plan is helpful that may be formed with a subset of these strategies [and delivered to the testers] according to the need of the customers, and the company policies.<\/p>\n<h2 id=\"ext-gen2709\">Five Fold Testing System<\/h2>\n<p>Any testing can be described in five dimensions:<br \/>\n1. Testers: Who does the testing?<br \/>\n2. Coverage: What needs to be tested? function, domain, extreme value?<br \/>\n3. Potential Problems: Why you are testing?<br \/>\n4. Activities: How you test?<br \/>\n5. Evaluation: How to measure the success of testing?<\/p>\n<h2 id=\"ext-gen2708\">Some Forms of Testing<\/h2>\n<p>1. Function testing: Test all functions<br \/>\n2. Extreme Value Testing: Test for errors when extreme values of the variables are used<br \/>\n3. beta testing: make other people test your product<\/p>\n<p>All testing involve five dimensions. When we tell to do function testing, we can list: who will do the test (programmers, testers, users of the product, internal employees), what needs to be tested like functions, what kind of problems they need to address such as pass by value or pass by reference, test method, evaluate your test<\/p>\n<h2 id=\"ext-gen2711\">People Based Techniques<\/h2>\n<p>1. User Testing: Tests by the real users of the product<br \/>\n2. Alpha testing: By Test team, firendly insiders<br \/>\n3. Beta testing: Not insiders, not clients, but may be part of the target market, volunteers<br \/>\nDesign Beta tests: appraise the design<br \/>\nmarketing beta tests: to justify will customers buy the product?<br \/>\ncompatibility beta tests: test hw\/sw platform compatibility<br \/>\n4. bug bashes: in house testing, just before release one full day\/half day testing<br \/>\n5. subject matter testing: give an expert on the subject to use and test the product<br \/>\n6. Paired testing: two person together do the tests and shares ideas<br \/>\n7. eat your own dog food: use the software in-house for your own purpose and check reliability<\/p>\n<h2>Coverage based testing<\/h2>\n<p>1. Function testing: Test each function<br \/>\nWhite box function testing: testing in respect of code<br \/>\nBlack box function testing: test functions in respect of features and commands<br \/>\n2. Function integration testing: test several functions together<br \/>\n3. Menu tour: check all menu items, all available choices<br \/>\n4. Domain testing: Test variable domains and their effect on functions. Find the possible values that a variable can take, classify the value domain, take representative values from each domain, test the variables and related functions<br \/>\n5. Equivalence class analysis: find equivalent domains and tests for one of them<br \/>\n6.Boundary test: Check for smallest and largest values for a variable<br \/>\n7. best representative testing<br \/>\n8. input field test catalogs or matrices<br \/>\n9. Map and test all the ways to edit a field<br \/>\n10. Logic testing: use logics like if then else. cause effect graphing is used for logic based testing<br \/>\n11. state based testing:<br \/>\n12. Path testing: All possible paths to come\/go to a state<br \/>\n13. Statement and branch coverage: execute all statements and all branching<br \/>\n14. Configuration coverage: test how many types of printers your software support<br \/>\n15. Specification based testing: Test all claims made in the manual\/specification<br \/>\n16. Requirements-based testing: test if all requirements are met<br \/>\n17. combination testing: testing two or more variables in combination with each other<\/p>\n<h2>Problems based techniques<\/h2>\n<p>1. Input constraints Tests: Check what kinds of input the program can handle. Also check input error protection<br \/>\n2. Output constraints: The inputs are legal but check if they lead to corresponding out value<br \/>\n3. computation constraints : the program may fail while calculating a value<br \/>\n4. Storage constraints: out of memory tests, too big output file to process<br \/>\n5. timing: race condition, ordering of events<\/p>\n<h2>Activity based Testing<\/h2>\n<p>How you test?<br \/>\n1. Regression Testing: Test the same issue again.<br \/>\na. Bug fix regression : bug is fixed but do the test again to prove the bug is not fixed<br \/>\nb. old bugs regression: new bug fix has unfixed old bugs. so test again<br \/>\nc. side effect regression\/stability regression : the bug fix has created new bugs\/side effects<br \/>\n2. Scripted Testing: execute step by step methods written by senior tester<br \/>\n3. smoke testing : kind of side effect regression testing. but test to prove that no side effect has come. show everything is working. assume may be some simple stuffs have caused the problems not the bug fix. if you can not prove then the new bug fix has created new errors<br \/>\n4. exploratory testing: keep the testers known about the project, product, market, risks. So new tests will be stronger than earlier ones as experience is more<br \/>\n5. Guerilla testing: a fast and extensive exploratory test done by senior tester. test whole day a particular part extensively and decide if that area needs much\/more testing or can be ignored<br \/>\n6. scenario testing:<br \/>\na. test what the customer will really do<br \/>\nb. complex feature testing<br \/>\nc. easy to decide success\/failure<\/p>\n<p>tests that come from use cases.<\/p>\n<p>7. Installation testing: install in various platform, in different methods, check the files, check if the program works?, check uninstallation<br \/>\n8. Load testing: Test the system at high enough load<br \/>\n9. long sequence testing: run the program for days, weeks. problems like wild pointers, memory leaks, stack overflows, and bad interaction among multiple features are caught by this duration testing<br \/>\n10. Performance testing: test the speed\/efficiency of the software. A significant change in speed from time to time is a bad indication and the software need to be optimized<\/p>\n<h2 id=\"ext-gen2712\">Evaluation based testing<\/h2>\n<p>Methods to determine if a test has passed or failed<br \/>\n1. Self verifying data:<br \/>\n2. compare with saved results: if results vary over the week\/day, something is wrong<br \/>\n3. compare with specification: mismatch with the specification, failure<br \/>\n4. consistency:<br \/>\na. with history: software behaviour consistent with past behaviour?<br \/>\nb. with company image: matches with the image that company focuses on?<br \/>\nc. with claims: does what it is supposed to do<br \/>\nd. user&#8217;s expectations: meets users expectations<br \/>\ne. within product: consistent with other functions<br \/>\nf. purpose: consistent with it&#8217;s purpose?<br \/>\n&#8212; From: http:\/\/sitestree.com\/?p=619<br \/> Categories:Web Development, Root, By Sayed Ahmed<br \/>Tags:<br \/> Post Data:2013-12-21 06:21:42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Happened to write this for a reason; so just pasting it here I watched a Talk probably Google Talk.. One developer from Adobe mentioned that they have 20 developers but 30 testers in their group&#8230;.They must be terrible developers with all the terrible programmers&#8217; taxonomy characteristics&#8230;.Probably, I am slightly terrible in that way, my understanding &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=21411\">Continue reading<\/a><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1917],"tags":[],"class_list":["post-21411","post","type-post","status-publish","format-standard","hentry","category-fromsitestree-com","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":69400,"url":"http:\/\/bangla.sitestree.com\/?p=69400","url_meta":{"origin":21411,"position":0},"title":"Should developers test software? #22","author":"Author-Check- Article-or-Video","date":"August 20, 2021","format":false,"excerpt":"Not really my opinion; however, as found in different articles and opinions. You may have a business case to utilize developers for software testing; Also, your developers may end up being a good tester as well, and happily willing to do the software testing work.Should developers test software?Software testing is\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":68489,"url":"http:\/\/bangla.sitestree.com\/?p=68489","url_meta":{"origin":21411,"position":1},"title":"Software Testing #88","author":"Author-Check- Article-or-Video","date":"August 4, 2021","format":false,"excerpt":"Software Testing Developer testing: Some Talk Debugging not Testing Should developers test software (according to Steve McNell)? But you may find that in most small software companies - testing is usually considered to be a developers' responsibility (budget issue) Software Testing Basics Unit Testing in Eclipse for Java From: http:\/\/sitestree.com\/?p=5219\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22055,"url":"http:\/\/bangla.sitestree.com\/?p=22055","url_meta":{"origin":21411,"position":2},"title":"Software Testing Basics  #Software Development #Root #Software Testing #By Sayed Ahmed","author":"Author-Check- Article-or-Video","date":"March 9, 2021","format":false,"excerpt":"Software Testing Basics Note: Different testing strategies are described here. In practice, a detail test plan is helpful that may be formed with a subset of these strategies [and delivered to the testers] according to the need of the customers, and the company policies. Five Fold Testing System Any testing\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":21605,"url":"http:\/\/bangla.sitestree.com\/?p=21605","url_meta":{"origin":21411,"position":3},"title":"Remember.. #Web Development #Root #By Sayed Ahmed","author":"Author-Check- Article-or-Video","date":"March 3, 2021","format":false,"excerpt":"Remember: Just 2 cents... 1. Testing can never proof absence of errors 2. Testing by itself does not improve software quality 3. The best debugging skill, think right, write the right code...impossible to be 100% perfect on your first try, however, the better you do in writing the right code\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":21955,"url":"http:\/\/bangla.sitestree.com\/?p=21955","url_meta":{"origin":21411,"position":4},"title":"Design in construction #Software Engineering","author":"Author-Check- Article-or-Video","date":"March 8, 2021","format":false,"excerpt":"Design in constructionWhen software development does not go through a detailed design phase, developers require to think the design of the part they are working on and how the design fits together with the other components and the interface of the software. It's always better to think about the design\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":69402,"url":"http:\/\/bangla.sitestree.com\/?p=69402","url_meta":{"origin":21411,"position":5},"title":"Developer testing: Some Talk #22","author":"Author-Check- Article-or-Video","date":"August 20, 2021","format":false,"excerpt":"Developer testing: Some Talk Thinking about test cases before writing the code may become handy sometimes. If you think before then hopefully, you will also write code that will avoid those errors\/test cases. The thinking time is almost equal. Check for both the control flow and the data flow of\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/21411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21411"}],"version-history":[{"count":0,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/21411\/revisions"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21411"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}