<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-111172825477675184</atom:id><lastBuildDate>Fri, 04 Dec 2009 21:53:00 +0000</lastBuildDate><title>Tester Testifies</title><description>For want of a nail, the shoe was lost; for want of a shoe, the horse was lost; 

For want of a horse, the rider was lost; for want of a rider, the message was lost; 

For want of a message the battle was lost; for want of a battle, the kingdom was lost . .</description><link>http://geektester.blogspot.com/</link><managingEditor>rajkamal@microsoft.com (Raj)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-2450265517758280325</guid><pubDate>Wed, 07 Oct 2009 10:11:00 +0000</pubDate><atom:updated>2009-10-07T15:48:37.344+05:30</atom:updated><title>Do you have it in you? Technical skills are no more OPTIONAL skills for Software Testing</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Words of Caution&lt;/em&gt;: &lt;em&gt;When i say “Technical skills”&amp;#160; please don't confuse it with “Test Automation” knowledge only. It more and the less has become a standard in the industry to presume that knowing QTP or RFT is same as having technical skills.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;To start with, &lt;strong&gt;for a tester to be successful following are the 3 most important components &lt;/strong&gt;which you should never forget:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SsxpR4qyoaI/AAAAAAAAE48/6qCkzF1bN88/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SsxpSlvBS_I/AAAAAAAAE5A/FX7-qBhkapY/image_thumb1.png?imgmax=800" width="453" height="274" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this blog post, we will talk about the second most important component “&lt;strong&gt;Technical Skills&lt;/strong&gt;” which is only next to “Testing Skills &amp;amp; Aptitude” for a tester to be successful in the next decade.&amp;#160; &lt;/p&gt;  &lt;p&gt;In last decade or so, testing has been tagged and given the title of an easy profession where non-technical candidates (&lt;em&gt;who aren’t capable of writing or understanding the code)&lt;/em&gt; can write some test cases and execute them to find issues. It was considered having domain knowledge to understand the business is sufficient to be a successful tester.&lt;/p&gt;  &lt;p&gt;In last 5 yrs, automation has become the talk of the town as it has become a successful marketing tool to win more projects by showing huge ROIs benefits of million of dollars to the customers. We have also witnessed the same trend by the emergence of specialized commercial testing tools by big players like IBM, HP &amp;amp; Microsoft in this arena. &lt;/p&gt;  &lt;p&gt;Lot of candidates in testing do have technical skills but they don't hone it or have stopped using them because of the popular perception that &lt;em&gt;“its not test‘s job to write/read code”.&lt;/em&gt; The max they do is automation &lt;em&gt;(where record/playback is most popular and only a few percentage (&amp;lt;20%) can truly write automation code to validate the application)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Because testing is considered a second fiddle to Development and the best minds get/shift into development, testing community is lagging seriously on&amp;#160; candidates with strong technical skills.&lt;/p&gt;  &lt;p&gt;Test automation is a subset of a broader category “Technical Skills”&amp;#160; and now (more than ever), importance is being given to other technical skills&amp;#160; other than test automation which are becoming mandatory to become a successful&amp;#160; test professionals at organizations.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Following&amp;#160; 10 are the skills / activities / tasks where technical skills of a tester is tested&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;em&gt;(you might have read many of these in your testing training / process tutorials but now time has come to start exercising these&lt;/em&gt;)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Requirement Feasibility:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Don’t get surprised, there is not typo error here. You read it all right that requirement analysis ALSO requires you to have technical skills to understand if the requirements expected by the customer are POSSIBLE or not. Lot of times there are “&lt;em&gt;technology constraints&lt;/em&gt;” and unless you understand the underlying technology you run a risk of committing on a requirement which can’t be implemented and you must know that telling customer on the last day wont be such a great idea.&lt;/p&gt;  &lt;p&gt;Its not only dev job to call out technical constraints. In fact test can call out if a particular requirement is too unrealistic or ambitious to be implemented if they understand the technology well. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;For ex. I can tell the business upfront that a specific multi select tree control is not present in c# and we need to think of an alternative. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Scalability Study (Hardware/Software): &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Your app used to work fine and then a new functionality was added and then in the next release all of a sudden the app started hanging or the batch job is taking infinite time.&lt;/em&gt; If you have had experience something similar to this, you are a victim of “&lt;em&gt;hardware/software constraints&lt;/em&gt;” which was not thought in advance.&lt;/p&gt;  &lt;p&gt;Lets say the users have increased to million from thousand and you hardware RAM and Processor is not enough to handle so much traffic &lt;/p&gt;  &lt;p&gt;OR &lt;/p&gt;  &lt;p&gt;Your RDBMS cant handle more than 10000 concurrent connections. &lt;/p&gt;  &lt;p&gt;So it is must for you to understand your platform (hardware + software) and their boundary limits so that you can avoid surprised and downtimes in production leading to SLA misses and customer dissatisfaction.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Design consideration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When is the last time you were in a design meeting where you contributed to the translation of the requirements into design or more importantly, when you helped avoiding developers to commit a design blunder where let’s say they misunderstood the requirement and the flow was incorrect.&lt;/p&gt;  &lt;p&gt;Unless you understand the development models and don't participate in high level and low level designs meetings you wont understand what’s happening &lt;strong&gt;“behind-the-scenes”. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It can also help you to write better test cases by understanding the flow of the system and how modules are integrated. Black box testing is not sufficient always when the architecture &amp;amp; the flow becomes complex as not all implementation details are captured in the functional specifications.&lt;/p&gt;  &lt;p&gt;Technical design documents should also be evaluated by the testing team where say why Approach A is preferred over other options considered like Approach B or C. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. Code walkthrough &amp;amp; Inspection&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This might give nightmares to many test professions. They just hate looking at the code but believe me you can find lot of bugs by inspecting the code even before the code is dropped to testing. This static testing can save lot of time by avoiding a buggy code to be dropped to test. &lt;/p&gt;  &lt;p&gt;You must understand the syntax and semantics of the language being used (C#, java etc) and ask the right questions to find out any memory leak or incorrect loop/condition clause being used in the code &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5. Unit Testing &amp;amp; Integration Testing &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Okay I wont start a debate by saying test should do unit testing but you will surely come across a situation in your long testing career when you will agree that knowing unit testing help a big deal.&lt;/p&gt;  &lt;p&gt;For example, how do you do &lt;strong&gt;code coverage&lt;/strong&gt; now? Unless you know all the inputs/outputs, all the main flows and branches, all the conditions and exception handling code, we cant write good scenarios to exercise critical code paths.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6. Performance tuning&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With more and more focus now given on customer satisfaction, performance testing is something now which goes without saying and every customer expects it by default. It is extremely critical now for test team to ensure that the performance is well within customer’s expectations and with high traffic OR volume of data the application would respond within the SLA agreed at the time of signing-off requirements (as part of acceptance criteria).&lt;/p&gt;  &lt;p&gt;Unless test teams are familiar with performance counters of the operating system and the the software / technology being used, bottlenecks and potential issues cant be determined. &lt;/p&gt;  &lt;p&gt;Also when you want to simulate real-world scenario say to simulate 100000 concurrent users, the knowledge of session management and other technical concepts are must.&lt;/p&gt;  &lt;p&gt;Many a times the queries / code are not optimized and it is also important to understand if the code written is efficient or not&amp;#160; and also if there is a better way of writing the code which can improve the product’s performance.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8. Security testing &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With the increasing number of virus attacks and the risk involved with losing highly confidential customer data&amp;#160; or any possible frauds, tester’s contribution has become very crucial.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;For example: &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;How can you test your application for SQL injection if you aren’t good at SQL?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;or &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;How would you test your application for exposing any confidential data if you aren’t good at encryption/decryption algorithms or understanding&amp;#160; different masking techniques?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;or &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;How do you ensure which port shouldn’t be open/closed unless you understand the networking concepts well.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;These are just some high level examples trust me security testing is much more than that and now constitutes of many modern&amp;#160; &amp;amp; advanced techniques like fuzzing etc&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9. Deployment &amp;amp; Prod Support&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We are the gatekeepers of the application. It goes from our hand to Support folks for UAT &amp;amp; Production deployment. If we don't understand the configurations setting or environment pre-requisites to run our applications, chances are there that business would lose lot of their precious time waiting for your dev team to come and rescue you.&lt;/p&gt;  &lt;p&gt;I am sure you don't want to end up there and its critical to understand the installation and configuration setting, troubleshooting tips and common FAQs&lt;/p&gt;  &lt;p&gt;&lt;em&gt;For example, there was a permission issue which was holding your user from using the application and you just don't know how to give the appropriate permission. Believe me it can be very embarrassing and frustrating at times&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;That’s your lucky chance to build credibility with business and Support folks and help them get-going without wasting any amount of time.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10. Automation&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;And just because I haven’t kept at top of the list doesn't mean its less important than any of the above activities. Its the most important activity only next to manual testing but lot has been written about it and there is much more understanding and awareness about test automation in the industry now and hence I am keeping this short.&lt;/p&gt;  &lt;p&gt;With this I am closing this post and i hope this will provide a quick checklist to the testers to become ideal testers-of-future.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-2450265517758280325?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2009/10/do-you-have-it-in-you-technical-skills.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-3711092745071793764</guid><pubDate>Thu, 01 Oct 2009 15:52:00 +0000</pubDate><atom:updated>2009-10-01T21:22:54.041+05:30</atom:updated><title>Testing:: Chosen-By-Profession turned Chose-the-Profession.</title><description>&lt;p&gt;It was morning of 12th Nov, 2004 when I found myself standing in a classroom and for the first time it was my back facing the black board and a new batch of&amp;#160; future software professionals sitting in front of me and most of them were as anxious as me &lt;em&gt;(obviously for different reasons).&lt;/em&gt; These young professionals fresh out of top colleges in India were campus hired ELTs (Entry Level Trainees) of Cognizant Technology Solutions.&lt;/p&gt;  &lt;p&gt;Since that day and the day when I am typing this I have come across many Software Testers (&lt;em&gt;99.9% of them where chosen by the profession and not otherwise&lt;/em&gt;) and the questions I have been asked or I could read it on their face is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;“What am I doing in Software Testing Batch? OR Why am I not present in .Net/Java Batch running in next classroom? Am I not good enough?”&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;“Don’t I have required technical skills to be in Development? OR Based on my aptitude have I been put into Testing?”&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;“Do people get lesser raise / bonus in Testing over Development?”&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;“If I perform well and prove my skills, will they shift me into development?”&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;“My elder brother/ cousin/parents/uncle etc told me that testing is not a good profession and its just about validating someone’s one. Is that true?”&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Anyone who was present in one of those classrooms is reading this blog would know that raising above questions is definitely no sin and in fact I had the same questions myself as i was “&lt;em&gt;chosen-by-the-profession&lt;/em&gt;” too. &lt;em&gt;Please make a note here (I said “I was” and not “I am”). &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I would have moved into development way back in 2004 but i CHOSE to stay in Software Testing and that was BY-CHOICE. Just to give you a brief background (no boasting here), I used to and still think that i am amazingly good in development &lt;em&gt;(and yes i did all graduation lab &amp;amp; major projects on my own –be it C, C++,Computer Graphics Linux, Oracle, Java and got 3 scholarships for topping the college)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Times have changed since 2003-04 and now testing has turned out to be a lucrative and easy career option for candidates who find it difficult to crack into development but in next few paragraphs you will read &lt;em&gt;“How I fell in love with Software Testing” and “Why Software testing is as good as Building software”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Software Testing is fun&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;If as a kid you enjoyed playing with a new electronic gadget more than building sand castles you will know what am i talking about?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;or &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;If you had the curiosity and strong urge to see how watch or a transistor works, you will be able to correlate the itching that you get when you want to understand the new unexplored&amp;#160; &amp;amp; unseen thing&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;so guys, testing is like seeing a product and then letting yourself go with the flow and try to understand how it works and where it doesn’t?&lt;/p&gt;  &lt;p&gt;Human mind always wants to find out what you CANT do with any object in hand. and let’s say getting paid for it. Isn’t it a bonus?&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Software Testing is an ART&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Software Testing is art and so is software development as well but think of it that specifications and requirements say “&lt;em&gt;what needs to be done&lt;/em&gt;” and design done by the architects &amp;amp; modellers says “&lt;em&gt;how is it to be done&lt;/em&gt;” so development is left with very LITTLE room for innovation. I have known developers whose jobs are so monotonous and life is limited to just convert the plain English into a programming language code.&lt;/p&gt;  &lt;p&gt;Now in Software Testing nobody says “HOW IT NEEDS TO BE TESTED?” :)&lt;/p&gt;  &lt;p&gt;To an extent test plan and test strategy covers the scope and approaches to be followed but as a tester you can think innovative and challenge the very requirement or a workflow or a specific behaviour. You have absolute power to think of a undocumented alternative path and ultimately discover a MISSING/EXTRA requirement. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Software Testing is Advocacy&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;You like fighting for a cause ? You like making sure that justice is done? &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;You are customer’s advocate and most of the time he might not be even knowing it. Its YOU who has to ensure that justice is served and your customer is getting service / experience for the amount paid. Usability / Accessibility / Security / Performance are few non-explicit expectations which often get ignored by Developers, Managers, Business Analyst and that’s something can make a huge difference in a great customer experience.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Software Testing is Progressive&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;You want to be an entrepreneur? You want to understand your business?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;There are lot of customer-facing professionals / business analyst who have been testers in their early career. The obvious reason why they are so successful is that they GET TO SEE A BIGGER PICTURE. They understand business better than developers because:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;1. They clarify requirements / bugs directly or indirectly with customers&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;2. They understand the whole system (multiple modules and their integration)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;3. They don’t get distracted by getting too deep in technology&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Software Testing is Respectable&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;You have the key responsibility. You got to to take the call here. GO / NO-GO? &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Customer &amp;amp; Management relies on your work to decide if we are ready to go into the wild and compete with the world.&lt;/p&gt;  &lt;p&gt;You are the one who drives the Quality. You are the one who ensure processes are adhered to. You are the gate keeper.&amp;#160; You are the important one here.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Software Testing is Challenge&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you are the one who don't like life to be boring or predictable, then join Testing.&amp;#160; One life is not enough to learn everything in testing. Sometimes reproducing a simple-yet-important bug becomes a nightmare and at times understanding the customer requirement becomes so tough when you are working in an offshore model or when the dev slips and you are the one who has to still deliver quality without compromising on the timelines. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Software Testing is Technical&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;My favourite. This is exactly opposite to the popular belief that testing don’t need good testing skills. In fact, if you are not technical:&lt;/p&gt;  &lt;p&gt;1. You won’t be able to repro many bugs because unless you understand &lt;em&gt;what's-happening-behind-the-scenes &lt;/em&gt;you wont understand the problem&lt;/p&gt;  &lt;p&gt;2. You wont be able to find the root cause many times. You will just be able to say “there is a problem” but “don’t-know-why”&lt;/p&gt;  &lt;p&gt;3. You wont be able to suggest a better solutions / alternative&lt;/p&gt;  &lt;p&gt;In the end, software testing is one profession that requires great communication skills, strong technical skills and most importantly a testing mind (passion to learn and understand new things)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Remember, Testing will Test you&amp;#160; FOREVER.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-3711092745071793764?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2009/10/testing-chosen-by-profession-turned.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-6749824312313286906</guid><pubDate>Mon, 06 Apr 2009 17:37:00 +0000</pubDate><atom:updated>2009-04-06T23:38:28.754+05:30</atom:updated><title>Reduced / Selective Test Data Execution to SAVE Time &amp; Effort - Introduction</title><description>Context: &lt;strong&gt;Data Warehouse / Business Intelligence (ETL Execution)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Background: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;If you have ever involved in DW/BI Testing, waiting for ETL execution to complete won't be an alien subject to you. Its not ONLY frustating to discover ETL fails at Step X after running for say 8 long hours but its ALSO a show stopper for you to continue with your functional testing and directly impacts your efficiency and effectiveness.&lt;br /&gt;&lt;br /&gt;If there are performance lags (like low configuration h/w, network bandwidth etc), the ETL job is only going to take longer than expected and often times this adds to higher WAIT Time (a.k.a NON Productive time).  &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Root Cause: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If dev / test team wants to run the ETL with Production data, which can be really huge (in GBs or sometimes even TBs), due to the volume its obviously takes a long time.&lt;br /&gt;Trade Off is REAL vs SIMULATED data. Testing with REAL data comes with a cost.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is testing team the only victim? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Answer is NO.&lt;/em&gt; Even Dev team has to wait for entire ETL to run to see the changes made in the code while doing integration testing.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Why don't we create Smaller test data ALWAYS?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;-&gt; Due to the data integration and transformational complexities, the team has to have very deep domain knowledge of the business rules to create test data which satisfy the ETL conditions (often times lack of this results in ETL failure or ZERO o/p after the run)&lt;br /&gt;&lt;br /&gt;-&gt; If the complexity is high (consider data coming from multiple disparate sources) then creating data while maintainig logical relationship can turn out to be quite tedious and time consuming.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why dont we SELECT REDUCED / SUBSET of Test data from Production?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is the heart of this blog and we are going to emphasize on this in detail. Though the above sounds simple and the obvious solution but it has been observed that teams dont find it very popular time because of following important reasons:&lt;br /&gt;&lt;br /&gt;1. Random sampling of data doesnt work. Many times it will result in ORPHAN RECORDS (where you might end up pulling child records without parents records from the source)&lt;br /&gt;&lt;br /&gt;2. ETL might break if the keys are not found.&lt;br /&gt;&lt;br /&gt;3. ETL might succeed but can result in ZERO output records as none of the business conditions got satisfied for the the sample data.&lt;br /&gt;&lt;br /&gt;4. Business / Domain knowledge is required&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What do we recommend to select SUBSET test data with success?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;1. Select a pattern: &lt;br /&gt;&lt;br /&gt;a) Master Data Driven&lt;br /&gt;&lt;br /&gt;b) Transaction Data Driven:&lt;br /&gt;&lt;br /&gt;2. Identify Business Conditions&lt;br /&gt;&lt;br /&gt;3. Select Sampling Method&lt;br /&gt;&lt;br /&gt;4. Copy the SELECTED test data to a test db&lt;br /&gt;&lt;br /&gt;5. Modify Test Data to cover Boundary Value conditions&lt;br /&gt;&lt;br /&gt;6. Run the ETL &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What are the advantages?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. Save Time&lt;br /&gt;&lt;br /&gt;2. Save Effort&lt;br /&gt;&lt;br /&gt;3. Save Hardware Cost (Less Data, Less Space and computational resources required)&lt;br /&gt;&lt;br /&gt;4. Better Test Coverage (High Requirement Coverage)&lt;br /&gt;&lt;br /&gt;5. Better Code Coverage&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The subsequent post will focus on the above methods in detail....Please share your feedback and suggestions.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-6749824312313286906?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2009/04/reduced-selective-test-data-execution.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-7307881043321557400</guid><pubDate>Fri, 12 Dec 2008 19:20:00 +0000</pubDate><atom:updated>2008-12-13T00:51:41.344+05:30</atom:updated><title>SSAS Cube Testing</title><description>&lt;h4&gt;&lt;a name="_Toc216852184"&gt;1.1 BVT / Smoke Testing Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Ensure only the user with the desired permission is able to connect to the cube&lt;/p&gt;    &lt;p&gt;2. Validate Data Source Connection string for cube&lt;/p&gt;    &lt;p&gt;&lt;i&gt;E.g. Provider=SQLOLEDB.1;Data Source=&amp;lt;Test ETL Server&amp;gt;.redmond.corp.microsoft.com;Integrated Security=SSPI;Initial Catalog=dbCPRMart&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;3. Validate your are able to successfully process the cube&lt;/p&gt;    &lt;p&gt;4. Validate your are able to browse the cube&lt;/p&gt;    &lt;p&gt;5. Configure and validating Analysis Services Query Logging&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;&lt;a name="_Toc216852185"&gt;1.2 Data Validation Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Approach 1: Browse the cube using BIDS or SQL Server Management Studio and compare the output against Mart using SQL query&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;If it&amp;#8217;s a new development of a Cube, Browse the Cube, drag and drop measures on the Page and Dimension on the Y-axis. You need to write T-SQL that does similar aggregation that brings similar output.&lt;/p&gt;    &lt;p&gt;Eg: &lt;/p&gt;    &lt;p&gt;OWC Output:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SALES&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PROFIT&lt;/p&gt;    &lt;p&gt;AP &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CHINA&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 200&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 60&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INDIA&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 250&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 50&lt;/p&gt;    &lt;p&gt;US&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CHICAGO&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 500&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 65&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WASHINGTON&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 550&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 65&lt;/p&gt;    &lt;p&gt;Equivalent T-SQL:&lt;/p&gt;    &lt;p&gt;SELECT REGION, CITY, SUM(SALES ), SUM(PROFIT)&amp;#160; FROM GEOG G JOIN SALES&amp;#160; S FACT ON G.ID=S.ID&lt;/p&gt;    &lt;p&gt;GROUP BY REGION, CITY ORDER BY 2&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Approach 2: MDX query to compare data with SQL Query executed against Mart&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;2.1 For simpler Cube &amp;amp; Dimensional Models&lt;/p&gt;    &lt;p&gt;Write your MDX query and compose SQL query for the same conditions and results should match&lt;/p&gt;    &lt;p&gt;2.2 Automatically generate MDX using SQL Profiler &amp;amp; Reporting tools and compare it against SQL&lt;/p&gt;    &lt;p&gt;SQL Profiler &amp;amp; Reporting Tools like PPS, ProClarity provide the capability of generating MDX on Cube conditions. Use these MDX against the SQL queries formed by you based on the relational / dimensional model on Mart.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Approach 3: Black box testing using sample test data&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Insert / Update / Delete test data in your backend and calculate the outcome value based on the desired functionality / requirement without going to cube and ensuring that your expected output value matches the cube output in the final reports.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Approach 4: &lt;/b&gt;&lt;b&gt;AMOMD object Compare&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Create Automatic Verification Mechanism between OLAP and SQL objects&lt;/p&gt;    &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc281460.aspx"&gt;&lt;b&gt;http://msdn.microsoft.com/en-us/library/cc281460.aspx&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc280975.aspx"&gt;&lt;b&gt;http://msdn.microsoft.com/en-us/library/cc280975.aspx&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SUK5J6FWf9I/AAAAAAAAEEQ/7U-4Kvj_hDM/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SUK5K5YYn_I/AAAAAAAAEEU/cmotcm9wryk/clip_image002_thumb%5B1%5D.jpg" width="350" height="382" /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Figure: shows a high-level view of the AMO object model for OLAP objects&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Reference: &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://microsoft.apress.com/feature/74/introduction-to-analysis-management-object-amo-programming"&gt;&lt;b&gt;http://microsoft.apress.com/feature/74/introduction-to-analysis-management-object-amo-programming&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;&lt;a name="_Toc216852186"&gt;1.3 Cube Design Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;Validate all measures&lt;/b&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Open Visual Studio analysis services DB&lt;/li&gt;      &lt;li&gt;Browse and Open Cube DB&lt;/li&gt;      &lt;li&gt;Double Cube and browse to &amp;quot;Measure&amp;quot; pane&lt;/li&gt;      &lt;li&gt;Select measure &amp;lt;measure name&amp;gt; &lt;/li&gt;      &lt;li&gt;Go to Properties, and check &amp;quot;source&amp;quot; field&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Expected Result:&lt;/i&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Measure source should be set to correct table as source table and correct column as source column in Mart&lt;/li&gt;      &lt;li&gt;Ensure measure has all the required fields / columns as present in the mart&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;Validate all dimensions &amp;amp; dimension hierarchies&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Open Visual Studio analysis services DB&lt;/li&gt;      &lt;li&gt;Browse and Open Cube DB&lt;/li&gt;      &lt;li&gt;Double click Cube and open data source views and Open &amp;lt;Dimension name&amp;gt; Dimension under &amp;quot;Dimensions&amp;quot;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;i&gt;&amp;#160;&amp;#160; Expected Result:&lt;/i&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Make sure Table columns in Mart are mapped to Dimension correctly&lt;/li&gt;      &lt;li&gt;Make sure Dimension key is correctly mapped to Dimension key column of the dimension Table in Mart&lt;/li&gt;      &lt;li&gt;Make sure all the required columns / fields are present in dimension as present in mart&lt;/li&gt;      &lt;li&gt;Ensure Hierarchy is correctly defined&lt;/li&gt;      &lt;li&gt;&lt;i&gt;Fiscal Year -&amp;gt; Fiscal Month -&amp;gt; Fiscal Week -&amp;gt; Calendar date&lt;/i&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Validate all calculated measures&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Open Visual Studio analysis services DB&lt;/li&gt;      &lt;li&gt;Browse and Open Cube and go to &amp;quot;Calculated&amp;quot; tab&lt;/li&gt;      &lt;li&gt;Check expression for &amp;quot;&lt;i&gt;Calculated measure name&lt;/i&gt;&amp;quot;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&amp;#160;&amp;#160;&amp;#160; Expected Result&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; The MDX expression defined should be accurate as per your requirements.&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Eg. [Measures].[ChangePoint Total Backlog] + [Measures].[Siebel High Pipe] + [Measures].[Siebel Low Pipe]&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;4. &lt;/b&gt;&lt;b&gt;Validate &amp;#8220;Data Source Views&amp;#8221; of your cube against your design&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SUK5Mj2uTZI/AAAAAAAAEEY/7uk7P3mLUI8/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SUK5OCotfHI/AAAAAAAAEEc/20ae6R1EblA/image_thumb%5B1%5D.png" width="446" height="297" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;&lt;a name="_Toc216852187"&gt;1.4 Security Testing Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Ensure each user belonging to a cube role has appropriate access&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SUK5PfUQkWI/AAAAAAAAEEg/B3V0hriqV_E/clip_image002%5B5%5D%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[5]" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SUK5Qv2TliI/AAAAAAAAEEk/XHK7SLBqfSw/clip_image002%5B5%5D_thumb.jpg" width="221" height="93" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;2. User with read permission should only have access to browse the cube&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Read Definition checkbox should be selected&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SUK5Rzos3cI/AAAAAAAAEEo/Ju6PXxhZ1-U/clip_image004%5B6%5D%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image004[6]" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SUK5S7cz2nI/AAAAAAAAEEs/hjgGYakxx54/clip_image004%5B6%5D_thumb%5B1%5D.jpg" width="451" height="209" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;3. User with Process permission should be able to process the cube as well.&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Process Database checkbox should be selected&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;4. User with Admin permission should be able to browse, process, make changes to the cube as well.&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Full control (Administrator) checkbox should be selected&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;5. Cube roles should be mapped to correct users and group &lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SUK5T4RU-YI/AAAAAAAAEEw/_-CefQvbi1M/clip_image006%5B4%5D%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image006[4]" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SUK5VPVs-iI/AAAAAAAAEE0/0xltsdzDgrk/clip_image006%5B4%5D_thumb%5B1%5D.jpg" width="434" height="310" /&gt;&lt;/a&gt;&lt;/i&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;6. &lt;/b&gt;Cube roles should be having restricted access or unlimited access to dimension data based on the design and project needs&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SUK5WYNApSI/AAAAAAAAEE4/ngQI0hmeByk/clip_image008%5B4%5D%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image008[4]" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SUK5YJ3-JDI/AAAAAAAAEE8/mr56x7B4Lq8/clip_image008%5B4%5D_thumb%5B1%5D.jpg" width="485" height="234" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;&lt;a name="_Toc216852188"&gt;1.5 Miscellaneous Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Backup and Restore:&lt;/p&gt;    &lt;p&gt;Take the backup of the cube and try restoring. The functionality should remain working as earlier.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;&lt;a name="_Toc216852189"&gt;1.6 Performance Scenarios:&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Optimize Cube Aggregations&lt;/p&gt;    &lt;p&gt;Before running your stress tests, you&amp;#8217;ll want to ensure that you OLAP design has optimized aggregations. To optimize your aggregations, you&amp;#8217;ll need to first turn on SQL Server Analysis Services query logging, then run the cube optimization wizard.&lt;/p&gt;    &lt;p&gt;2. Using load simulator&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-7307881043321557400?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/12/ssas-cube-testing.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-8437421846582459904</guid><pubDate>Wed, 12 Nov 2008 08:35:00 +0000</pubDate><atom:updated>2008-11-12T14:08:13.034+05:30</atom:updated><title>Reduce number of invalid defects -&gt; Improve Test Productivity and Efficiency &amp;  Let your Developers be happy</title><description>&lt;p&gt;Just the other day we were discussing that how can we (testing team) reduce number of invalid defects. I was in deep thinking that why is it really important to reduce&amp;#160; the number of invalid defects. &lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Isn't it a tester's fundamental job to log every potential defect and let it go through normal defect life cycle and let business and management take call if it is a valid defect or not?&lt;/li&gt;      &lt;li&gt;Isn't it right that tester shouldn't assume that it is not a bug and then regret later because of&amp;#160; a false assumption made?&lt;/li&gt;      &lt;li&gt;Isn't a tester taught to think negative and always be suspicious and uncover what is not seen by someone like dev?&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The point here is what is a big fuss if testing team raises 'invalid' defects unknowingly. At least they don't leave anything to assumptions which is far more dangerous. There primary job is to find defects, whether that is a 'valid' defect or not is a secondary question.&lt;/p&gt;  &lt;p&gt;One of the tester I am mentoring complained that his testing team had found 108 defects out of which 104&amp;#160; were valid and only 4 were invalid but his management didn't seem to appreciate them for the the number of valid defects found as they were expecting number of invalid defects to be zero.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My take on this:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Yes, it is important to reduce number of invalid defects. &lt;/p&gt;  &lt;p&gt;Why?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-&amp;gt; &lt;strong&gt;Test Metrics gets screwed (Test Effectiveness or lets say Test Productivity goes down with no. of invalid defects)&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Test Effectiveness = No .of Valid defect&amp;#160; / (No. of Valid Defects + No of invalid Defects) X 100 %&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Example for above:&amp;#160; 104&amp;#160; / (104 + 4) X 100 % = ~96.6 %&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;-&amp;gt; Time lost in tracking and logging invalid bug&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;When you raise a bug in your reporting tool like Test Director, it has to go through complete bug lifecycle. Say you raised a bug spending effort in recording it and then it turned out to be invalid, you developer rejects it.&amp;#160; Finally you have to close it.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt; -&amp;gt; Management don't like invalid bugs&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;You bet me that &amp;quot;invalid&amp;quot; bugs doesn't please any manager. It is a human behavior to criticize something that is not right.&amp;#160; It sets them off. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;-&amp;gt; Developers stop taking you seriously&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;When they observe that you raise many invalid bugs, they start expecting that every time. They stop paying due attention to valid bugs considering them to be invalid. Quality over Quantity concept.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;-&amp;gt; Time lost in triage meeting to discuss invalid bugs&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;When you log invalid bug, it not only your time getting lost, developers waste their time reading them, then testers and developers waste time arguing on that as it has been officially logged, and most importantly business waste their time in triage meeting to take call.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;-&amp;gt; Spoiling terms with development team&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Developers are under pressure to reduce number of defect found in their code by the test team. Now if you log it, they go defensive and try their best to prove your bug an invalid bug so that it doesn't spoil their commitments.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Now that we have a problem. Let me propose something which we successfully implemented &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SRqVaiCrGUI/AAAAAAAAEEI/Bl5bzimg1Y8/defect%20_review_cycle%5B12%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="361" alt="defect _review_cycle" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SRqVbHN39bI/AAAAAAAAEEM/xfyfpdYQnxM/defect%20_review_cycle_thumb%5B10%5D.jpg" width="519" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now with this process, every bugs gets verified online by the Development team even before we officially log it. They update the sheet saying that they are okay with so and so bugs and we log only those bugs in the Bug Management tool&amp;#160; and hence all &amp;quot;VALID&amp;quot; bugs.&lt;/p&gt;  &lt;p&gt;Bugs which they update as &amp;quot;INVALID&amp;quot; or &amp;quot;REJECTED&amp;quot;, we update the SHARED SHEET with more information like repro steps etc and they change the status in the sheet accordingly. Now if it was our fault and it was actually INVALID defect, we update the SHEET and close it there itself rather than logging it in bug management tool and going through the entire process.&lt;/p&gt;  &lt;p&gt;Now our metrics always say&amp;#160; 100 % valid bugs. We don't miss any bugs because we record it anyway in the Shared Sheet and triage it with development team online. Development team feels good as they get a chance to to repro bug and confirm before it is actually logged against them.&amp;#160; We don't have to waste time in the triage meetings discussing whether its a bug or not. Now business only take call on functional bugs which are more important to end user. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-8437421846582459904?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/reduce-number-of-invalid-defects.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-6466407926172297218</guid><pubDate>Wed, 05 Nov 2008 17:17:00 +0000</pubDate><atom:updated>2008-11-10T10:59:44.777+05:30</atom:updated><title>Butterfly Effect in Software Testing (its happening all the time, did you ever notice)</title><description>&lt;p&gt;&amp;quot;Small variation in the initial condition of a dynamic system may produce large variation in the long term behavior of the system&amp;quot;&lt;/p&gt;  &lt;p&gt;Example: The phrase refers to the idea that a &lt;a href="http://en.wikipedia.org/wiki/Butterfly"&gt;butterfly&lt;/a&gt;'s wings might create tiny changes in the &lt;a href="http://en.wikipedia.org/wiki/Earth%27s_atmosphere"&gt;atmosphere&lt;/a&gt; that may ultimately alter the path of a &lt;a href="http://en.wikipedia.org/wiki/Tornado"&gt;tornado&lt;/a&gt; or delay, accelerate or even prevent the occurrence of a tornado in a certain location.&lt;/p&gt;  &lt;p&gt;and for we guys &lt;strong&gt;&amp;quot;Small variation in the initial&amp;#160; requirement of a dynamic application / product / system may produce large defects in the long term usage of the system&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example: A tiny misinterpretation or misrepresentation of a customer expectation in the form of requirement can ultimately impact the analysis, design and code, testing in such a way that it might result in a product failure or in worst case business failure sometime&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;here tiny change in requirement can be compared with butterfly's flapping of wings and because this change was not detected in the requirement stage and it keeps on passing through analysis, design and coding phase and finally gets so much amplified that the impact becomes a huge loss to the business.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of my friend had been asked in an interview &amp;quot;&lt;strong&gt;what is Domino effect in software testing?&amp;quot;&amp;#160; &lt;/strong&gt;He didn't know and hence couldn't answer.&lt;/p&gt;  &lt;p&gt;It is again related to Butterfly effect and Chaos theory that a small change anywhere in the system (requirement, analysis, design, code, testing) can cause a similar change nearby and that will another similar change and so on in a linear sequence.&lt;/p&gt;  &lt;p&gt;Example: A wrong change in requirement -&amp;gt; similar change in analysis to accommodate that -&amp;gt; similar change in design for that analysis-&amp;gt; similar change in code for that analysis -&amp;gt; similar change in test cases for that requirement and so on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SRHVHH1vsxI/AAAAAAAAEEA/1RwGzkydJVI/800px-Toppledominos%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="338" alt="800px-Toppledominos" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SRHVIJD8EfI/AAAAAAAAEEE/i2siL7msNU8/800px-Toppledominos_thumb%5B2%5D.jpg" width="505" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Interesting fact: The term is best known as a mechanical effect, and is used as an &lt;a href="http://en.wikipedia.org/wiki/Analogy"&gt;analogy&lt;/a&gt; to a falling row of &lt;a href="http://en.wikipedia.org/wiki/Dominoes"&gt;dominoes&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-6466407926172297218?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/butterfly-effect-in-software-testing.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-706937396660578034</guid><pubDate>Sat, 01 Nov 2008 11:16:00 +0000</pubDate><atom:updated>2008-11-04T13:40:23.006+05:30</atom:updated><title>Resurrecting the Prodigal Son – Data Quality (Presented at Test2008)</title><description>&lt;iframe src="http://show.zoho.com/embed?USER=raj.kamal13&amp;DOC=Test2008---Resurrecting-the-Prodigal-Son---Data-Quality---Share-ppt&amp;IFRAME=yes&amp;loop=true&amp;showrel=true" height="378" width="460" name="Test2008---Resurrecting-the-Prodigal-Son---Data-Quality---Share-ppt" scrolling="no" frameBorder="0" style="border:1px solid #aabbcc"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-706937396660578034?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/resurrecting-prodigal-son-data-quality_3978.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-8188383520152601350</guid><pubDate>Sat, 01 Nov 2008 11:09:00 +0000</pubDate><atom:updated>2008-11-04T13:41:01.711+05:30</atom:updated><title>Conference Trip Report Test 2008 – New Delhi, India</title><description>&lt;p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;On Oct 15&lt;sup&gt;th&lt;/sup&gt; and 16&lt;sup&gt;th&lt;/sup&gt;, I attended the &lt;a href="http://www.test2008.in/"&gt;Test 2008&lt;/a&gt; conference in &lt;a href="http://en.wikipedia.org/wiki/New_Delhi"&gt;New Delhi&lt;/a&gt;, India. Test2008 is the first international test conference being organized by Pure Conferences in India. It had speakers from around 10 countries and the theme of the conference was &lt;b&gt;“agility in testing”. &lt;/b&gt;Conference was primary organized by &lt;a href="http://208.116.30.129/itb.htm"&gt;Vipul Koacher&lt;/a&gt; who is the head of Indian Testing Board and also the founder of Pure Conferences. &lt;p&gt;&lt;/p&gt;&lt;p&gt;IMO, the key take away from the conference were the two animated panel discussions on “&lt;i&gt;Agile Testing– Support Vs Against&lt;/i&gt;” and “&lt;i&gt;Schools of Testing – Good or Bad&lt;/i&gt;”. In first panel discussion, the distinguished panel members had mixed reaction to the question “&lt;i&gt;Is the agile development the way to go in future?”&lt;/i&gt; . &lt;a href="mailto:willro@microsoft.com"&gt;William Rollison&lt;/a&gt; (&lt;b&gt;BJ&lt;/b&gt;) gave a great example of successful agile testing happening at Microsoft in OfficeLab team &lt;/p&gt;&lt;p&gt;But the key message is that Agile testing is a great thing but it can’t replace other approaches and techniques especially in life and mission critical applications like aviation. When one panel member asked “&lt;i&gt;How many of us would want to travel by an aircraft which is agile tested?&lt;/i&gt;”, everybody got the point made.&lt;/p&gt;&lt;p&gt;Another panel discussion on much blogged and talked about various “&lt;a href="http://www.io.com/~wazmo/papers/four_schools.pdf"&gt;&lt;i&gt;Schools of Testing&lt;/i&gt;&lt;/a&gt;” like &lt;i&gt;Context-Driven school of testing, Analytic School, Standard School, Quality School &amp;amp; Agile School&lt;/i&gt;, promoted by many leading test practitioners like &lt;a href="http://www.satisfice.com/blog/"&gt;James Bach&lt;/a&gt; and &lt;a href="http://www.developsense.com/"&gt;Michael Bolton&lt;/a&gt; became quite intense. Famous test practitioner Rex Black and BJ made it very clear that they don’t support any such schools of testing and it is really unfair to create a rift in the testing industry by creating these mutually exclusive buckets and emphasized that the software testers should continue to use whichever good test techniques and approaches are available irrespective of which school they belong to.&lt;/p&gt;&lt;p&gt;Like most of the conferences there were three parallel tracks for audiences to choose from. “&lt;i&gt;Interactive Bug Hunt”&lt;/i&gt; by Klaus Olsen was very popular among the attendees as it had 20 minutes hands on to find maximum bugs by forming small teams and ringing bell every time a new bug is discovered. “&lt;i&gt;Building a fuzzing framework for software testers&lt;/i&gt;” by Rahul Verma from McAfee was a technical presentation on various security testing techniques and approaches.&lt;/p&gt;&lt;p&gt;There were couple on presentations made by Microsoft India products team on the role of “&lt;b&gt;Virtualization&lt;/b&gt;” for agile development (&lt;a href="mailto:vinodm@microsoft.com"&gt;Vinod Malhotra&lt;/a&gt;) and “&lt;b&gt;Breaking the dev/test barrier&lt;/b&gt;” using Visual Studio Team System 2010 by &lt;a href="mailto:tvohra@microsoft.com"&gt;Tanuj Vohra&lt;/a&gt;, Partners Director PM, Visual Studio Team, which were very well taken by the audience. This is the first test conference I have attended where Microsoft’s presence and dominance in software test industry was clearly visible.&lt;/p&gt;&lt;p&gt;I had the opportunity to present a paper with my co-speaker &lt;a href="mailto:bhoomg@microsoft.com"&gt;Bhoomika Goyal&lt;/a&gt; on “&lt;a href="http://www.slideshare.net/raj.kamal13/test2008-resurrecting-the-prodigal-son-data-quality-share-presentation"&gt;Resurrecting the Prodigal Son – Data Quality&lt;/a&gt;” which went quite well. We have received compliments from many attendees for choosing this relatively newer topic at the software test conference. Many participants agreed that Data Quality testing is an industry wide problem with very high impact but it has still remained ignored for a very long time and now the trends (investment made in Data Profiling, Data governance by industry leaders) show that having good data quality is extremely important for making accurate and timely decisions which is the most critical factor for the success of our customers. We presented a case study on DQ Test Automation Framework from our actual learning at Microsoft Business Intelligence COE, India.&lt;/p&gt;&lt;p&gt;Finally, this conference had quite a few sessions on Agile testing which gave me a new insight on how it is practiced industry-wide and how we can leverage that better at work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-8188383520152601350?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/conference-trip-report-test-2008-new.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-7591814122101438303</guid><pubDate>Sat, 01 Nov 2008 11:07:00 +0000</pubDate><atom:updated>2008-11-01T16:38:22.995+05:30</atom:updated><title>Resurrecting the Prodigal Son – Data Quality “Rise from the Ashes: Battle of Data Quality Testing”</title><description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Authors:&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;Raj Kamal&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Microsoft India (R&amp;amp;D) Private Limited,&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Microsoft Campus, &lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;India&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;a href="mailto:rajkamal@microsoft.com"&gt;rajkamal@microsoft.com&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Bhoomika Goyal&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Microsoft India (R&amp;amp;D) Private Limited,&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Microsoft Campus, &lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;India&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="mailto:Goyal.Bhoomika@microsoft.com"&gt;Goyal.Bhoomika@microsoft.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Abstract:&lt;/p&gt;&lt;p&gt;There is perhaps no other activity that is as much a bane of our existence in decision making as “reconciling” data. Data quality testing is a sea with a few large fish (data integrity, data consistency, data accuracy, redundancy-related issues etc.) and many minnows.&lt;/p&gt;&lt;p&gt;Every firm, if it looks hard enough, can uncover a host of costs and missed opportunities caused by inaccurate or incomplete data. This is where Data Quality Testing pitches in and can be instrumental in helping businesses achieve their true potential by reaping the benefits of the timely availability of high quality of data. &lt;/p&gt;&lt;p&gt;After all, who would like to buy yellow pages which contain outdated contact numbers or fly on an airplane that does not conduct preflight checks?&lt;/p&gt;&lt;p&gt;Our mission is to provide information about the costs that testing teams incur due to the lack of data quality testing versus the benefits of taking the actions we propose in this paper.&lt;/p&gt;&lt;p&gt;We would like to answer some important questions which might already be popping into your mind, such as “What is DQ Testing?” If it exists, “What’s wrong with the current approach?”, “What’s new in this paper?”, “What is there in it for me?” and “Where and how can I apply it?”&lt;/p&gt;&lt;p&gt;The objective is to share the key lessons regarding the importance of DQ Testing and present a step-by-step generic test strategy which will help the testers and test managers adopt and apply it when they go back to work, and enjoy the benefits.&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;As data quality is a strategic IT initiative which involves a strong commitment and a huge investment from management, including a steering committee, we will keep the scope of this paper restricted to the contribution the test team can make – an initiative to significantly improve the data quality by incorporating DQ in the testing process which will help your organization by detecting possible DQ issues earlier than your customer reports it.&lt;/p&gt;&lt;p&gt;The unique, yet simple, approach suggested here is to have an automated metadata-driven approach to continuously monitor the health of the application by automating DQ checks which will provide the test team and users with a DQ summary report containing DQ test metrics. &lt;/p&gt;&lt;p&gt;This will create a win-win situation for the testing staff and your enterprise where the testing team can earn the well-deserved credit for improving the DQ of the application by using an effective testing approach and helping the users of the application feel confident of the data health while making critical business decisions.&lt;/p&gt;&lt;p&gt;1 Introduction:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;u&gt;Data Quality&lt;/u&gt;: Data are of high quality "if they are fit for their intended uses in operations, decision making and planning" (J.M. Juran).&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Poor data quality can seriously hinder or damage the efficiency and effectiveness of organizations and businesses. If not identified and corrected early on, defective data can contaminate all downstream systems and information assets. The growing awareness of such repercussions has led to major public initiatives like the “Data Quality Act” in the USA and the “European 2003/98” directive of the European Parliament. Enterprises must present data that meet very stringent data quality levels, especially in the light of recent compliance regulations standards.&lt;/p&gt;&lt;p&gt;2 Fable:&lt;/p&gt;&lt;p&gt;The task at hand is to test a large data warehouse and CRM implementation of a global bank which has a huge volume of transactional data (on the scale of terabytes) scattered among various disparate sources in different formats like flat files, DB2, Oracle, SQL server, MS Access, Excel etc. To make things even more complex, a medium-sized regional bank is acquired and merged which brings in additional gigabytes of data such as customer information, loan information, account details etc.&lt;/p&gt;&lt;p&gt;The test team faces the challenge of ensuring the quality of the data which is as complex as the data for a subject area, since a customer might be stored in more than one source in different formats and the underlying business rules vary among the systems. The integration and transformation of data performed by the development team has a higher probability of missing significant data, duplicating existing data and introducing latencies, inconsistencies and inaccuracies into the system. &lt;/p&gt;&lt;p&gt;The experienced test team manually verifies and validates the integrated data showing up in the reports coming out of data warehouse against the business rules. Few test cases are written to test the sample data flow from sources to data warehouse to reports and the test team certifies the application.&lt;/p&gt;&lt;p&gt;A couple of days after the production release, the customer comes back with a list of DQ issues, for example they can’t find some important data or some of the data is repeated multiple times in the drop-downs and the KPI (key performance indicators) are showing incorrect results. Later it is discovered that there are flaws in the transformation and integration logic and data was missed, duplicated and incorrectly manipulated resulting in many DQ issues.&lt;/p&gt;&lt;p&gt;Finally the customer rejects the application and goes back to manual reporting based on the legacy application and the IT team starts working on fixing and testing the DQ issues which could have been avoided by a focused DQ test approach for testing various dimensions of data qualities.&lt;/p&gt;&lt;p&gt;3 DQ Testing Problems / Sore Points:&lt;/p&gt;&lt;p&gt;DQ Testing has always been given less importance than it deserves, and for more than one reason.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3.1 DQ Requirements are “missed” in the Functional Specifications&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Typically, DQ Requirements (DQ Definitions, Scope, Acceptance Criteria, Measurement criteria) are not covered in the Functional Specs and are not explicitly articulated by the business. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw3qTYq3BI/AAAAAAAADIU/tfjNiCuJ4_s/clip_image002%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="125" alt="clip_image002" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw3rKbmc7I/AAAAAAAADIY/QVergG1w2wI/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig. 1: Ishikawa Diagram &lt;/p&gt;&lt;p&gt;&lt;b&gt;3.2 White box Testing / Technical knowledge is required&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The testing team is often expected to perform black-box testing or functional testing based alone on the functional specifications given by the business. It was often assumed that the underlying architecture and the design (which also includes processing, transformation as well as flow of data) fall under the development team’s responsibility and have to be tested by developers during unit testing. &lt;/p&gt;&lt;p&gt;&lt;b&gt;3.3 Management overconfidence on quality of their data&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It was often the case that management felt that their data couldn’t have inconsistencies or inaccuracies and that activities like data integration can’t impact the overall quality of data. &lt;/p&gt;&lt;p&gt;&lt;b&gt;3.4 Complexity grows with CRM / ERP Implementations &amp;amp; Mergers / Acquisitions&lt;/b&gt;&lt;/p&gt;&lt;p&gt;In the last decade, as a result of globalization along with the worldwide CRM and ERP implementations trend and strategic decisions like mergers/acquisitions, data integrations has become a bigger challenge for testers due to the exponential increase in the complexity of data.&lt;/p&gt;&lt;p&gt;Testing Data warehousing, CRM and e-business projects often involves testing poor quality data because they require companies to extract and integrate data from multiple operational systems. Data that is sufficient to run individual operations is often riddled with errors, missing values and integrity problems that do not show up until someone tries to summarize or aggregate the data.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3.5 Dynamic nature of the data which quickly becomes obsolete over time&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Experts say that 2% of the records in a customer file become obsolete in a month because customers die or divorce, marry and move. In addition, data-entry errors, system migrations, system integrations and changes to source systems, among other things, generate numerous errors such as inconsistencies, inaccuracies, latencies etc.&lt;/p&gt;&lt;p&gt;4 DQ Adoption Guide&lt;/p&gt;&lt;p&gt;If your project falls under any of the categories shown in the diagram below then you enter the realm of DQ Testing. Basically whenever data is created, modified, integrated or processed from one form to another, there is a probability of introducing DQ issues and hence DQ testing is a must.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw3sBlSXMI/AAAAAAAADIc/ssByo5fgCnI/clip_image004%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="98" alt="clip_image004" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw3tB9AJNI/AAAAAAAADIg/SkYUGfXiLUs/clip_image004_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig. 2: Project Categories&lt;/p&gt;&lt;p&gt;5 DQ Test Strategy:&lt;/p&gt;&lt;p&gt;Data Quality Testing is the process of verifying the reliability and effectiveness of data. Maintaining data quality requires monitoring the data periodically and reporting it as early as possible. DQ Test Strategy should be prepared during the requirement analysis phase as it is important to define and measure DQ requirements which are expected by the customer.&lt;/p&gt;&lt;p&gt;DQ Testing can be done in a “&lt;b&gt;Preventive&lt;/b&gt;” as well as “&lt;b&gt;Reactive&lt;/b&gt;” manner. Focusing on DQ from the envisioning phase ensures that DQ issues are prevented by means of verification/static testing. As explained in &lt;i&gt;Section 5&lt;/i&gt; below, a Reactive approach has been developed which can identify the DQ issues that have crept into the system by monitoring the DQ health on a continuous basis. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw3t5fMGWI/AAAAAAAADIk/l9qaVes7R-I/clip_image006%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="94" alt="clip_image006" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw3vPbvV0I/AAAAAAAADIo/X1G7JHuDUm8/clip_image006_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig. 3: DQ Strategy &lt;/p&gt;&lt;p&gt;5.1 Test Prioritization (Kano Analysis): &lt;/p&gt;&lt;p&gt;This approach suggests prioritizing the performance of DQ checks depending on their importance to the customer which results in increased performance and satisfaction.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw3vy46RsI/AAAAAAAADIs/kiUs7bWyIkE/clip_image008%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="162" alt="clip_image008" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw3wdjnqBI/AAAAAAAADIw/69ZEqsIRJIk/clip_image008_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig. 4: Kano Analysis &lt;/p&gt;&lt;p&gt;As shown in the Kano analysis in the figure above, the DQ Dimensions/Audits are classified in terms of the following categories: &lt;/p&gt;&lt;p&gt;&lt;b&gt;Must be’s (Expected Quality): &lt;/b&gt;&lt;/p&gt;&lt;p&gt;The highest test priorities should be given to the typical DQ checks shown in the figure above as these are the basic explicit customer requirements&lt;/p&gt;&lt;p&gt;&lt;b&gt;One Dimensional (Desired Quality):&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The next important requirements are the DQ checks like Timeliness, Availability etc. as these are most often the promised requirements.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Delighters (Excited Quality): &lt;/b&gt;&lt;/p&gt;&lt;p&gt;DQ checks which are not requested by the customer but which can increase the satisfaction by meeting these implicit requirements.&lt;/p&gt;&lt;p&gt;5.2 DQ Testing Approach &lt;/p&gt;&lt;p&gt;The involvement of the testing team starts right from the requirements phase and continues throughout the life span of the project. The test team has to ensure that DQ is appropriately defined and the measurement criteria are included in the requirement document along with the threshold and acceptance criteria defined by the business for each DQ check.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw3xK5c1PI/AAAAAAAADI0/3UaJylIyfN0/clip_image010%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="135" alt="clip_image010" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw3x0ZQcNI/AAAAAAAADI4/gKZKjsPm-9o/clip_image010_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig. 5: DQ LifeCycle &lt;/p&gt;&lt;p&gt;DQ Test Planning:&lt;/p&gt;&lt;p&gt;· Define Data Quality test approach &amp;amp; the scope of testing by taking inputs from the business.&lt;/p&gt;&lt;p&gt;· Decide on the test metrics to monitor &amp;amp; measure DQ.&lt;/p&gt;&lt;p&gt;DQ Test Design:&lt;/p&gt;&lt;p&gt;· Create DQ Test Scenarios with the expected test results (&lt;i&gt;refer to Section 6 below&lt;/i&gt;).&lt;/p&gt;&lt;p&gt;· Have it reviewed by the business and against the threshold values for each DQ check.&lt;/p&gt;&lt;p&gt;· Prepare DQ Metadata from Data dictionary, Business Rules from FS and Input from Business.&lt;/p&gt;&lt;p&gt;DQ Test Execution &amp;amp; Reporting: &lt;i&gt;(refer to Figure under Section 5)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;· Automate DQ test scenarios for checks which can be scheduled to run for the DQ metadata over a period of time.&lt;/p&gt;&lt;p&gt;· Log the DQ test scenarios result (manual/automation) and report DQ discrepancies to the users.&lt;/p&gt;&lt;p&gt;DQ Test Monitoring:&lt;/p&gt;&lt;p&gt;· Run DQ Test scenarios on a scheduled basis to continuously monitor the health of the applications.&lt;/p&gt;&lt;p&gt;· Send the automated reports/notifications to the users with the discrepancy summary of the DQ Test Metrics (refer to &lt;i&gt;Sec&lt;/i&gt;&lt;i&gt;tion 7) &lt;/i&gt;which are violating the defined threshold during planning.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;6 DQ Test Implementation / Solution:&lt;/p&gt;&lt;p&gt;To ensure information quality, the test team has to address it from the very beginning. The test team is required to define data quality in a broad sense by taking inputs from the business, establish metrics to monitor and measure it, and determine what should be done if the data fails to meet these metrics. Data quality issues need to be detected as early in the process as possible and dealt with as defined in the business requirements.&lt;/p&gt;&lt;p&gt;DQ Inputs:&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Metadata&lt;/b&gt;: contains list of server name, database name, table names, and column name against which DQ checks need to be performed.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Business Rules&lt;/b&gt;: contain the functional logic and formulas which are used to process and transform the data.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Thresholds&lt;/b&gt;: the values which define the valid range or accepted deviation for various DQ Metrics.&lt;/p&gt;&lt;p&gt;DQ Engine:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Automated Scripts for DQ Checks:&lt;/b&gt; These can be your SQL code to validate consistency, accuracy, validity, row count etc. against the metadata which is keyed as input.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Discrepancy/Results Tables:&lt;/b&gt; Automation scripts log the discrepancies in these tables by comparing the output against the discrepancies based on the threshold defined.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Scheduling for DQ Checks to run:&lt;/b&gt; Automation scripts are run in an “unattended” mode on a continuous basis to track the DQ health of the application over a period of time.&lt;/p&gt;&lt;p&gt;DQ Output:&lt;/p&gt;&lt;p&gt;· &lt;b&gt;DQ Discrepancy Summary Reports with Metrics:&lt;/b&gt; Based on the template defined, DQ metrics are calculated from the discrepancies logged by the DQ Engine and reported to customers and management in the form of DQ Notifications/e-mails.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;DQ Issues/Bugs:&lt;/b&gt; DQ issues like application bugs are triaged with the development team and the customers and pass through the typical defect lifecycle. &lt;/p&gt;&lt;p&gt;DQ Feedback &amp;amp; Continuous Process Improvement:-&lt;/p&gt;&lt;p&gt;· &lt;b&gt;DQ Automatic Feedback &amp;amp; Continuous Improvement:&lt;/b&gt; The IT team along with the business decides the corrective actions and the priority.&lt;/p&gt;&lt;p&gt;Some of the corrective actions can be:&lt;/p&gt;&lt;p&gt;o Fixing the code to rectify the DQ issue&lt;/p&gt;&lt;p&gt;o Change in requirement or functional spec if it was a functional DQ issue&lt;/p&gt;&lt;p&gt;o Change in design, architecture if it was an environment or performance related issue&lt;/p&gt;&lt;p&gt;Following are the important “&lt;i&gt;DQ Components&lt;/i&gt;” which can be automated by the test team to make the DQ test monitoring a continuous process:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw3ysACJvI/AAAAAAAADI8/NaeA1myQ0ZI/clip_image012%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="191" alt="clip_image012" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw3zihaXEI/AAAAAAAADJA/NXiyCebBLm0/clip_image012_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig. 6: DQ Implementation &lt;/p&gt;&lt;p&gt;7 DQ Test Scenarios:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw30qZnoeI/AAAAAAAADJE/JWWv3VAcncs/clip_image014%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="193" alt="clip_image014" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw31ODGBAI/AAAAAAAADJI/nrprOCYI6RA/clip_image014_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig. 7: DQ Checks &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.1 Row Counts:&lt;/b&gt; &lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw32Jy-3MI/AAAAAAAADJM/Naeg_lOfS1Q/clip_image015%5B8%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw33sFTtUI/AAAAAAAADJQ/GOaQ89yDLcQ/clip_image015_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Count of records at Source and Target should be the same at a given point of time.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw34KbWeXI/AAAAAAAADJU/1OBuKnejGwo/clip_image017%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="135" alt="clip_image017" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw35IakkwI/AAAAAAAADJY/bjyTDTHztcs/clip_image017_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig. 8: Row Count Example &lt;/p&gt;&lt;p&gt;&lt;b&gt;7.2 Completeness:&lt;/b&gt; &lt;b&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw354YA5wI/AAAAAAAADJc/aeaGCgprMhg/clip_image015%5B1%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015[1]" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw36OBJg8I/AAAAAAAADJg/WKBFAcFc85I/clip_image015%5B1%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;All the data under consideration at the Source and Target should be the same at a given point of time satisfying the business rules.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw367NA9vI/AAAAAAAADJk/DyeRQiT5WsY/clip_image019%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="142" alt="clip_image019" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw37v1vk6I/AAAAAAAADJo/McXQktLnqF4/clip_image019_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 9: Completeness Check&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.3 Consistency:&lt;/b&gt;&lt;b&gt; &lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw38Md87II/AAAAAAAADJs/lJrx-9sBWSU/clip_image015%5B2%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015[2]" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw38_ha0bI/AAAAAAAADJw/wf7LNxuvp_8/clip_image015%5B2%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This ensures that each user observes a consistent view of the data, including changes made by transactions. There is data inconsistency between the Source &amp;amp; Target if the same data is stored in different formats or contains different values in different places. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw3-P2Ru_I/AAAAAAAADJ0/zpmaNHlH0pM/clip_image021%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="200" alt="clip_image021" hspace="hspace" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw3-yYkmAI/AAAAAAAADJ4/LvMDmCsYVJ0/clip_image021_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig 10: Consistency Check Example &lt;/p&gt;&lt;p&gt;There is a need for tools that can handle international data differences, that require such features as support for Unicode and rules engines that can deliver local address validation and other functions across multiple languages and formats.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4AHVWlBI/AAAAAAAADJ8/MsTW297t75U/clip_image023%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="192" alt="clip_image023" hspace="hspace" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4A7kDpbI/AAAAAAAADKA/R1t4dDafwN4/clip_image023_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig 11: Consistency Check Example #2 &lt;/p&gt;&lt;p&gt;&lt;b&gt;7.4 Validity:&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4BfmTIJI/AAAAAAAADKE/2FndWjEDnb0/clip_image015%5B3%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015[3]" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4DXKGkLI/AAAAAAAADKI/GUIbVrPFqlM/clip_image015%5B3%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Validity refers to the correctness and reasonableness of data. A valid measure must be reliable, but a reliable measure need not be valid.&lt;/p&gt;&lt;p&gt;Questions: &lt;/p&gt;&lt;p&gt;-&amp;gt; Is the information reliable?&lt;/p&gt;&lt;p&gt;-&amp;gt; How is the information measured?&lt;/p&gt;&lt;p&gt;&lt;i&gt;Fact: A large bank discovered that 62% of its home-equity loans were being calculated incorrectly, with the principal getting larger each month.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4D69LcVI/AAAAAAAADKM/8Cs8Zvu4h-A/clip_image025%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="146" alt="clip_image025" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4FAYZqHI/AAAAAAAADKQ/gW7RRZhICe0/clip_image025_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig 12: Validity Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.5 Redundancy/Duplicates Detection:&lt;/b&gt;&lt;b&gt; &lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4F7EWzjI/AAAAAAAADKU/NCnuLuL5BYI/clip_image027%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image027" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4GZdyQnI/AAAAAAAADKY/4WQpMQKTOfs/clip_image027_thumb.jpg" width="25" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Consider what happens when a single customer is included in a company's database multiple times, each time with a different value for the customer identifier. In such a case, your company would be unable to determine the true volume of this customer's purchase. You could even be placed in the embarrassing situation of attempting to sell the customer an item that the customer has already purchased from you.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Physical Duplicates: &lt;/b&gt;All the column values repeating for at least 2 records in a table.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Logical Duplicates:&lt;/b&gt; Business Key (list of column) values are repeating for at least 2 records in a table.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4HKbLq9I/AAAAAAAADKc/_7IJWeVT2QY/clip_image029%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="159" alt="clip_image029" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4HuoBYZI/AAAAAAAADKg/wLGwOXdVT8M/clip_image029_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 13: Duplicates Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;7.6 Referential Integrity:&lt;/b&gt;&lt;b&gt; &lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4IMwy06I/AAAAAAAADKk/ZJtB32II3aQ/clip_image026%5B4%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image026" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4IbgQ9PI/AAAAAAAADKo/LTosQOLTrEE/clip_image026_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;If there are child records for which there are no corresponding parent records then they are called “Orphan Records”. Logical relationship rules between parent &amp;amp; child tables should be defined by the business.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4JHyA70I/AAAAAAAADKs/rtgtFROCOhw/clip_image031%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="110" alt="clip_image031" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4J1YVG8I/AAAAAAAADKw/U726U7LfsmM/clip_image031_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fig 14: Referential Integrity Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;7.7 Domain Integrity: &lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4KQmhzrI/AAAAAAAADK0/5Btc4-IlJmU/clip_image015%5B4%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015[4]" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4LWIAkKI/AAAAAAAADK4/nihDWKe2GHg/clip_image015%5B4%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4MfvnwUI/AAAAAAAADK8/pnFgZnR6bSs/clip_image033%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="142" alt="clip_image033" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4M2wdIfI/AAAAAAAADLA/muib5uiLq2g/clip_image033_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 15: Domain Integrity Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4N46LFCI/AAAAAAAADLE/kRWs78MgXyQ/clip_image035%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="156" alt="clip_image035" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4PGkR26I/AAAAAAAADLI/urXZjZdnKoI/clip_image035_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;Fig 16: Domain Integrity Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.8 Accuracy&lt;/b&gt;&lt;b&gt;: &lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4PbW8ZkI/AAAAAAAADLM/qjPNGiEJ9YU/clip_image015%5B5%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image015[5]" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4QZcMjTI/AAAAAAAADLQ/GVqj8aZ7KKw/clip_image015%5B5%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4Rd8TH_I/AAAAAAAADLU/HtoptoA5cLE/clip_image037%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="136" alt="clip_image037" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4SGVrhoI/AAAAAAAADLY/KLhpX19cEkw/clip_image037_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 17: Accuracy Check&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.9 &lt;/b&gt;&lt;b&gt;Usability&lt;/b&gt;&lt;b&gt;: &lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4ShuEhfI/AAAAAAAADLc/dGrUufWf_6w/clip_image026%5B1%5D%5B2%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image026[1]" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4TdPpitI/AAAAAAAADLg/AiYmhXjPk10/clip_image026%5B1%5D_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4UJJ-EbI/AAAAAAAADLk/HBGNCEl3yq8/clip_image039%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="108" alt="clip_image039" src="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4U8mq25I/AAAAAAAADLo/fRw_Prw9S8I/clip_image039_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 18: Usability Check &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.10 &lt;/b&gt;&lt;b&gt;Timeliness&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4V7YlxpI/AAAAAAAADLs/zHpNhz1on08/clip_image040%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="20" alt="clip_image040" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4WW_lG5I/AAAAAAAADLw/EKfgKLTGHJg/clip_image040_thumb.jpg" width="18" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4WzYOlCI/AAAAAAAADL0/x-PdB26kH08/clip_image042%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="114" alt="clip_image042" src="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4Xd1NiUI/AAAAAAAADL4/lDCnoSaurRw/clip_image042_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 19: Timeliness Check &lt;/p&gt;&lt;p&gt;8 Key DQ Test Metrics: &lt;/p&gt;&lt;p&gt;Data Quality metrics, which helps in quantifying the quality of data over different dimensions, can be derived on a scheduled basis from the DQ Test Scenarios execution or result logs for various DQ checks manually/automatically by having a DQ test implementation in place (similar to the one proposed above) &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_IWEJ_QTVH1c/SQw4YL_KHsI/AAAAAAAADL8/OFNNkAWsk6g/clip_image044%5B3%5D.jpg"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="225" alt="clip_image044" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4Y6T1vYI/AAAAAAAADMA/Wa6xu9R5Wb0/clip_image044_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Fig 20: DQ Test Metrics&lt;/p&gt;&lt;p&gt;These DQ metrics are critical so that management may determine the DQ health of the integrated system. Depending on the project needs and the criticality, the frequency of calculating and reporting these metrics can be determined.&lt;/p&gt;&lt;p&gt;9 Conclusion:&lt;/p&gt;&lt;p&gt;It is critical to measure the effectiveness of the test strategy as it is the key to &lt;i&gt;“continuous process improvement”.&lt;/i&gt; We will talk about this in detail in our next white paper. Stay tuned.&lt;/p&gt;&lt;p&gt;Today we have introduced many DQ test problems and recommended a test strategy to tackle them. We can assure you that the complexity and the scope of data quality testing in large enterprises are difficult for a layman to understand. Most test teams do not prepare or adopt a dedicated test strategy to build quality into their data in a proactive, systematic and sustained manner. Many potential DQ issues can be avoided by implementing the proposed DQ Test strategy as part of the overall test process. It is often not until you discover a major problem in production that could have been avoided through quality control of your data that you recognize the importance of data quality. As a consequence, the business may lose revenue, opportunities, even customers, and in the worst case can even get sued. &lt;/p&gt;&lt;p&gt;&lt;i&gt;Don’t end up like them. Be different. Always remember to put quality first.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;9. References:&lt;/p&gt;&lt;p&gt;[1] The Kano Analysis: Customer Needs Are Ever Changing by J. DeLayne Stroud&lt;/p&gt;&lt;p&gt;&lt;a href="http://finance.isixsigma.com/library/content/c071017a.asp"&gt;http://finance.isixsigma.com/library/content/c071017a.asp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[2] Be Prepared to Duel with Data Quality – Rick Sherman&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.athena-solutions.com/bi-brief/2006/jan06-issue24.html"&gt;http://www.athena-solutions.com/bi-brief/2006/jan06-issue24.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[3] Trends in Data Quality – Lou Agosta&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dmreview.com/issues/20050201/1018111-1.html"&gt;http://www.dmreview.com/issues/20050201/1018111-1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[4] Gartner ranks data quality management software, reveals trends - Hannah Smalltree&lt;/p&gt;&lt;p&gt;&lt;a href="http://searchdatamanagement.techtarget.com/news/article/0,289142,sid91_gci1263861,00.html"&gt;http://searchdatamanagement.techtarget.com/news/article/0,289142,sid91_gci1263861,00.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[5] Data Warehousing Special Report: Data quality and the bottom line -Wayne W. Eckerson&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.adtmag.com/article.aspx?id=6321&amp;amp;page"&gt;http://www.adtmag.com/article.aspx?id=6321&amp;amp;page&lt;/a&gt;=&lt;/p&gt;&lt;p&gt;[6] The Importance of Quality Control: How Good Is Your Data? - Andrew Greenyer&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.customerthink.com/article/importance_quality_control_how_good_data"&gt;http://www.customerthink.com/article/importance_quality_control_how_good_data&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[7] Garbage In, Garbage out: The Importance of quality ideas – Jennifer Hanson&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.fastcompany.com/blog-post/garbage-garbage-out-importance-quality-ideas"&gt;http://www.fastcompany.com/blog-post/garbage-garbage-out-importance-quality-ideas&lt;/a&gt;&lt;/p&gt;&lt;p&gt;10. Authors:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4ZQNU5AI/AAAAAAAADME/4hVqaRq70k0/clip_image046%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="169" alt="clip_image046" src="http://lh4.ggpht.com/_IWEJ_QTVH1c/SQw4aGfrbzI/AAAAAAAADMI/xcpPKcs0CVI/clip_image046_thumb.gif" width="176" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Raj is a Test consultant specializing in different types of testing techniques, test automation and testability in different domains like Manufacturing, Healthcare and Higher Education. He holds an APICS certification in Supply Chain Management. Expertise with Rational and Mercury testing tools, he has helped teams develop test automation strategies and architectures for such companies as Cognizant Technology Solutions and Oracle Corporation. He also provides training in automated testing architectures and design. He is QAI (CSTE) &amp;amp; ISTQB Certified. He has a master's degree in Computer Applications. He is currently working at Microsoft, India, Business Intelligence COE. He has earlier represented Microsoft and Oracle at International test conferences as a Speaker.&lt;/p&gt;&lt;p&gt;His Blog (&lt;a href="http://www.itest.co.nr/"&gt;http://www.itest.co.nr/&lt;/a&gt; )&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_IWEJ_QTVH1c/SQw4ancz5tI/AAAAAAAADMM/KN3y6aGj-1Y/clip_image048%5B3%5D.gif"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="170" alt="clip_image048" src="http://lh5.ggpht.com/_IWEJ_QTVH1c/SQw4bP1k5rI/AAAAAAAADMQ/4I_3tg5UsBs/clip_image048_thumb.gif" width="129" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Bhoomika has been working with Microsoft for more than a year now as a part of the APEX program. She has completed her first two rotations in Development and Test discipline. Has done her B.E. – Information Technology from Vivekanand Education Society’s Institute of Technology, Chembur, Mumbai. She has mainly worked in technologies like C, C++, Visual Basic, Java, SQL Server, ASP.NET, C# and SharePoint. Her hobbies include Playing Chess, Solving Puzzles and Reading.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-7591814122101438303?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/resurrecting-prodigal-son-data-quality_2524.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-7969360878368999682</guid><pubDate>Sat, 01 Nov 2008 09:58:00 +0000</pubDate><atom:updated>2008-11-01T15:33:32.609+05:30</atom:updated><title>Resurrecting the Prodigal Son – Data Quality (Test 2008 International Conference)</title><description>&lt;a href="http://www.slideshare.net/raj.kamal13/test2008-resurrecting-the-prodigal-son-data-quality-share-presentation"&gt;http://www.slideshare.net/raj.kamal13/test2008-resurrecting-the-prodigal-son-data-quality-share-presentation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-7969360878368999682?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/11/resurrecting-prodigal-son-data-quality.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-1081845865116029002</guid><pubDate>Sat, 23 Feb 2008 17:44:00 +0000</pubDate><atom:updated>2008-02-23T23:20:12.947+05:30</atom:updated><title>This is Bugs Story</title><description>&lt;div style="width:425px;text-align:left" id="__ss_278884"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=bugs-story-12037886022191-3"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=bugs-story-12037886022191-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/bugs-story?src=embed" title="View 'Bug&amp;#39;s Story' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-1081845865116029002?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/this-is-bugs-story.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-1689962254561429005</guid><pubDate>Sat, 23 Feb 2008 11:55:00 +0000</pubDate><atom:updated>2008-02-23T17:36:16.537+05:30</atom:updated><title>Million Dollar Question - 20 % Brand new test cases ?</title><description>&lt;p&gt;When is the last time you wrote a test case or&amp;nbsp; a scenario which you had never written before?&lt;/p&gt; &lt;p&gt;When is the last time you came across a scenario you had never thought in your testing career?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If % of above scenarios (for a given project) is not more than 20 % then:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;You are not adding value to the customer by rewriting the old stuff.&lt;/li&gt; &lt;li&gt;You are not realizing your true potential.&lt;/li&gt; &lt;li&gt;You are reinventing the wheel&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;While doing test case creation, 80 % of times we write&amp;nbsp; fewer than 20 % brand new test cases or scenarios (not trying to fit in pareto just because it looks cool)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I know by now you must have understood where am i coming from and you have would have possibly concluded that it is something not new what I am going to tell you.&lt;/p&gt; &lt;p&gt;But if I don't tell&amp;nbsp; what I am going to tell you then there is no ways that you can find out what am I going to tell you:) so read on.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I promise you that two words I am not going to use in this post are "reuse" and "library", doesn't how much I will be successful because will be tempted to use them.&lt;/p&gt; &lt;p&gt;Reason: Reuse and Library are two most abused words not just in testing industry but IT as a whole. &lt;/p&gt; &lt;p&gt;Disclaimer: Author is not saying that he doesn't believe in reuse and library, its it just that we want to look at the true meaning of the words without using them.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Technique:&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Next time&amp;nbsp; you get an assignment of writing test cases, ensure following things:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;First Step:&lt;/strong&gt; TC Creation&lt;/p&gt; &lt;p&gt;1. Your test case / scenario contains two different logical sections - Generic Vs Application Specific.&lt;/p&gt; &lt;p&gt;2. Generic section should be written in plain English considering what that test case means to someone in real world generic step of execution and expected outcome for those &lt;/p&gt; &lt;p&gt;3. Application Specific section should contain details specific about your application only like exact steps, exact expected result, test data&lt;/p&gt; &lt;p&gt;4. Add a field specifying the "Area" - Web Application (.Net/ Java etc)&amp;nbsp; / Desktop application / Database Application / ERP etc&lt;/p&gt; &lt;p&gt;5. Go through the complete cycle and keep on refining you Generic and Application specific areas.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Effort: (&lt;strong&gt;120 %&lt;/strong&gt;: 100 % (Application specific sections) + 20 % (Generic sections) )&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Second Step: &lt;/strong&gt;Central Repository formulation&lt;/p&gt; &lt;p&gt;1. Pick only logical generic sections from the above set and classify them with different areas.&lt;/p&gt; &lt;p&gt;2. Spread this to other fellow testers and team.&lt;/p&gt; &lt;p&gt;3. Each times someone add any test case / scenario to this repository then&amp;nbsp; quickly look for duplicates:&lt;/p&gt; &lt;p&gt;a) If duplicate, then merge both the test cases to have an enhanced test case.&lt;/p&gt; &lt;p&gt;b) If not duplicate,&amp;nbsp; then make an entry into the repository.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Additional Effort: (&lt;strong&gt;20 %&lt;/strong&gt; - Identifying duplicates and upgrade of repository)&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Third Step:&lt;/strong&gt; &lt;strong&gt;Think Hard&lt;/strong&gt;&amp;nbsp; - Test Case Creation&lt;/p&gt; &lt;p&gt;1. Now for this project (similar to above) ensure the following:&lt;/p&gt; &lt;p&gt;a) Take the generic test cases from the repository based on the "Area" filter.&lt;/p&gt; &lt;p&gt;b) Work on expanding the generic test cases &lt;/p&gt; &lt;p&gt;c) Now ensure that you think of at least&lt;strong&gt; 20 %&amp;nbsp; new scenarios &lt;/strong&gt;which are not present in the repository.&lt;/p&gt; &lt;p&gt;d) Go through the cycle and keep refining step b and c&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Effort: ( Iteration 1: 80 %, Iteration 2: 60 %, Iteration 3: 40 %) &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fourth and Final Step:&lt;/strong&gt; Paying back to the community&lt;/p&gt; &lt;p&gt;1. From Third Step, 1 (b), update the central repository to make the test cases more generic&lt;/p&gt; &lt;p&gt;2. From Third Step, 1 (c), add the test cases to the repository.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Additional Effort: (20 %, identifying duplicate and upgrade of repository)&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Saturation Point:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;After following Step 2,3 and 4 continuously over a period of time, you will reach a state of high TCM (Test Case Maturity) when it will start becoming identifying new scenarios and the effort will continue to go down and you get ROI of the work. &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;One man initiative:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;It can be started by one man but can't be accomplished without strong management support and contribution from the community.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;Million Dollar Question&lt;/em&gt;: Is it always possible to write 20 %&amp;nbsp; brand new scenario's&amp;nbsp; for every project which were not covered in past for a similar project?&lt;/p&gt; &lt;p&gt;Answer:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Scenario 1: If you haven't followed the above practice then yes have a very high chances of writing more than 20 % brand new scenarios very easily for a similar project.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Scenario 2:If you have followed the practices described above by author over a period of time (&amp;gt;3 Iterations) then the possibility of finding another set of 20 % brand new scenarios will become difficult and difficult with every iteration. And one day,you even after applying all your imagination / thinking and even after covering all the requirements, you wont be able to find 20 % more brand new scenarios and that is when you have reached saturation point.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Note: The more the difficultly in identifying brand new scenarios, the more (higher) is your requirement coverage and test case maturity.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;New Testing term coined:&lt;font size="4"&gt; &lt;strong&gt;&lt;font color="#ffffff"&gt;Test Case Maturity&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;You must have heard of CMM levels which define the maturity of an organization's process. TCM is a term which defines the maturity of your test case.&lt;/p&gt; &lt;p&gt;Each time you write a test case , it has certain maturity associated with it which can be calculated by using the&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1. Is the test case covering a most obvious requirement?&amp;nbsp;&amp;nbsp; - Level 0&lt;/p&gt; &lt;p&gt;2. Is test covering the very high level requirement ?&amp;nbsp; - Level 1&lt;/p&gt; &lt;p&gt;3. Is the test case was already written by past and can be used as it is ?&amp;nbsp; Level 2&lt;/p&gt; &lt;p&gt;4. Is it test case written in past can be re-adopted and can be customized for your project?&amp;nbsp; Level 3&lt;/p&gt; &lt;p&gt;5. Is the test case can re-adopted and extended and made generic for other projects too ? Level 4&lt;/p&gt; &lt;p&gt;6. Is your test was a not present in repository and can be added to the central repository for other to adopt ? Level 5&lt;/p&gt; &lt;p&gt;7. Did your test case cover any unique aspect which can impact the existing test cases in central repository ?&amp;nbsp; Level 6&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. Value addition to customer&lt;/p&gt; &lt;p&gt;2. Lesser effort required, lesser cost (&amp;gt; 3 Iterations, not overnight :) )&lt;/p&gt; &lt;p&gt;3. Challenging task for testers, keep them 'thinking'&lt;/p&gt; &lt;p&gt;4. Contributing to the community as a whole&lt;/p&gt; &lt;p&gt;5. Able to get time to think of scenarios and find bugs which never got time for.&lt;/p&gt; &lt;p&gt;6. Standardization of test case across community.&lt;/p&gt; &lt;p&gt;7. Easy for new comers, end users to execute and perform testing.&lt;/p&gt; &lt;p&gt;8. More accurate effort estimation.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ending note:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Saturation point doesn't mean "stop there", but it means that you got to find our other ways to take this to the new level.&lt;/p&gt; &lt;p&gt;Example: You can dissolve 2 teaspoon of sugar in a cup of water in a matter of 20 secs,&lt;/p&gt; &lt;p&gt;another teaspoon of sugar, may be 30 secs, one more teaspoon , its becoming difficult.&lt;/p&gt; &lt;p&gt;just one more tea spoon, not it doesn't work .&lt;strong&gt; &lt;/strong&gt;&lt;em&gt;Is that is what we call a saturation point?&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Thinking:&lt;/strong&gt;&lt;/em&gt; The saturation point is different at different temperatures. The higher the temperature, the more sugar that can be held in solution.&lt;/p&gt; &lt;p&gt;So that's not the end, you can heat the sugar solution and it can hold more amount of sugar so keep trying.&lt;/p&gt; &lt;p&gt;But infinite amount of sugar, may be no.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;BTW, did you do a CTRL + F to verify that if I did&amp;nbsp; use the term "reuse" and "library" again :)&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Please feel free to write your comments !!!!&amp;nbsp; Contact: &lt;a href="mailto:raj.kamal13@gmail.com"&gt;raj.kamal13@gmail.com&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-1689962254561429005?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/million-dollar-question-20-brand-new.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-1653008408740561869</guid><pubDate>Sun, 17 Feb 2008 02:48:00 +0000</pubDate><atom:updated>2008-02-17T08:24:20.648+05:30</atom:updated><title>Rational Requisite Pro - Requirement Management (Advanced Training)</title><description>&lt;div style="width:425px;text-align:left" id="__ss_268889"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=rational-requisite-pro-advanced-1203216478973380-4"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rational-requisite-pro-advanced-1203216478973380-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/rational-requisite-pro-advanced?src=embed" title="View 'Rational Requisite Pro - Advanced' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-1653008408740561869?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/rational-requisite-pro-requirement.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-7908265932768813949</guid><pubDate>Sun, 17 Feb 2008 02:00:00 +0000</pubDate><atom:updated>2008-11-07T09:46:19.966+05:30</atom:updated><title>Test Automation Change Control Process - Sounds Interesting?</title><description>This change control process is to ensure that in a "big" automation project whenre "Modular" Library architecture is followed, libraries are not mistakenly / intentionally changed by the automation testers and every change in the library goes through a well defined "Automation Workflow" depending upon the role and the access rights.&lt;br /&gt;&lt;br /&gt;Changing libraries without this process can even cause the other automation scirpts to fail or having a possibility of redundant code being written for same functionality which is often the reason for automation failure.&lt;br /&gt;&lt;br /&gt;Thought of depicting this process graphically so that everyone here can understand this process.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/R7eV0k8eYpI/AAAAAAAAB38/c4efpRF0Cnk/s1600-h/automation+change+control.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5167763827933995666" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/R7eV0k8eYpI/AAAAAAAAB38/c4efpRF0Cnk/s400/automation+change+control.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Library Change Control Process&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-7908265932768813949?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/test-automation-change-control-process.html</link><author>rajkamal@microsoft.com (Raj)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IWEJ_QTVH1c/R7eV0k8eYpI/AAAAAAAAB38/c4efpRF0Cnk/s72-c/automation+change+control.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-6491806764109895649</guid><pubDate>Sun, 17 Feb 2008 01:19:00 +0000</pubDate><atom:updated>2008-02-17T06:50:50.027+05:30</atom:updated><title>Performance Testing - VU Scripting using IBM Rational Robot &amp; Test Manager</title><description>&lt;div style="width:425px;text-align:left" id="__ss_268847"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=performance-teting-vu-scripting-using-rational-1203210899768270-4"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=performance-teting-vu-scripting-using-rational-1203210899768270-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/performance-teting-vu-scripting-using-rational?src=embed" title="View 'Performance Teting - VU Scripting Using Rational' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-6491806764109895649?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/performance-testing-vu-scripting-using.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-3347530364666128756</guid><pubDate>Sun, 17 Feb 2008 00:43:00 +0000</pubDate><atom:updated>2008-02-17T06:36:42.703+05:30</atom:updated><title>Rational Robot - Training</title><description>&lt;div style="width:425px;text-align:left" id="__ss_268809"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=rational-robot-1203209116826127-2"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rational-robot-1203209116826127-2" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/rational-robot?src=embed" title="View 'Rational Robot' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-3347530364666128756?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/rational-robot-training.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-749853613609886374</guid><pubDate>Sun, 17 Feb 2008 00:22:00 +0000</pubDate><atom:updated>2008-02-17T05:57:56.941+05:30</atom:updated><title>Priortizing Test Activities - A Presentation</title><description>&lt;div style="width:425px;text-align:left" id="__ss_268787"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=priotizing-test-activities-1203207821987566-4"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=priotizing-test-activities-1203207821987566-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/priotizing-test-activities?src=embed" title="View 'Priotizing Test Activities' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-749853613609886374?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/priortizing-test-activities.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-1312688071098046767</guid><pubDate>Sat, 16 Feb 2008 23:33:00 +0000</pubDate><atom:updated>2008-02-17T05:04:42.748+05:30</atom:updated><title>Advanced Rational Robot - A Tribute</title><description>&lt;div style="width:425px;text-align:left" id="__ss_268731"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=advanced-rational-robot-a-tribute-120320361752086-2"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=advanced-rational-robot-a-tribute-120320361752086-2" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/raj.kamal13/advanced-rational-robot-a-tribute?src=embed" title="View 'Advanced Rational Robot   A Tribute' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-1312688071098046767?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2008/02/advanced-rational-robot-tribute.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-2265189850461416281</guid><pubDate>Mon, 01 Oct 2007 10:34:00 +0000</pubDate><atom:updated>2008-11-07T09:46:21.696+05:30</atom:updated><title>Business Values of Testing (Published in TestQuest Magazine)</title><description>&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwD9rOqSPOI/AAAAAAAABVM/5kM3F349E9k/s1600-h/s1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116368095804538082" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwD9rOqSPOI/AAAAAAAABVM/5kM3F349E9k/s400/s1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RwD2P-qSPNI/AAAAAAAABVE/DKr4e69SQio/s1600-h/s2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116359931071708370" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RwD2P-qSPNI/AAAAAAAABVE/DKr4e69SQio/s400/s2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RwDxruqSPMI/AAAAAAAABU8/G62hmaT2XEg/s1600-h/s3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116354910254939330" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RwDxruqSPMI/AAAAAAAABU8/G62hmaT2XEg/s400/s3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwDv4OqSPLI/AAAAAAAABU0/KkUS2VD8Qkg/s1600-h/s4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116352925980048562" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwDv4OqSPLI/AAAAAAAABU0/KkUS2VD8Qkg/s400/s4.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RwDtneqSPKI/AAAAAAAABUs/Fd6rEAKMgiE/s1600-h/s5.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116350439193984162" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RwDtneqSPKI/AAAAAAAABUs/Fd6rEAKMgiE/s400/s5.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RwDa-uqSPJI/AAAAAAAABUk/pX3fIezBWfk/s1600-h/s6.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116329947905014930" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RwDa-uqSPJI/AAAAAAAABUk/pX3fIezBWfk/s400/s6.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RwDUxeqSPII/AAAAAAAABUc/PGIHM2MmdqI/s1600-h/s7.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116323123201981570" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RwDUxeqSPII/AAAAAAAABUc/PGIHM2MmdqI/s400/s7.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RwDTe-qSPHI/AAAAAAAABUU/NASq4imfsbg/s1600-h/s8.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116321705862773874" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RwDTe-qSPHI/AAAAAAAABUU/NASq4imfsbg/s400/s8.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwDO-OqSPGI/AAAAAAAABUM/5J6sZYCzjsE/s1600-h/s9.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5116316745175546978" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwDO-OqSPGI/AAAAAAAABUM/5J6sZYCzjsE/s400/s9.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-2265189850461416281?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/10/dddd.html</link><author>rajkamal@microsoft.com (Raj)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IWEJ_QTVH1c/RwD9rOqSPOI/AAAAAAAABVM/5kM3F349E9k/s72-c/s1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-7253793493206114650</guid><pubDate>Sat, 29 Sep 2007 21:13:00 +0000</pubDate><atom:updated>2007-09-30T02:43:12.595+05:30</atom:updated><title>PONC - Those who speak of progress measure it by “Quantity” and not by “Quality”</title><description>&lt;span xmlns=''&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Test Manager A: Already 3 days of testing is over and you have found just 8 bugs. I am disappointed with the way …….&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tester B: but if you look at the bugs you will find…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Test Manager A: Don't make excuses…when I was a tester, I found "101" bugs in just 2 days. Take example of Tester B007, he has already found 22 bugs and…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tester B: I understand you point and let me explain you that I have found 5 Severity one bugs and they are really critical.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Test Manager A: That's fine but I want you to file at least 10 more bugs before you leave today. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tester B:  Okay &lt;span style='font-family:Wingdings'&gt;L&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Rings any bells? Sounds familiar?  You are very lucky if you are not tester and it didn't happen to you ever &lt;span style='font-family:Wingdings'&gt;J&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Okay folks, I am not telling you a story, this happened to one of my friend in a CMM Level 5 company.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Why Quantity kills Quality? &lt;span style='font-family:Wingdings'&gt;L&lt;/span&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There is an article on "Quantity, Quality, and the Function of Knowledge&lt;strong&gt; "&lt;/strong&gt;by Hartley B. Alexander&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://links.jstor.org/sici?sici=0160-9335%2819050817%292%3A17%3C459%3AQQATFO%3E2.0.CO%3B2-Y&amp;amp;size=LARGE&amp;amp;origin=JSTOR-enlargePage'&gt;http://links.jstor.org/sici?sici=0160-9335%2819050817%292%3A17%3C459%3AQQATFO%3E2.0.CO%3B2-Y&amp;amp;size=LARGE&amp;amp;origin=JSTOR-enlargePage&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;I am presenting an interesting excerpt from this wonderful piece of work on philosophy and human psychology to prove my point:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;'The human mind knows only numbers adequately.', 'The mind only grasp fully and clearly which is reducible to the term of ratio', 'we reduce our impressions to mathematical formulas, and simply by means of this reduction of a confused state to a clear idea, we manage adequately to grasp the real'&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What do we understand by Quantity?&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Quantity is a kind of property which exists as magnitude or multitude. Quantity was first introduced as &lt;a title='Quantum' href='http://en.wikipedia.org/wiki/Quantum'&gt;quantum&lt;/a&gt;, an &lt;a title='Entity' href='http://en.wikipedia.org/wiki/Entity'&gt;entity&lt;/a&gt; having quantity. Being a fundamental term, quantity is used to refer to any type of quantitative properties or attributes of things. In our simple industry terms "Quality is conformance to &lt;a title='Requirement' href='http://en.wikipedia.org/wiki/Requirement'&gt;requirements&lt;/a&gt;."&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Where to Apply?&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Defects / Bugs:&lt;/strong&gt; Finding Quality bugs / defects are more important than finding lots of not that severe bug.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Test Cases:&lt;/strong&gt; Writing few quality test cases is more effective than writing 10001 test cases? In the end a good test case is one which has a high probability of find defects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Automated Test Scripts:&lt;/strong&gt; Automating few test cases which can give you high ROI are better to automate rather than trying to automate 100 % test cases and then ending up doing lot of rework.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Some on the common ways to measure / improve quality are:&lt;br /&gt;&lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt;&lt;strong&gt;KAIZEN (Contribution Process Improvement)&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Quality Management System&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Total Quality Management&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Six Sigma&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Zero Defect&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SPC (Statistical Process Control)&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Suggestions:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt;&lt;strong&gt;Severity:&lt;/strong&gt; When you prepare test plans, define "Severity" definition very clearly.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Prioritization:&lt;/strong&gt; Attack high risk areas first and something which is too critical for customer / end user.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Unit Testing:&lt;/strong&gt; Encourage your dev team to perform a good unit testing so that you can find quality bugs in Integration and System testing phase.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Impact:&lt;/strong&gt; For each bug logged state "&lt;strong&gt;Business Impact&lt;/strong&gt;" of that bug if not been fixed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Worst Case Scenario:&lt;/strong&gt; Always identify and mention the "&lt;strong&gt;WORST CASE SCENARIO&lt;/strong&gt;" of the bug.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Quality of the Build:&lt;/strong&gt; If the bug is Sev 1 and that is critical enough and might be possible cause of many other bugs then immediately stop testing and reject the build. Business users don't have time to analyze your complex bug matrix.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Reports with GRAPHS:&lt;/strong&gt; Give daily reports / weekly report / build summary / test coverage reports with &lt;strong&gt;"Graphs"&lt;/strong&gt; with bug classification as Sev 1, Sev 2 and Sev 3.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Triage&lt;/strong&gt;: Always include the stakeholders (recommended – Customer, Business User) in the BUG TRIAGE meetings and let them know that you have found something critical.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;strong&gt;Talking with Customer always helps&lt;/strong&gt;: If you feel testing estimation are too aggressive then always let the customer know that if test team is given more time then you can discover many more quality bugs and that way over a period of time you will have "many quality bugs and that will increase the bugs count too &lt;span style='font-family:Wingdings'&gt;J&lt;/span&gt;"&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;My viewpoint:&lt;/strong&gt; "Quality is reconcilable with Quantity" &lt;span style='font-family:Wingdings'&gt;J&lt;/span&gt; There is tradeoff that exists between quality and quantity.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Final Verdict:&lt;/strong&gt; Left to readers &lt;span style='font-family:Wingdings'&gt;J&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Lesson Learnt:&lt;/strong&gt; I should try to write "Quality" blogs over "Quantity"  &lt;span style='font-family:Wingdings'&gt;L&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;If you are among the "vital few" who are still thinking what is PONC  ...then it's "PRICE OF NON CONFORMANCE" and that signifies the importance of quality over just quantity.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; There is absolutely nothing wrong with assessing progress by looking at the no. of bugs but I would rather give more importance to **severity** of those bugs. &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-7253793493206114650?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/ponc-those-who-speak-of-progress.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-8178251861951072022</guid><pubDate>Sun, 23 Sep 2007 11:44:00 +0000</pubDate><atom:updated>2007-09-23T17:19:20.404+05:30</atom:updated><title>The ‘Omerta’ of Testers (Mafia)</title><description>Show me one tester with a considerable exposure to IT industry, who never engaged himself into “The Blame Game” intentionally or unintentionally with Developers or Analyst.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“Tick, Tock, and Testimony”&lt;/strong&gt;&lt;br /&gt;Each test team and opponents are asked for justification or tell their side of the story. Old mails are sought out for evidences to prove their point until both were out of time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“You did It, Now Admit it!”&lt;br /&gt;&lt;/strong&gt;Now team held responsible will be penalized for committing that horrendous crime&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“Jury of your management”&lt;/strong&gt;&lt;br /&gt;Management would decide to show mercy or no mercy and the convicted to be added to “Do Not Trust This Blame Game Loser”&lt;br /&gt;&lt;br /&gt;Let’s not dig deep into what causes quality failures or defects in the production, we are trying to understand lot of psychological problems and people issues that often lead to slinging mud at each other.&lt;br /&gt;&lt;br /&gt;After a detailed discussion testing teams from different leading organizations, following are identified as main culprits:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. DREAD:&lt;/strong&gt;&lt;br /&gt;a) Fear of missing a bug.&lt;br /&gt;b) An anxious feeling of not able to find all the bugs.&lt;br /&gt;c) A lack of confidence due to nature of our job where exhaustive testing is not possible in the time given.&lt;br /&gt;d) Scared of the no. of possible permutation and combinations that exist.&lt;br /&gt;e) Panicked by the scarcity of time or resources.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. BALL IS NOT IN MY COURT:&lt;br /&gt;&lt;/strong&gt;Most of the time testers think only when the build comes to them and during the execution phase they are “Accountable” for the quality. That means they can relax and chill out at the time of requirement, design, coding and deployment. Testing and Production is the only phase they can be held responsible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. ACCOUNTABILITY:&lt;br /&gt;&lt;/strong&gt;If anything goes wrong, testers are usually choked by “The Family” (Dev, Analyst, and Management). It’s not that testers are not accountable for quality but the common misconception is that they are the ONLY discipline responsible for QUALITY against the principle “Quality is the responsibility of each employee in the team”&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. PRESSURE&lt;br /&gt;&lt;/strong&gt;Even Indian cricket team dies under pressure then think of a testing team shouldering the responsibility of a product that means both business and satisfaction for the end users.&lt;br /&gt;&lt;br /&gt;Sometime imperativeness takes a toll on the testing efforts and affects the quality of the effort being put by the tester.&lt;br /&gt;&lt;br /&gt;Continuously being bugged by managers often restrict the tester from thinking “out-of-the-box” scenarios and trying out some end user events by putting themselves into end user’s shoes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. QUANTITY OVER QUALITY&lt;br /&gt;&lt;/strong&gt;I don’t know how many times you would have seen that management want to know the no. of bugs to decide upon the performance of the testing team. Priority / Severity take a back seat and Dev / Management shrugs their shoulders to say “Is that all you found?”&lt;br /&gt;&lt;br /&gt;Ultimately it boils down to quantity over quality in performance appraisal of testers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The ‘Omerta of Testers’: STOP the blame game!!!&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;“Whenever a tester appeals to the management against his fellow developer or analyst is either a fool or a coward. A tester who cannot take care of himself without management protection is both. It is as cowardly to blame an offender to justice, even though his offences are against yourself” &lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;Remember Test and Dev are like wheels of a two-wheeler vehicle and only way to move forward is to make a clear distinction of each other’s responsibility and understanding of most important fact that we are working here as a team and for end user what matters the most is a high quality product at a low cost. The Industry, Client, End users don’t care if it is the dev fault or a miss from testing team.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-8178251861951072022?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/omerta-of-testers-mafia.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-2634475992194357098</guid><pubDate>Fri, 07 Sep 2007 12:32:00 +0000</pubDate><atom:updated>2007-09-07T18:17:19.728+05:30</atom:updated><title>Application And Script Independent Framework The Need For Data Normalization</title><description>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;From: &lt;a href="http://www.slideshare.net/guest0efb5e/"&gt;guest0efb5e&lt;/a&gt;, 24 minutes ago&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://s3.amazonaws.com/slideshare/ssplayer.swf?id=104909&amp;doc=software-testing-application-and-script-independent-automation-framework-the-need-for-data-normalization1842" width="425" height="348"&gt;&lt;param name="movie" value="http://s3.amazonaws.com/slideshare/ssplayer.swf?id=104909&amp;doc=software-testing-application-and-script-independent-automation-framework-the-need-for-data-normalization1842" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/JnB0PTExODkxNjgzNDYwNDYmcD0xMDE5MSZkPSZuPWJsb2dnZXI=.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-2634475992194357098?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/application-and-script-independent.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-5985139711616498832</guid><pubDate>Wed, 05 Sep 2007 07:46:00 +0000</pubDate><atom:updated>2007-09-05T13:17:28.518+05:30</atom:updated><title>Why do you think you are a good testing professional?</title><description>I believe that we (testers) are end user's advocate and are often looked at like devils by our devs folks across the globe :). My aim in life is not to find a million bugs or to show that every day I come up with a new or an advanced automation framework. I believe we are here to prevent bugs from happening  by  constantly focusing on continuous process improvements,  defect prevention techniques and ensuring only one thing that our customer’s expectations are not only met but exceeded by  shipping high quality products keeping the cost of quality at a minimum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-5985139711616498832?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/why-do-you-think-you-are-good-testing.html</link><author>rajkamal@microsoft.com (Raj)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-2920661418693345089</guid><pubDate>Mon, 03 Sep 2007 12:57:00 +0000</pubDate><atom:updated>2008-11-07T09:46:23.483+05:30</atom:updated><title>Mapping Rational Unified Process to Rational Testing Tools</title><description>Abstract&lt;br /&gt;&lt;br /&gt;Rational Unified Process raises everyone’s hope yet often confuses testers to follow it. IBM Rational Tools are used extensively but there is no documentation available, stating when and how to use Rational Testing tools in different RUP phases i.e. Inception, Elaboration, Construction and Transition. It frustrates and disappoints testers. Although Rational Unified Process provides “Tool Mentors” to explain the usage of all the tools but still there is no direct mapping between usage of the Rational Testing Tools and Testing Life Cycle which explain the responsibility of the Testing team through out the SDLC in different Iterations.. This paper presents the guidelines which will suggest the role and responsibility of testing team in different phases of Rational Unified Process. Follow these guidelines as you staff, tool, or schedule your test automation project, and you will be well on your way to success.&lt;br /&gt;&lt;br /&gt;A Fable&lt;br /&gt;&lt;br /&gt;I have worked in many testing projects, big and small. I have seen different projects following RUP model and I have personally talked to many testing teams. I am presenting this paper to avoid these problems faced by them. But first we need to understand it. Let me illustrate with a fable.&lt;br /&gt;&lt;br /&gt;Once upon a time, we have a big project following RUP for a very important client. Client provides the team with Rational Testing Tools. Sujata is a Test Manager; she pulls the experienced testers. Everyone is very excited as they are going to work with best tools in the market and no more excel sheet to write test cases, track defects and to generate report.&lt;br /&gt;&lt;br /&gt;Testers have been trained on Rational Unified Process. Inception Phase, project starts and lot of testing tools available like ClearQuest, RequisitePro, Robot and Test Manager. Testers know how to use tools, thanks to Sujata once again for sending them for Rational Tools Training before putting them into project. They know Rational Unified process too but they don’t know how to use different tools in different phase (Inception, Elaboration, Construction and Transition).&lt;br /&gt;&lt;br /&gt;They use RequisitePro for requirement understanding, test manager for writing test cases but still not sure when to use them and in which phase. Elaboration phase comes followed by construction phase and finally transition phase and Sujata realizes that nothing is in place. All the requirements are not documented, changes are not documented, test cases mapped to requirement have become obsolete, automation was pushed too late, and version was not maintained after a certain period.&lt;br /&gt;&lt;br /&gt;Sujata couldn’t find the problem, she provided the best training to the best testers and they used the best tools in the market but still they couldn’t manage the project. She quits and hand over to Ashish, new test managers. Project is a failure.&lt;br /&gt;&lt;br /&gt;That's my fable. Perhaps parts of the story sound familiar to you. But I hope you haven't seen a similar ending. This paper will suggest some ways to avoid the same fate&lt;br /&gt;&lt;br /&gt;The Problem&lt;br /&gt;&lt;br /&gt;This fable illustrates several problems that plague testing project following RUP:&lt;br /&gt;&lt;br /&gt;What to use when?&lt;br /&gt;This is the major problem which hinders the success of the projects and many times result in total disaster. In the worst case, testers don’t know RUP, usage of automation tools which stops project from doing well. If we consider the best case as mentioned by me in the previous section that even if testers are trained in RUP and usage of testing tools like Robot &amp; TestManager still project might not succeed because they should know when to use Robot, when to use Test Manager and when to use other testing tools like ClearQuest and ClearCase in different phases in RUP.&lt;br /&gt;&lt;br /&gt;How to use?&lt;br /&gt;Other big question is the functionalities and features of the tools those should be given more focus in different phases of RUP.&lt;br /&gt;&lt;br /&gt;Who should use?&lt;br /&gt;This question can be answered if the tester knows what he is supposed to do and what manager is responsible of doing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtxFpeM59YI/AAAAAAAABQw/jrnXINkpf9Q/s1600-h/1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106032656315446658" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtxFpeM59YI/AAAAAAAABQw/jrnXINkpf9Q/s400/1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Guidelines- usage of Rational Testing Tools in a RUP Project&lt;br /&gt;&lt;br /&gt;This paper will be organized by the normal steps that we all use for our testing projects, making special notes of the considerations and challenges that are particular to RUP.&lt;br /&gt;&lt;br /&gt;1. IBM Rational Administrator&lt;br /&gt;2. IBM Rational ClearCase&lt;br /&gt;3. IBM Rational RequisitePro&lt;br /&gt;4. IBM Rational TestManager&lt;br /&gt;5. IBM Rational Robot&lt;br /&gt;6. IBM Rational ClearQuest&lt;br /&gt;&lt;br /&gt;All the above mentioned tools are explained with respect to their usage in different phases of RUP. I haven’t covered Rational Rose as I wanted to keep the focus restricted to the tools which are used in software testing.&lt;br /&gt;&lt;br /&gt;I am giving a brief introduction about RUP phases for the audiences who are new to RUP.&lt;br /&gt;&lt;br /&gt;Inception – Focus of this phase is the understanding the scope of the project.&lt;br /&gt;&lt;br /&gt;Elaboration: The architecture as wells as the requirement of the products being built must be understood by the end of the phase.&lt;br /&gt;&lt;br /&gt;Construction &amp; Integration: Product must be constructed in this phase.&lt;br /&gt;&lt;br /&gt;Transition –The product must be rolled out to customers in this phase.&lt;br /&gt;&lt;br /&gt;Step 1: IBM Rational Administrator&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;During this phase, a shared repository is created using either MS-Access or SQL Sybase Central. A new project folder is created in the share with UNC (Unified Naming Convention). The project should be UCM (Unified Change Management) Enabled to ensure integrity with Rational ClearCase for Configuration Management. Rational Administrator provided the platform to integrate all the rational tools together to achieve end-to-end mapping.&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Create a project&lt;br /&gt;Connect to a project&lt;br /&gt;Create a test datastore&lt;br /&gt;Create integration between products&lt;br /&gt;Decide whether to associate the administrator project with UCM project.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxFzuM59ZI/AAAAAAAABQ4/GF-IjgNW2EY/s1600-h/2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106032832409105810" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxFzuM59ZI/AAAAAAAABQ4/GF-IjgNW2EY/s400/2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.1. Mapping of RUP phases to Rational Testing Tools&lt;br /&gt;&lt;br /&gt;b) Phase: Elaboration&lt;br /&gt;&lt;br /&gt;During Elaboration phase, Rational Administrator is used to create new users with different access rights depending upon the requirement of the project&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp; Integration&lt;br /&gt;&lt;br /&gt;Like Construction phase, Rational Administrator is used for managing users and access rights. It also maintains the integrity between different tools used.&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;&lt;br /&gt;Like Elaboration &amp;amp; Construction phase, Rational Administrator is used for managing users and access rights. It also maintains the integrity between different tools used.&lt;br /&gt;&lt;br /&gt;Step 2: IBM Rational ClearCase&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;ClearCase provides life cycle management and control of software development assets. With integrated version control, automated workspace management, parallel development support, baseline management, and build and release management, Rational ClearCase provides the capabilities needed to create, update, build, deliver, reuse and maintain business-critical assets.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxGLuM59bI/AAAAAAAABRI/HdnEhCVf-Zc/s1600-h/3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106033244725966258" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxGLuM59bI/AAAAAAAABRI/HdnEhCVf-Zc/s400/3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.2.Rational Clear Case Workflow&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Create the configuration management repositories that represent the subsystem defined by your architecture.&lt;br /&gt;Import existing files and directories into the repositories to create an initial set of development configuration items.&lt;br /&gt;Enable your ClearQuest schema to work with UCM&lt;br /&gt;Enable your clear case project to work with ClearQuest.&lt;br /&gt;Set Policies for new projects&lt;br /&gt;&lt;br /&gt;b) Phase: Elaboration&lt;br /&gt;&lt;br /&gt;During this phase too new assets created are base lined and updated. When new test cases are created using Test Manager and new scripts are created using Robot are base lined using UCM concept.&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Updating your project work area using Rational ClearCase.&lt;br /&gt;Checking in and checking out configuration items.&lt;br /&gt;Delivering your work with ClearCase&lt;br /&gt;Promoting project baselines using Rational ClearCase&lt;br /&gt;Comparing baselines using Rational ClearCase.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxHkOM59eI/AAAAAAAABRg/jAlyvwW3M1g/s1600-h/fig3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106034765144389090" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxHkOM59eI/AAAAAAAABRg/jAlyvwW3M1g/s400/fig3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.3.Rational Clear Case detailed diagram&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp; Integration&lt;br /&gt;&lt;br /&gt;Out-of-the-box integration of Rational Test Manager, RequisitePro and Rational ClearQuest with Rational ClearCase LT delivers full base lining capabilities to accommodate the natural evolution of a project, moving from one build or release to the next.&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;&lt;br /&gt;In transition phase, all the artifacts are delivered and existing one are moved to baseline to maintain version control.&lt;br /&gt;&lt;br /&gt;Step 3: IBM Rational RequisitePro&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;&lt;br /&gt;During this phase RequisitePro is mainly used for Managing Requirements. Inception phase focuses mainly on managing the requirements collected.&lt;br /&gt;&lt;br /&gt;“Manage Requirement” is one of the best practices in RUP. Research from Standish Report shows 31 % of projects gets failed because of poor requirements managements, incorrect definition of the requirements from the start of the project and poor requirement management throughout the project life cycle.&lt;br /&gt;Requirements involve the transitions of stakeholder requests into a set of key stakeholder needs and system features. These are detailed into specifications for functional and non-functional requirements.&lt;br /&gt;&lt;br /&gt;Traceability helps us to assess the project impact of a change in requirement, impact of a failure of a test on requirements, manage the scope of project, verify the implementation of requirements and manage changes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With IBM Rational RequisitePro there is little to no learning curve as requirements can be created and updated directly in Microsoft Word, a familiar environment for most people. Documents contain requirements in addition to contextual text that is vital for understanding requirements.&lt;br /&gt;IBM Rational RequisitePro is integrated with IBM Rational Rose XDE, IBM Rational TestManager, IBM Rational SoDA, IBM Rational Unified Process and IBM Rational ClearQuest, as well as Microsoft Project. Integrated tools provide a smooth workflow and eliminate errors due to requirement discrepancies across tools. Integrations keep the entire project team in sync and improve team productivity. Easy access to requirements from other tools encourages all team members to view the requirements before starting their work.&lt;br /&gt;&lt;br /&gt;IBM Rational RequisitePro support for traceability allows you to easily set up and track relationships between requirements to verify whether high-level requirements are associated with detailed software requirements. Querying these relationships provides coverage analysis to ensure completeness and to make sure time is not wasted building irrelevant functionality.&lt;br /&gt;&lt;br /&gt;With IBM Rational RequisitePro, when traceability is established between requirements, and one of the requirement changes, suspect links automatically appear. This allows you to identify other requirements that may be affected by a change.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxGWuM59cI/AAAAAAAABRQ/H9Mut5sap-g/s1600-h/4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106033433704527298" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxGWuM59cI/AAAAAAAABRQ/H9Mut5sap-g/s400/4.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.4.Rational RequisitePro – Shows Coverage Analysis, Features and Vision, Glossary, Impact Analysis, Supplementary Requirements, Use Cases and Requirement Management Plan&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Setting up RequisitePro for a project.&lt;br /&gt;Adding Templates to your Rational RequisitePro project.&lt;br /&gt;Capturing a common vocabulary.&lt;br /&gt;Developing a vision using Rational RequisitePro project.&lt;br /&gt;Detailing a Use case.&lt;br /&gt;Detailing a Business use case.&lt;br /&gt;Reviewing Requirement.&lt;br /&gt;&lt;br /&gt;b) Phase Elaboration&lt;br /&gt;&lt;br /&gt;During Elaboration phase, RequisitePro is used to set priorities for the Requirement and the attributes for the requirements to be implemented.&lt;br /&gt;&lt;br /&gt;In the Elaboration phase, we identify system imperatives and requirements. The product we were developing is part of a larger offering package whose products must comply with system imperatives. Although these requirements did not always add value to our product or our specific client base, we had to invest the time and resources required to implement, test, and document compliance features. This meant cutting our feature list, which required another round of evaluations. At the end of Elaboration, we enter the remaining requirements into IBM® Rational RequisitePro®, our requirements management tool.&lt;br /&gt;&lt;br /&gt;When using IBM Rational Rose XDE, suspect links are displayed between changing requirements and their associated design elements, so that it is clear what parts of the system are affected. Understanding the impact of change allows you to more accurately assess the potential cost in time and money of changing requirements.&lt;br /&gt;&lt;br /&gt;With IBM Rational RequisitePro, defining attributes like priority, difficulty, and cost and having the ability to sort and filter requirements based on these attribute values allows project managers to objectively identify the highest value requirements&lt;br /&gt;&lt;br /&gt;Having carried out the risk-to-use-case mapping for all of the technical risks, we can remove use cases without arrows as candidates for development during Elaboration; we can safely postpone these risks until the Construction phase.&lt;br /&gt;&lt;br /&gt;Then we can look for the risk and identify all the intersecting use cases; implementing any of those use cases will attack that risk. If we continue this exercise for each risk, it soon becomes apparent that we can attack a number of high risks by implementing just a couple of use cases during Elaboration.&lt;br /&gt;&lt;br /&gt;However, remember that earlier we said the goal of Elaboration is to implement the smallest amount of functionality that will confirm whether the high-priority risks we identified either&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;To set priorities for requirements and attributes.&lt;br /&gt;Analyzing the impact of changes by showing suspect links.&lt;br /&gt;Assessing the potential cost and time required for requirement changes.&lt;br /&gt;Sorting and filtering requirements.&lt;br /&gt;Attack requirements with technical risk first.&lt;br /&gt;&lt;br /&gt;Create and Manage Traceability&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxG_OM59dI/AAAAAAAABRY/eLKcr-CvGtk/s1600-h/5.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106034129489229266" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxG_OM59dI/AAAAAAAABRY/eLKcr-CvGtk/s400/5.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.5.Rational RequisitePro shows traceability between Features and Use Cases&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp; Integration&lt;br /&gt;&lt;br /&gt;Out-of-the-box integration with Rational RequisitePro ensures seamless traceability between requirements and test cases, resulting in clear test coverage metrics and sensitivity to requirement modification.&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;&lt;br /&gt;In transition phase, progress reports can be generated using requisite pro to measure requirement coverage and traceability between the requirements.&lt;br /&gt;&lt;br /&gt;Step 4: IBM Rational TestManager&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;&lt;br /&gt;Use TestManager in this phase to design test cases and analyze test logs to do POC (Proof of Concept) for the very few requirements to be implemented. We will be covering this tool exclusively in Elaboration, Construction &amp;amp; Transition Phases.&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Creating a test plan&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b) Phase: Elaboration&lt;br /&gt;&lt;br /&gt;Rational TestManager, which ships with Rational Robot, is the central console for test activity management, execution and reporting. Built for extensibility, it supports everything from pure manual test approaches to various automated paradigms including unit testing, functional regression testing, and performance testing.&lt;br /&gt;&lt;br /&gt;Rational TestManager is meant to be accessed by all members of a project team, ensuring the high visibility of test coverage information, defect trends, and application readiness.&lt;br /&gt;&lt;br /&gt;Establish and manage traceability: Requirements are linked to test cases, ensuring proper test coverage. In addition, suspicion analysis ensures that when requirements change, test cases traced to the requirement are automatically flagged as possible candidates for modification.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rational TestManager puts the test team in control of the testing effort, focusing their effort by automating and simplifying crucial tasks. The tool allows teams to start from, keep track of, and test all the required functionality of an application, helping to ensure no critical business requirements go untested.&lt;br /&gt;&lt;br /&gt;Activities&lt;br /&gt;&lt;br /&gt; Test Folder Creation&lt;br /&gt; Test Case creation&lt;br /&gt; Test Case Design&lt;br /&gt; Associating test inputs and attaching External documents are given more emphasis.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test implementation both Manual and Automated is done for the requirement in scope for elaboration phase.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxH7OM59fI/AAAAAAAABRo/f70wG0VvFNY/s1600-h/6.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106035160281380338" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_IWEJ_QTVH1c/RtxH7OM59fI/AAAAAAAABRo/f70wG0VvFNY/s400/6.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.6.Create a Test Plan, Test Case Folder and Test Cases under that in hierarchical fashion&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp; Transition&lt;br /&gt;&lt;br /&gt;Support for all test types: Plan, manage and execute functional, performance, manual, integration, regression, configuration and component testing from the same interface.&lt;br /&gt;&lt;br /&gt;Support for local and remote test execution: Run tests on the local machine or on remote machines in the test lab. Parallel test execution is limited only by the number of system resources at your disposal.&lt;br /&gt;&lt;br /&gt;Detailed test evaluation: An integrated log viewer constructs a log for each test run, including test status and environmental information.&lt;br /&gt;&lt;br /&gt;Out-of-the-box integration with Rational ClearQuest enables in-context defect submission directly from the TestManager Log Viewer, automatically porting test run data into the defect report to ensure accuracy.&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;Test manager is also used to generate coverage reports to analyze the testing effort and progress for the current phase or iteration. Test plan can be exported to a parcel file and can be delivered as an artifact.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 5: IBM Rational Robot&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;&lt;br /&gt;User Robot to create scripts for the requirements implemented in Inception phase as a part of POC (Proof of Concept). Even Robot will be explored in the subsequent sections.&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Setting up the test environment in Rational Robot&lt;br /&gt;POC (Proof of Concept)&lt;br /&gt;&lt;br /&gt;b) Phase: Elaboration&lt;br /&gt;&lt;br /&gt;Test Scripts are created for the requirements covered in elaboration phase. Test Execution is carried out for the same.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Identifying and developing reusable parts is difficult. It is during the iterations in the elaboration phase that common solutions for common problems are found. This is the phase were many reusable functions or procedures are written in the common libraries to be used effectively in subsequent iterations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp;amp; Integration&lt;br /&gt;&lt;br /&gt;In construction and integration phase, Rational Robot is exclusively used to execute regression test scripts (both manual as well as automation scripts) to do regression testing and new test scripts are developed for the new requirements being implemented in this current release so that the same can be used in the subsequent iterations to perform regression testing. As we know majority of the requirements are implemented in this phase so for these requirements automation is only possible in this release.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IBM Rational Robot can be used to automate and perform regression, functional and configuration testing for e-commerce, client/server and ERP applications. It's used to test applications based upon a wide variety of user interface technologies, and is integrated with the IBM Rational TestManager&lt;br /&gt;&lt;br /&gt;I am listing down the advantages of using Rational Robot for functional testing:&lt;br /&gt;&lt;br /&gt;Simplifies configuration testing.&lt;br /&gt;Tests many types of applications&lt;br /&gt;Ensures testing depth&lt;br /&gt;Tests custom controls and objects&lt;br /&gt;Provides an integrated programming environment&lt;br /&gt;Helps you analyze problems quickly&lt;br /&gt;Enables reuse&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtxIFeM59gI/AAAAAAAABRw/d4gw1pZErdo/s1600-h/7.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106035336375039490" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtxIFeM59gI/AAAAAAAABRw/d4gw1pZErdo/s400/7.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.7.Create modular test scripts and include the VP’s and libraries used (depends on the automation framework being used)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Activity: Creating Test Suite&lt;br /&gt;&lt;br /&gt;Implementing each Test Suite, and managing all subsequent changes to it&lt;br /&gt;Ensuring that the Test Suite accurately reflects the test idea being realized&lt;br /&gt;Ensuring that the Test Suite is implemented according to defined standards so as to be compatible and maintainable with other Test Suites, and with any Test Scripts it is dependent on.&lt;br /&gt;Ensuring that the Test Suite makes reasonably efficient use of the available resources&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;&lt;br /&gt;In transition phase, all the scripts developed previously are verified by grouping them into shell scripts or as a suite and are executed in sequence to verify the functionalities before delivering the scripts.&lt;br /&gt;&lt;br /&gt;Test data is exported from Test manager and test logs are also taken from test manager to deliver along with the suite, shell scripts and scripts.&lt;br /&gt;&lt;br /&gt;Step 6: IBM Rational ClearQuest&lt;br /&gt;&lt;br /&gt;a) Phase: Inception&lt;br /&gt;During this phase Schema Repository and Defect Database are created using Rational ClearQuest Maintenance Tool and Rational ClearQuest Designer respectively.&lt;br /&gt;&lt;br /&gt;Activities:&lt;br /&gt;Establishing the change request process.&lt;br /&gt;Defining change and review notifications.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtxIR-M59hI/AAAAAAAABR4/Lf97H-nFDfg/s1600-h/8.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106035551123404306" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtxIR-M59hI/AAAAAAAABR4/Lf97H-nFDfg/s400/8.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fig.7.Showing defects or change requests in Rational ClearQuest&lt;br /&gt;&lt;br /&gt;b) Phase: Elaboration&lt;br /&gt;Defects are raised based on the test logs generated by either executing manual or automation scripts.&lt;br /&gt;&lt;br /&gt;c) Phase: Construction &amp; Transition&lt;br /&gt;&lt;br /&gt;Rational ClearQuest is also used exclusively in this phase because most of the requirement can only be tested only after implementation. In this release manual and automation scripts are executed to uncover defect in the application and they are logged in ClearQuest for tracking and closure. Once all the defects are raised in ClearQuest, Development team undertakes all valid defects and after fixing delivers a new build or iterations. If the defects rose in ClearQuest is a change request which is enhancement or change in requirement, automation script need to be modified accordingly.&lt;br /&gt;&lt;br /&gt;d) Phase: Transition&lt;br /&gt;&lt;br /&gt;Reports are generated to find all the change requests still not being resolved.&lt;br /&gt;Depending upon the priority and severity of the change request, appropriate decision is taken to go for release or to go for one more iteration. If team wants to go for release then all the defects should be moved to different buckets to have a track like deferred or waived. ClearQuest changes are also integrated with RequisitePro requirements.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What are the top things you should do?&lt;br /&gt;• Get an expert in RUP &amp;amp; automation consultants work together. A RUP expert can provide guidance in the usage of RUP in different phases of software testing.&lt;br /&gt;&lt;br /&gt;• Integrate all the tools to get the maximum benefits: Make end to end implementation of all the rational tools from RequisitePro to ClearQuest with the help of Rational Administrator to derive the maximum benefits and cost cutting in long run.&lt;br /&gt;&lt;br /&gt;• Usage of Right tool at the Right time: It’s very important to understand the significance of using the right tool at the right time (RUP phase) to avoid rework and maintain all the information right in place.&lt;br /&gt;&lt;br /&gt;• Adopt RUP best practices and be guided by the spirit of RUP. For success, you need to be guided by the spirit of RUP and you want to follow RUP best practices for the best possible outcome.&lt;br /&gt;&lt;br /&gt;• Generate different Metrics: Using this approach you can get different reports (statistics) for development and test managers using Rational Test Manager, ClearQuest and Rational RequisitePro, which can help to determine the correct progress of the project and the state of the artifacts at any point of time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxMpuM59lI/AAAAAAAABSY/fjyPDDzOUlw/s1600-h/10.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106040357191808594" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_IWEJ_QTVH1c/RtxMpuM59lI/AAAAAAAABSY/fjyPDDzOUlw/s400/10.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;In conclusion, I hope that this article will spur "inclusive thinking" among software testing organizations, encouraging them to practice RUP with respect into Software testing right from the beginning -- rather than treating them as an afterthought late in the development lifecycle. We also hope that tool vendors and third-party suppliers for RUP and other development frameworks will begin embedding an integrated approach for accessibility into their products.&lt;br /&gt;&lt;br /&gt;Testing team should be aware of the usage of different rational testing tools in all phases of RUP. If the project is following RUP where requirements are delivered in multiple phases and multiple iterations are expected, using these tools efficiently and effectively can lead to smooth and successful completion of project. This paper can be treated as a guideline document by testing teams working in a RUP project to know what to do and when to do in different phases of RUP.&lt;br /&gt;&lt;br /&gt;For all software development organizations, we believe that the approach we describe in this article will ultimately increase productivity and application quality. In making products that are accessible and practical for all potential users, progressive organizations can take advantage of new market opportunities and gain a strong competitive edge.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtxMi-M59kI/AAAAAAAABSQ/3rKJpYX3Mlo/s1600-h/9.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106040241227691586" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtxMi-M59kI/AAAAAAAABSQ/3rKJpYX3Mlo/s400/9.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Reference&lt;br /&gt;&lt;br /&gt;Rational Unified Process&lt;br /&gt;Bach, James. 1996. “Test Automation Snake Oil.” Windows Technical Journal, (October): 40-44.&lt;br /&gt;http://www.satisfice.com/articles/test_automation_snake_oil.pdf&lt;br /&gt;Marick, Brian. 1998. “When Should a Test Be Automated?”. http://www.testing.com/writings/automate.pdf&lt;br /&gt;Kaner, Cem. 1997. “Improving the Maintainability of Automated Test Suites. http://www.kaner.com/lawst1.htm&lt;br /&gt;Dustin, Elfriede. 1999. “Lessons in Test Automation.” Software Testing and Quality Engineering (September): 16-22.&lt;br /&gt;http://www.stickyminds.com/sitewide.asp?ObjectId=1802&amp;ObjectType=ART&amp;amp;Function=edetail&lt;br /&gt;Fewster, Mark and Dorothy Graham. 1999. Software Test Automation, Addison-Wesley.&lt;br /&gt;Groder, Chip. “Building Maintainable GUI Tests” in [Fewster 1999].&lt;br /&gt;Hendrickson, Elisabeth. 1999. “Making the Right Choice: The Features you Need in a GUI Test Automation Tool.” Software Testing and Quality Engineering Magazine (May): 21-25.&lt;br /&gt;http://www.qualitytree.com/feature/mtrc.pdf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-2920661418693345089?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/mapping-rational-unified-process-to.html</link><author>rajkamal@microsoft.com (Raj)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtxFpeM59YI/AAAAAAAABQw/jrnXINkpf9Q/s72-c/1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-111172825477675184.post-203324443627419785</guid><pubDate>Mon, 03 Sep 2007 12:48:00 +0000</pubDate><atom:updated>2008-11-07T09:46:23.754+05:30</atom:updated><title>Iterative Automation Process using Rational Unified Process</title><description>Test automation is mantra of success in today’s IT world and is used as a strong qualifier to win new projects yet often doesn’t add much value to client. Although automation promises to save cost and effort dramatically but they rarely succeed. Project where RUP is followed, requirements are implemented in phased manner, automation can be very fruitful but it is only possible if RUP is understood and if the same is applied to automation too. Testing team should follow ATLM (Automation Testing Life-cycle Methodology) along with Rational Unified Process. The key is to start automation right from the inception phase and to continue till transition to get ROI. This paper presents the process and guidelines to be followed by Managers and Automation Test Leads. Follow these steps as you staff, tool, or schedule your test automation project, and you will be well on your way to success.&lt;br /&gt;&lt;br /&gt;A Fable&lt;br /&gt;&lt;br /&gt;I have seen lot of many test automation problems. I have worked in many automation projects, big and small. I have talked to many people from many other projects. I am presenting this paper to avoid these problems faced by them. But first we need to understand it. Let me illustrate with a fable.&lt;br /&gt;&lt;br /&gt;Once upon a time, we have a pilot test automation project for a very important client. Client is very quality conscious and provides the team with Rational Testing Tools. Development team has decided to follow Rational Unified Process. Mr. Rakesh is a Test Manager who hires experienced testers with good programming knowledge. Everyone is very excited as they are going to work with best tools in the market and no more excel sheet to write test cases, track defects and to generate report.&lt;br /&gt;&lt;br /&gt;Project starts and Rational RequisitePro is used for requirement management, development team uses Rational Rose to design and ClearQuest for configuration management. Testing team doesn’t have any clue what so ever what going on. Then Rakesh realized and instructed team to start writing test cases using Test Manager. Testers found TestManager as great tools and wrote some test cases based on the requirements. By the time development team releases the first build to test. Testing has started executing test cases manually and some how ended up.&lt;br /&gt;&lt;br /&gt;Project has moved to next phase, elaboration and they are designing the data model along with coding for critical modules. Testing doesn’t know what to do it in this phase and they are waiting for the build to come. Testing team expands test cases in Test Manager and leave early to house.&lt;br /&gt;&lt;br /&gt;Project moves to Construction phase and build is given again with most of the functionalities implemented and testing time is finding difficult to manage time efficiently. Defects are found and development team starts fixing the defects. Then Rakesh instructs all the testing members to automate the application and they do some quick record and playback. After spending lot of effort, testing team is ready is record and playback suite. Again, build comes and testing team fails to run even a single script properly, comes to the conclusion that slight maintenance is required but once again they fail and then again fail.&lt;br /&gt;Client feels organization is incapable of doing automation; Rakesh feels that team is inefficient, team feels testing tool is not up to the mark. Rajesh asks for release, testing team members feel automation is of no use, manual testing is better. Project is a failure.&lt;br /&gt;&lt;br /&gt;That's my fable. Perhaps parts of the story sound familiar to you. But I hope you haven't seen a similar ending. This paper will suggest some ways to avoid the same fate&lt;br /&gt;&lt;br /&gt;The Problems&lt;br /&gt;&lt;br /&gt;This fable illustrates several problems that plague test automation projects:&lt;br /&gt;&lt;br /&gt;Automation at last moment: There is a general trend and people think that automation should come at the end of the project. Managers don’t focus on automation right from the initial phase.&lt;br /&gt;&lt;br /&gt;Automating only regression candidates: This is a myth that only automation candidates should be automated and regression testing come late during the project. It pushes the automation to the last moment.&lt;br /&gt;&lt;br /&gt;Short of time: Testers often feel that time given is insufficient for testing. It is because testing is manually all the time and automation comes into picture only in the end very near to deadline.&lt;br /&gt;&lt;br /&gt;Automation takes less time: Managers think that automation takes less time and can be done in couple of days and then time can be saved. Reality is automation takes more time than manual testing and is only useful in long run.&lt;br /&gt;&lt;br /&gt;Testing RUP project is no different: Managers think RUP project is just any other development model like Waterfall where product will be given as a whole.&lt;br /&gt;&lt;br /&gt;Any tool will do: Managers don’t consider whether tool can be used for the AUT, they just go by the popularity and later realize that it is not good.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Follow the Rules of Iterative Automation&lt;br /&gt;&lt;br /&gt;This paper will be organized by the normal steps that we all use for our test automation projects, making special notes of the considerations and challenges that are particular to test automation:&lt;br /&gt;&lt;br /&gt;1. Test Tool Acquisition&lt;br /&gt;2. Test Framework Selection&lt;br /&gt;3. Test Planning and Development&lt;br /&gt;4. Test Execution&lt;br /&gt;5. Analysis &amp; Assessment&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtwDxeM59WI/AAAAAAAABQg/o7xCLfypL6Y/s1600-h/diag_Itr1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtwDxeM59WI/AAAAAAAABQg/o7xCLfypL6Y/s400/diag_Itr1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5105960225986966882" /&gt;&lt;/a&gt;&lt;br /&gt;Abstract&lt;br /&gt;&lt;br /&gt;Step 1: Test Tool Acquisition&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Role: Test Designer &amp;amp; Test Manager&lt;br /&gt;Activity: Define Test Environment Configuration&lt;br /&gt;Artifact: Test Environment Configuration&lt;br /&gt;Phase: Inception&lt;br /&gt;&lt;br /&gt;Test Tool Acquisition is an activity which should be done early in the Inception phase. During Inception phase, very few requirements are implemented to verify the feasibility. This is the phase when the automation tools should be evaluated and POC should be done. In this paper, out of other tools like QTP, Winrruner and Robot, Rational Robot came out as winner and was selected to automate the application-under-test.&lt;br /&gt;&lt;br /&gt;Step 2: Test Framework Selection&lt;br /&gt;&lt;br /&gt;Role: Test Designer&lt;br /&gt;Activity: Select Automation Framework&lt;br /&gt;Artifact: Test Automation Architecture&lt;br /&gt;Phase: Elaboration&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is very important to select an appropriate automation framework. Different options available are Record/Playback, Module centric framework, Data-Driven framework and Keyword-Driven framework. It is preferable to start analyzing the option right from the inception phase. POC done in the inception phase will help Test Designer to select the framework which best suite the need. No. of iterations planned, size of the project and nature of the requirements are also considered as valuable inputs while selecting an automation framework.&lt;br /&gt;&lt;br /&gt;Elaboration phase is the one when automation framework selected is frozen and making any changes after this can be risky and can involve lot of rework. In this feasibility of the framework is validated by automating the most critical requirements in Elaboration phase. A composition of various test automation design and implementation elements and their specifications that embody the fundamental characteristics of the test automation software system.&lt;br /&gt;&lt;br /&gt;This artifact is particularly useful when the automated execution of software tests must be maintained and extended through multiple test cycles. This artifact is most useful as single artifact per project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 3: Test Planning &amp; Development&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Role Test Analyst&lt;br /&gt;Activity: Identify Test Ideas, Identify targets of test&lt;br /&gt;Artifact: Test Idea List, Test Cases, Test Data&lt;br /&gt;Phase: Elaboration&lt;br /&gt;&lt;br /&gt;Test Analyst identifies the test cases to be automated and selects the automation candidates based on the following criteria:&lt;br /&gt;&lt;br /&gt;Identifying and defining each Test Case, and approving all subsequent changes to it.&lt;br /&gt;Ensuring that changes are communicated to affected downstream roles.&lt;br /&gt;Ensuring that sufficient Test Cases have been identified to provide satisfactory evaluation of the Target Test Items.&lt;br /&gt;Ensuring that sufficient detail has been provided to implement and conduct the test.&lt;br /&gt;Managing and maintaining appropriate traceability relationships.&lt;br /&gt;Managing the appropriate scope of the Test Cases in a given iteration.&lt;br /&gt;&lt;br /&gt;Test Analyst is also responsible for Test Data:&lt;br /&gt;&lt;br /&gt;Identifying potential data sources.&lt;br /&gt;Gathering basic candidate Test Data.&lt;br /&gt;Verifying the completeness, fitness for purpose and accuracy of the Test Data.&lt;br /&gt;&lt;br /&gt;Test cases to be automated are present in Rational Test Manager and this activity is generally completed in Elaboration phase. Once all the test cases to be automated and test data is ready, automation can be done in full fledge manner in construction phase.&lt;br /&gt;&lt;br /&gt;Role Tester&lt;br /&gt;Activity: Implement Test, Implement Test Suite&lt;br /&gt;Artifact: Test Script&lt;br /&gt;Phase: Construction&lt;br /&gt;&lt;br /&gt;This is most important activity which is carried out exclusively in Construction phase but you must have read in earlier sections that POC is done in inception phase and critical test cases are automated in Elaboration phase. Henceforth, automation is done for other automation candidate including the most important regression set of test cases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Identifying and defining each Test Script, and managing all subsequent changes&lt;br /&gt;Ensuring the Test Script accurately reflects the required test, identified by one or more a Test Ideas or defined in one or more Test Cases&lt;br /&gt;Ensuring the Test Script is implemented according to defined standards to be compatible and maintainable with the other Test Scripts&lt;br /&gt;Ensuring the Test Script makes reasonably efficient use of the available resources&lt;br /&gt;Developing the Test Script with a focus on economy of effort and identifying opportunities for reuse and simplification&lt;br /&gt;Developing the Test Script so that it can be used as part of a Test Suite&lt;br /&gt;&lt;br /&gt;Step 4: Test Execution&lt;br /&gt;&lt;br /&gt;Role Tester&lt;br /&gt;Activity: Execute Test Suite, Analyze Test Failure&lt;br /&gt;Artifact: Test log&lt;br /&gt;Phase: Construction &amp;amp; Integration&lt;br /&gt;&lt;br /&gt;Though script execution is something which even at Inception and Elaboration phase too but in construction phase all the scripts automated are executed as suites and overall functionality of the application is validated.&lt;br /&gt;&lt;br /&gt;Different suites can be executed like BVT Suite which can be ran to do smoke testing and log can be used to take the decision to accept or reject the build. Regression suites can be ran to ensure that there is no regression impact of the fixes/changes made to the application.&lt;br /&gt;&lt;br /&gt;Ensuring the accurate recording of the observed outcome of each test executed in the test cycle.&lt;br /&gt;Ensuring the Test Logs are uniquely and accurately identified, and stored against the correct test cycle or test run.&lt;br /&gt;Actively monitoring for anomalous and erroneous occurrences in the Test Log, and taking appropriate recovery and reporting actions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 5: Analysis &amp; Assessment&lt;br /&gt;&lt;br /&gt;Role: Test Analyst&lt;br /&gt;Activity: Determine Test Results&lt;br /&gt;Artifact: Test Results&lt;br /&gt;Phase: Construction, Integration &amp;amp; Transition&lt;br /&gt;&lt;br /&gt;This activity is carried out exclusively in Construction phase and elaboration phase. The test logs are analyzed in Rational Test Manager and defects can be raised in ClearQuest.&lt;br /&gt;&lt;br /&gt;If the defect raised is because of mistake or miscommunication, the same is fixed and the script is ran again in next iteration but if the failure was because of desirable change / new requirement / change in requirement, then script is modified and ran again in the same iteration and again test logs are analyzed.&lt;br /&gt;&lt;br /&gt;Reviewing Test Logs and Change Requests&lt;br /&gt;Actively monitoring for anomalous and erroneous occurrences in the Test Log, investigating and reporting a conclusion&lt;br /&gt;Ensuring the accurate analysis of the observed outcome of each test conducted in the test execution cycle&lt;br /&gt;Ensuring the Test Results are uniquely and accurately identified and recorded against the correct test execution cycle&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Role: Test Manager&lt;br /&gt;Activity: Assess and Advocate Quality, Assess and Improve Test Effort&lt;br /&gt;Artifact: Test Evaluation Summary&lt;br /&gt;Phase: Integration &amp;amp; Transition&lt;br /&gt;&lt;br /&gt;In construction and transition phase, test manager performs the following activities:&lt;br /&gt;Reviewing the Test Results, change request statistics, and coverage statistics.&lt;br /&gt;Reviewing important Change Request and Issue details.&lt;br /&gt;Presenting an accurate and fair assessment of the software based on the defined Evaluation Mission.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Overall Iterative Automation Process&lt;br /&gt;&lt;br /&gt;An iterative process facilitates reuse of project elements because it is easier to identify common parts as they are partially designed or implemented instead of identifying all commonality in the beginning.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtwD6-M59XI/AAAAAAAABQo/8WDixnZso70/s1600-h/diag_Itr2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_IWEJ_QTVH1c/RtwD6-M59XI/AAAAAAAABQo/8WDixnZso70/s400/diag_Itr2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5105960389195724146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Iterative automation process includes the following steps:&lt;br /&gt;&lt;br /&gt;Iterative automation has the following advantages:&lt;br /&gt;&lt;br /&gt;1. The automated test suite should be executed for all the iterations. Doing this is very important to “Continuously Verify Quality” which is one of the best practice followed by RUP.&lt;br /&gt;&lt;br /&gt;2. Doing automation in an iterative way allows flaws to be detected and resolved earlier in the product life cycle. It saves significant amount of time spent to perform manual testing for each and every build in each and every release.&lt;br /&gt;&lt;br /&gt;3. Iterative automation provides better view of the quality and helps in correcting the major issues without jeopardizing target costs and schedules.&lt;br /&gt;&lt;br /&gt;4. We cannot stop change from being introduced into our project. However we must control how and when changes are introduced into project artifacts, and who introduces the changes. Unified Change Management (UCM) is Rational Software’s approach to managing change in software system development, from requirement to release. “Manage Change” is one more important best practice followed by RUP.&lt;br /&gt;&lt;br /&gt;5. Better Overall Quality: Automation scripts developed from an iterative process will be of better overall quality than are the products that result from a conventional sequential process. The script will have been tested several times, improving the quality of testing. At the time of delivery scripts will have been running longer.&lt;br /&gt;&lt;br /&gt;6. Stage Containment: Iterative script development helps to contain the defect in the same phase and doesn’t let it go to the last phase. Design bugs can be identified in the elaboration phase and developers don’t need to wait for construction phase to find out design issues.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;Automation should be iterative in nature and should be performed right from the beginning of the project. If the project is following RUP where requirements are delivered in multiple phases and multiple iterations are expected, automation can be very handy in reducing the testing effort and cost to a great extent. The effort saved can be better utilized in other areas. This paper can be considered as a reference document by automation testing teams to know what to do and how in different phases of RUP.&lt;br /&gt;&lt;br /&gt;Reference&lt;br /&gt;&lt;br /&gt;Rational Unified Process&lt;br /&gt;&lt;br /&gt;Kaner, Cem. 1997. “Improving the Maintainability of Automated Test Suites.” http://www.kaner.com/lawst1.htm&lt;br /&gt;&lt;br /&gt;Fewster, Mark and Dorothy Graham. 1999. Software Test Automation, Addison-Wesley.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/111172825477675184-203324443627419785?l=geektester.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://geektester.blogspot.com/2007/09/iterative-automation-process-using.html</link><author>rajkamal@microsoft.com (Raj)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IWEJ_QTVH1c/RtwDxeM59WI/AAAAAAAABQg/o7xCLfypL6Y/s72-c/diag_Itr1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item></channel></rss>