<?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:gd='http://schemas.google.com/g/2005' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:blogger='http://schemas.google.com/blogger/2008' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-4551093384155960263</atom:id><lastBuildDate>Sun, 04 Oct 2015 00:01:08 +0000</lastBuildDate><category>Quality Pundits</category><category>Apple</category><category>Validation</category><category>Energy</category><category>SOA project</category><category>tools</category><category>innovation</category><category>Success</category><category>Development</category><category>Virtualization</category><category>vulnerabilities</category><category>over time</category><category>Dependency Matrix</category><category>Significance</category><category>Security testing</category><category>lisa</category><category>automation</category><category>Automated Reports</category><category>Apprentice</category><category>Mac Pro</category><category>CTM</category><category>QI</category><category>Developer vs. Tester</category><category>itko</category><category>DRPL</category><category>Quality definition</category><category>laundry list</category><category>quality</category><category>Quality Metrics</category><category>Software Quality</category><category>availability</category><category>Measuring Quality</category><category>overbudget</category><category>unit testing</category><category>roles</category><category>Security</category><category>ALM</category><category>poor quality</category><category>soa testing</category><category>flexibilty</category><category>quality pandits</category><category>Quality Architect Role</category><category>Robert Glass</category><category>scalability</category><category>Agile</category><category>constraints</category><category>interoperabiliy</category><category>roles and responsibilities</category><category>requirements</category><category>Quality Architect</category><category>humphrey</category><category>CI</category><category>ESB</category><category>JMS</category><category>Martin</category><category>cruise control</category><category>TTM</category><category>QA</category><category>Frank</category><category>Security threats</category><category>RDNS</category><category>Architecture</category><category>QA Infrastructure</category><category>late</category><category>Test Automation</category><category>testing</category><category>functional testing</category><category>Quality Index</category><category>Backlog Management</category><category>application</category><category>SOA</category><category>StickMinds</category><category>hackers</category><category>illities</category><category>understandability</category><title>Quality Pandits</title><description>Pushing Software Quality Higher in this Agile World!</description><link>http://qualitypandits.blogspot.com/</link><managingEditor>noreply@blogger.com (Rajeev Gupta)</managingEditor><generator>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-7407323794636442919</guid><pubDate>Mon, 02 Feb 2009 22:19:00 +0000</pubDate><atom:updated>2011-01-31T09:53:06.287-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Mac Pro</category><category domain='http://www.blogger.com/atom/ns#'>testing</category><category domain='http://www.blogger.com/atom/ns#'>Virtualization</category><category domain='http://www.blogger.com/atom/ns#'>Validation</category><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Architecture</category><category domain='http://www.blogger.com/atom/ns#'>lisa</category><title>Testing Tool Architecture Analogy!!</title><description>We have compared &lt;a href="http://qualitypandits.blogspot.com/2008/05/soa-projects-over-budget-over-time-and.html"&gt;software industry challenges with manufacturing&lt;/a&gt; before. May be it's our passion to see how similar different verticals are!&lt;br /&gt;&lt;br /&gt;Take a look at the architecture of latest &lt;a href="http://www.apple.com/macpro/technology/processor.html"&gt;Mac Pro&lt;/a&gt;, which is based on Intel Xeon processors. Now checkout iTKO LISA (a Testing, Validation and Virtualization tool) architecture blueprint:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RyhDmAhgle8/SYdxi-ELfJI/AAAAAAAAFWA/KMOgM__Hppc/s1600-h/Picture+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 381px; height: 400px;" src="http://4.bp.blogspot.com/_RyhDmAhgle8/SYdxi-ELfJI/AAAAAAAAFWA/KMOgM__Hppc/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5298328332214697106" border="0" /&gt;&lt;/a&gt;And what a coincidence that both Apple and iTKO are beating analyst expectations!!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://finance.yahoo.com/news/Apple-profit-beats-rb-14121776.html"&gt;Apple Profit Beats Expectations!&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://finance.yahoo.com/news/iTKO-Delivers-Record-Year-bw-14195974.html"&gt;iTKO Delivers Record Year!&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;We know that all great minds think alike. Now we know that all great architectures look alike! :-) Just kidding.. but it is amazing to see so much of commonality between a software and a hardware architecture!!</description><link>http://qualitypandits.blogspot.com/2009/02/testing-tool-architecture-analogy.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_RyhDmAhgle8/SYdxi-ELfJI/AAAAAAAAFWA/KMOgM__Hppc/s72-c/Picture+2.png' height='72' width='72'/><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-4997813715133426298</guid><pubDate>Mon, 19 May 2008 05:49:00 +0000</pubDate><atom:updated>2008-05-19T00:39:38.966-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>overbudget</category><category domain='http://www.blogger.com/atom/ns#'>SOA project</category><category domain='http://www.blogger.com/atom/ns#'>over time</category><category domain='http://www.blogger.com/atom/ns#'>constraints</category><category domain='http://www.blogger.com/atom/ns#'>late</category><category domain='http://www.blogger.com/atom/ns#'>poor quality</category><title>SOA Projects: Over budget, Over time and Under quality!</title><description>Is your SOA project running over budget? Is it because of over-staffing to meet the deadline, or is it because of poor budgeting, or both?&lt;br /&gt;&lt;br /&gt;In last couple of years, I have not only seen SOA projects overrun both budget and time but also deliver poor quality. It is no surprise that my observation around quality is inline with Gartner's prediction, according to which the unplanned downtime in SOA-based businesses would go up by 20% because of application failures.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So why are SOA projects overrunning budgets and time, while delivering poor quality? Shouldn't SOA be enabling faster-time-to-market and lower-costs, instead?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;As we all know, any software development                                 project has four basic variables: time, budget, scope,                                 and quality. &lt;span style="font-weight: bold; font-style: italic;"&gt;Change&lt;/span&gt; is the only thing that is &lt;span style="font-weight: bold; font-style: italic;"&gt;constant&lt;/span&gt; in a typical SOA project, which means that the scope cannot be the culprit. Remember, the reason IT adopted SOA in the first place is to be able to respond to changing business requirements... i.e. The Business Agility!&lt;br /&gt;&lt;br /&gt;Rest of the three basic variables (time, budget and quality) are impacted because of changing scope and project managers inability to think out-of-the-box. Let me explain by using  a manufacturing plant as a analogy to a SOA development process! Interestingly, there is a striking similarity.&lt;br /&gt;&lt;br /&gt;Manufacturing industry has come a long way. Japanese competition forced Americans to learn the advanced management techniques of how to run a production plant effectively and efficiently. One of the main reasons plants use to overrun budgets and delay shipments was their inability to understand the phenomenon of “&lt;span style="font-style: italic;"&gt;Dependencies and Statistic fluctuations&lt;/span&gt;” which exists when delivery of a single product depends on several components, which are dependent on each other. Dr. Eliyahu M. Goldratt explained this &lt;span style="font-weight: bold; font-style: italic;"&gt;theory of constraints&lt;/span&gt; (TOC) in his book entitled "The Goal". &lt;blockquote style="font-style: italic;"&gt;The theory of constraints is the application of scientific principles and logic reasoning to guide human-based organizations.&lt;/blockquote&gt;Software project managers, however, have not yet fully understood the fact that a similar phenomenon now also plays in the world of SOA based development. This is mainly because the architecture paradigm allows companies to build software, which depend on services manufactured by different organizations or even third-party suppliers and partners. One of the basic principles of TOC is &lt;span style="font-weight: bold;"&gt;Convergence&lt;/span&gt;. According to convergence, the more interconnected the organization is, the lower the number of constraints it will have. When we apply this to SOA, we know that the number of components and teams are growing and they are also loosely connected, which means the number of constraints are growing.&lt;br /&gt;&lt;br /&gt;SOA architectural dependencies spill into team dependencies, which in-turn lead to redundant implementations and lack of trust. These dependencies when combined with the business agility requirements lead to constraints. Some of these constraints are mere manifestation of dependencies themselves, whereas others are a direct result of multiple teams and limited resources. Here is a quick list of some of them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Dependent service unavailability&lt;/span&gt;. This is the case when the dependent service is not implemented yet. This results in the downtime or forces downstream teams to built redundant components. &lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Resource unavailability&lt;/span&gt;. Multiple teams going after the same set of resources.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Time constraint&lt;/span&gt;. Dependent services and resources are available, but time-sliced to accommodate multiple teams&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Intermittent&lt;/span&gt; availability even when dependent services are available. No SLA applies in the Dev/QA environment.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Changing behavior&lt;/span&gt; of the dependent service. This not only invalidates current workflows, but also makes the data brittle.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;No control on the dependent service &lt;span style="font-style: italic;"&gt;time line&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;If we take a closer look, we will see that these dependencies along with the constraints work against the overarching business goal, i.e. to be agile!&lt;br /&gt;&lt;br /&gt;Therefore, in order to deliver SOA projects on-time and under budget, we must devise a process that will help eliminate these dependencies and constraints imposed by the side effects of loosely coupled architectures.</description><link>http://qualitypandits.blogspot.com/2008/05/soa-projects-over-budget-over-time-and.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-2161906640252020934</guid><pubDate>Tue, 01 May 2007 17:20:00 +0000</pubDate><atom:updated>2007-05-01T10:24:31.762-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>JMS</category><category domain='http://www.blogger.com/atom/ns#'>testing</category><category domain='http://www.blogger.com/atom/ns#'>ESB</category><category domain='http://www.blogger.com/atom/ns#'>lisa</category><category domain='http://www.blogger.com/atom/ns#'>SOA</category><title>Testing ESB Layer of SOA based Apps</title><description>Checkout: &lt;a href="http://home.businesswire.com/portal/site/home/index.jsp?epi-content=GENERIC&amp;newsId=20070501005208&amp;amp;ndmHsc=v2*A1178017200000*B1178049359000*DgroupByDate*G3*J1*N1000837&amp;newsLang=en&amp;amp;beanID=202776713&amp;amp;viewID=news_view"&gt;iTKO LISA 3.6 "On the Bus" With Native Testing of All Major ESB/JMS Standards&lt;/a&gt;</description><link>http://qualitypandits.blogspot.com/2007/05/testing-esb-layer-of-soa-based-apps.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-2698325471706726762</guid><pubDate>Sun, 15 Apr 2007 01:03:00 +0000</pubDate><atom:updated>2007-04-15T08:13:36.629-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>soa testing</category><category domain='http://www.blogger.com/atom/ns#'>Developer vs. Tester</category><category domain='http://www.blogger.com/atom/ns#'>roles and responsibilities</category><title>Roles &amp; Responsibilities of Developer vs. Tester in new SOA world</title><description>&lt;span style=""&gt;Both      Developers and testers probably have tougher role now in SOA world as      things change very fast. &lt;/span&gt;&lt;span style=""&gt;One      huge monolithic project is now equal to n-smaller projects, which means      n-dev teams and n-qa teams. N&lt;/span&gt;&lt;span style=""&gt;-number of smaller project consume more resources as compared to one-big project, but the benefit is faster release train and quick turnaround to market and customer requirement changes. &lt;/span&gt;&lt;span style=""&gt;Lets      look at each of the benefits of SOA and how does it impact Dev vs. QA:&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul type="square"&gt;&lt;li&gt;&lt;span style=""&gt;Smaller teams&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;DEV: More focused teams, faster development possible.        &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA: Small Dev team means smaller QA teams.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Shorter release cycles has a lot of implications:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Quality can no longer be pushed to the end &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;IT needs to me more agile to handle faster production        upgrades &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA can no longer take one month to do system tests &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;DEV must build quality into the code from day-one &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Engineering best practices are more critical than ever &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Interdependency between smaller projects&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Smaller projects must be able to work with each other&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Standards play a huge role&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Separate QA effort is required to validate        interdependency and high level system level business workflows&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Many heterogeneous technologies&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;No more only UIs to test! &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Developers must understand all new upcoming        technologies.  &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA needs to become more technical; Point-n-click of        front-end Uis doesn't fly anymore &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Test automation (or at least programmatic testing) is more critical than ever; More than 70% of exposed interfaces won’t have any UI&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Dependency on outside components and services&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Loosely coupled architectures allow projects to pick        off-the-shelf services &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Some of these services are enforced by government        (like DRPL checks) &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Dev and QA must understand the implication and        incorporate 3rd party dependency into the overall strategy &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA must know where to stop; test integration, not the        third party service!&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Agile development and testing&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Agile means ability to quickly change with changing        environment. &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;To be agile, teams must be small and independent&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;SOA makes it possible for teams to be agile&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Traditional waterfall processes don't work in SOA&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Teams must understand the difference and adapt new        process that enable SOA development&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA works more upstream with development inside sprints.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Continuous testing is the key!&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</description><link>http://qualitypandits.blogspot.com/2007/04/roles-responsibilities-of-developer-vs.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-5961193045533345895</guid><pubDate>Sun, 15 Apr 2007 01:01:00 +0000</pubDate><atom:updated>2007-04-14T18:02:49.912-07:00</atom:updated><title>Implication/Challenges in WS-Testing</title><description>&lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The biggest challenge is people confuse WS-Testing with SOA-Testing. There may be 50% to 60% overlap, but they are different. WS-Testing is just a subset of SOA testing. Check following links:&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;http://www.developer.com/design/article.php/3588361&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;http://itko.blogspot.com/2007/03/big-ws-difference.html &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA      teams are not used to testing non-UI type interfaces&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Manual testing doesn't work anymore. QA must improve its skillset to survive in SOA world&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;SOA      testing requires QA teams to have fairly good understanding of the underlying architecture&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;It requires QA teams to really understand the basics of different SOA technologies, some of which are: Web Services, EJB, JMS/ESB, REST, RMI, POJO, relational and hierarchical DB, .NET, etc. &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;QA      teams are NOT used to managing test assets. They must follow engineering best practices.&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Use of version control systems&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Collaboration sites like wikis&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;SOA enables Agile development which requires QA to work more upstream with development &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;All      of the basic test automation challenges still applies&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Test      management, test data management&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Version control, sharing, nightly test      runs&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Automated reporting, result analysis, debugging&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;High reusability,      lower maintenance, test mobility&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Once teams understand the difference between traditional QA and SOA-Testing, the next challenge that they have in front of them is Test Data Management. Understanding all the data requirement and figuring out how this data will be fed into the test cases is the key.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;http://almquality.blogspot.com/2006/08/data-driven-testing-ddt.html&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;http://almquality.blogspot.com/2006/08/data-strategy-ds.html&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;Lastly, the teams MUST follow establish some best practices.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li class="MsoNormal" style=""&gt;Test Bed Setup - including server farms&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Test Directory structure - project workspace&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Naming conventions&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Data Management,Test Libraries&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Configurations,&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Versioning&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Reporting&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</description><link>http://qualitypandits.blogspot.com/2007/04/implicationchallenges-in-ws-testing.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-3730410568048345746</guid><pubDate>Sat, 13 Jan 2007 20:21:00 +0000</pubDate><atom:updated>2007-01-13T16:01:30.917-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Energy</category><category domain='http://www.blogger.com/atom/ns#'>Apprentice</category><category domain='http://www.blogger.com/atom/ns#'>Significance</category><category domain='http://www.blogger.com/atom/ns#'>Martin</category><category domain='http://www.blogger.com/atom/ns#'>Frank</category><category domain='http://www.blogger.com/atom/ns#'>quality</category><category domain='http://www.blogger.com/atom/ns#'>Success</category><title>Key to Success !!</title><description>Do you know the difference between &lt;a href="http://apprentice.tv.yahoo.com/trump/06/candidates/martin_bio.html"&gt;Martin&lt;/a&gt; and &lt;a href="http://apprentice.tv.yahoo.com/trump/06/candidates/frank_bio.html"&gt;Frank&lt;/a&gt;? Why Martin lost and Frank was not fired in the board room?&lt;br /&gt;&lt;br /&gt;Sure, there is no single formula to success, but there is definitely a common denominator... i.e. &lt;span style="font-weight: bold;"&gt;Energy.&lt;/span&gt; Do you meet people and wonder "Wow! how come this person has so much energy"?  I am sure the answer is "yes" and I am also sure that you'd consider this person to be successful in most cases! If you have energy, you'll be successful in whatever you do. High energy people are optimistic and possess a "Can Do" attitude.  Most of the pessimistic behaviors stems from the roots of lethargy!&lt;br /&gt;&lt;br /&gt;So, the question is how to get energy? Is it the stamina, or is it the physical health? Is it the passion, or is it the correct diet? Is it the sleep or the caffeine?  Different people are driven by different things.  Following are some of the ways to get your energy boost:&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Regular exercise (15 minutes a day)&lt;/li&gt;&lt;li&gt;Meditation&lt;/li&gt;&lt;li&gt;Music, Sports&lt;/li&gt;&lt;li&gt;Kids&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Meeting new people&lt;/li&gt;&lt;li&gt;Reading articles and books&lt;/li&gt;&lt;li&gt;Attending seminars and shows&lt;/li&gt;&lt;li&gt;Reading biographies of other successful people&lt;/li&gt;&lt;li&gt;Setting clear goals and reviewing them regularly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Motivational movies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Caffeine, of course!&lt;/li&gt;&lt;li&gt;Just enough sleep&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Pick the source whatever works for you and just make sure that you get your energy boost on regular bases and you'll find that you are climbing the stairs of success in no time.&lt;br /&gt;&lt;br /&gt;Another point to remember is that once you get enough energy to kick-off your reactor inside, you'll also start radiating energy! People you meet will get energized by you (like induction)  and they'll reflect that energy back.... It's wonderful to be among a group of very high energy people.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Caution: &lt;/span&gt;Like viruses, low energy people can deflate all your energy in no time. Make a conscious effort to stay away from couch potatoes and pessimistic people. Slowly develop a circle of only high energy people around you.&lt;br /&gt;&lt;br /&gt;One easy way to find success is to follow it. So try to be with successful people as much as possible. Induction is a wonderful thing, but it works on the negative side too - so be careful!&lt;br /&gt;&lt;br /&gt;So, why was Martin fired?!</description><link>http://qualitypandits.blogspot.com/2007/01/key-to-success.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-6179884626721493743</guid><pubDate>Thu, 28 Dec 2006 17:35:00 +0000</pubDate><atom:updated>2007-01-03T12:22:39.903-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>Test Automation</category><category domain='http://www.blogger.com/atom/ns#'>Agile</category><category domain='http://www.blogger.com/atom/ns#'>itko</category><category domain='http://www.blogger.com/atom/ns#'>tools</category><category domain='http://www.blogger.com/atom/ns#'>ALM</category><category domain='http://www.blogger.com/atom/ns#'>CI</category><category domain='http://www.blogger.com/atom/ns#'>quality</category><category domain='http://www.blogger.com/atom/ns#'>cruise control</category><category domain='http://www.blogger.com/atom/ns#'>Quality Pundits</category><category domain='http://www.blogger.com/atom/ns#'>lisa</category><title>Test Automation Tools!</title><description>As a Quality Architect, I have been tasked with evaluating test automation tools for QA/QE and development more often than I can remember. There is always a fight between homegrown and commercial tools, i.e. a build vs. buy decision. I have always been an advocate of homegrown solutions, until recently. I have architected several sophisticated frameworks myself. In this blog, I uncover some of the very basic requirements of a test automation framework, which should help you with your evaluation or defining the requirements for your homegrown venture.&lt;br /&gt;&lt;br /&gt;The complete requirement of a test automation framework can be captured in one line: &lt;blockquote&gt;A tool that facilitates automating test scenarios and allows &lt;span style="font-weight: bold;"&gt;anyone &lt;/span&gt;to run them from &lt;span style="font-weight: bold;"&gt;anywhere &lt;/span&gt;and at &lt;span style="font-weight: bold;"&gt;anytime&lt;/span&gt;.&lt;br /&gt;&lt;/blockquote&gt;This means that automating tests should be easy and intuitive. Tests, once automated, should be able to run on any supported platform or operating system. And most importantly, anyone  (QA, Development, Sustaining Team, or even customers, if required) should be able to run these automated tests in an unattended mode.&lt;br /&gt;&lt;br /&gt;Appropriate logging and debugging mechanisms should be available to capture false negatives. The tool should provide a framework to test the core technologies that our SUT is built upon - SOA Web Services, .NET, EJBs, RMI, Web UI, Rich Clients, Command Line, SQL, Scripting, APIs, Raw SOAP, Proprietary XML and document formats, etc.&lt;br /&gt;&lt;br /&gt;No tool can generate positive results if it does not take people and processes into account. Apart from the core test automation needs, a framework must also integrate with other existing tools in the &lt;a href="http://almquality.blogspot.com/2006/10/understanding-alm.html"&gt;ALM&lt;/a&gt; domain. For example,  a test automation tool must integrate with test management system, which should integrate seamlessly with requirements management, defect tracking and other top-level dashboards.  &lt;span style="font-style: italic;"&gt;There is no one tool that can serve all our requirements and that is why it is very important to have open integration APIs available for customization&lt;/span&gt;. Continuous Integration and Agile testing is the new buzz these days. A framework must mesh well with cruise control, ant, maven and build repositories.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SCENARIO: &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;A test engineer or a developer automates a test and checks it into a version control system. Cruise control kicks of the nightly build and executes all the pre-deployment test cases. A provisioning system deploys the latest bits and kicks of the post-deployment automated tests. Test results are automatically pushed over to a central server, where they get mapped to the requirements. An email notification is generated with up-to-date report.&lt;br /&gt;&lt;br /&gt;Next morning, the manager checks the email, clicks on the link, logs into the reporting system and gets the latest release readiness matrix with detailed drill-down test coverage and code coverage reports.&lt;br /&gt;&lt;br /&gt;The company decides to ship automated tests with its product to its customers. Even in absence of the build workspace and central reporting server, customers are able to execute the automated tests and get the local report!&lt;/blockquote&gt;Above scenario captures majority of the requirements of a test automation framework. Some may think it is too extreme and for others some pieces of this scenario may not be applicable at all. But if you really think about it, this is the kind of infrastructure that is required to build high quality software applications. It is required for continuous integration and agile development &amp; testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RECAP:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A test automation framework should (choose the ones applicable to you):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;be platform/OS independent&lt;/li&gt;&lt;li&gt;provide detailed logging and debugging mechanisms&lt;/li&gt;&lt;li&gt;support SUT technologies&lt;/li&gt;&lt;ul&gt;&lt;li&gt;SOA Web Services, .NET, Raw SOAP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;J2EE, EJBs, RMI, POJO&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Command Line, Scripting&lt;/li&gt;&lt;li&gt;Web UI&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Rich Client - Swing UI&lt;/li&gt;&lt;li&gt;Databases, SQL&lt;/li&gt;&lt;li&gt;Raw XML&lt;/li&gt;&lt;li&gt;Proprietary document and transport&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;be able to execute test cases in headless and batch mode&lt;/li&gt;&lt;li&gt;zero coding requirement - but still available for advanced users&lt;/li&gt;&lt;li&gt;version control friendly - no binary files to check-in&lt;/li&gt;&lt;li&gt;provide APIs/mechanisms to integrate with other ALM tools&lt;/li&gt;&lt;ul&gt;&lt;li&gt;integrate with development IDEs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;integrate with build workspace&lt;br /&gt;&lt;/li&gt;&lt;li&gt;integrate with Continuous Integration tools&lt;/li&gt;&lt;li&gt;integrate with Code coverage tools&lt;/li&gt;&lt;li&gt;integrate with test management tools&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;provide detailed reporting (text, xml, html, etc) with APIs to customize and integrate&lt;br /&gt;&lt;/li&gt;&lt;li&gt;provide data driven capability - a must&lt;br /&gt;&lt;/li&gt;&lt;li&gt;provide distributed application support&lt;/li&gt;&lt;li&gt;be able to execute remote commands&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ease of use, good documentation, training and support available!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Is there such a framework available in the market?&lt;/span&gt; I have worked with over 40 different commercial and open source tools and have not found even a single one that delivers even 25% of these requirements.  That is why most of the companies revert to home grown solutions. I was also one of the advocates of building a home grown solution, until recently!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BREAKTHROUGH&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Recently, I came across &lt;a href="http://www.itko.com/downloads/ga/"&gt;LISA&lt;/a&gt; from &lt;a href="http://www.itko.com/"&gt;iTKO&lt;/a&gt;. To my surprise, the tool is very impressive - much better than any other in the industry. LISA seems to deliver over 80% of above requirements - &lt;span style="font-style: italic;"&gt;as if the company read my mind and captured all the requirements&lt;/span&gt;!! There are minor quirks (like all others), but the tool is built on pure java and XML, runs everywhere, provide open APIs for expansion and integration into anything! Amazing data driven capability and provides mechanism to automate complicated end-to-end scenarios. It is a dream tool for developers and test engineers! It allows you to plugin your own java code and mash-up with other technologies.  The developers don't have to maintain a separate workspace for test cases - the test cases can be kicked off from the same build.xml file. XML reports and custom report generator can be used to integrate test results into anything.</description><link>http://qualitypandits.blogspot.com/2006/12/test-automation-tools.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-7140611631489778192</guid><pubDate>Tue, 26 Sep 2006 03:23:00 +0000</pubDate><atom:updated>2006-09-25T21:23:22.740-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>CTM</category><category domain='http://www.blogger.com/atom/ns#'>illities</category><category domain='http://www.blogger.com/atom/ns#'>Software Quality</category><category domain='http://www.blogger.com/atom/ns#'>ALM</category><category domain='http://www.blogger.com/atom/ns#'>TTM</category><category domain='http://www.blogger.com/atom/ns#'>QA</category><category domain='http://www.blogger.com/atom/ns#'>Quality Pundits</category><category domain='http://www.blogger.com/atom/ns#'>innovation</category><category domain='http://www.blogger.com/atom/ns#'>SOA</category><title>Missed time to market window! Really?</title><description>We know project management is all about the juggling the three balls of time, cost and quality. A project is successfull if it meets the functional and non-functional requirements within predetermined time, cost and quality constraints.&lt;br /&gt;&lt;br /&gt;The traditional project management approach (and hence 99% of the tools)  focus on completing the defined work within given time constraints and cost limits. However, the recent focus has been shifting more to the quality of the final output!!&lt;br /&gt;&lt;br /&gt;Let's look at some examples:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Google&lt;/span&gt;. Didn't google missed the time to market long before it released its search engine?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Apple iPOD. &lt;/span&gt;Had it made a difference if iPOD was delayed another 6 months?&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Toyota Prius in 2000. &lt;/span&gt;Missed the TTM by three years! (Audi released its first hybrid in 1997 and Honda released its hybrid in 1999)&lt;/li&gt;&lt;/ul&gt;More and more companies are realising the fact that quality rocks!! If your product is high quality, it doesn't really matter if you are a year or two late to the market. Every product has its life, but if it is of high quality it tends to live longer - which changes the whole Net Present Value (NPV) calculation, in case you are using it to calculate the validity of your projects and releases.&lt;br /&gt;&lt;br /&gt;Project requirements can be divided into functional and non-functional buckets. Functional requirements are the core (and supplementry) features of your product. Non-functional requirements are the systemic qualities, which encapsulates all "illities" - Availability, Scalability, Reliability, Flexibility, Extensibility, Interoperability, Compatibility, Testability, Understandability, Load and Performance, Stability, Resiliency, Manageability, Mantainability, Security, Supportability, Adaptability, Configurability and Usability! &lt;span style="font-style: italic;"&gt;Note: &lt;/span&gt;Not all illities are applicable to all product offerings.&lt;br /&gt;&lt;br /&gt;Your product may have over thousand functionalities, but just pick a handful of core ones (maybe 3 to 5) and all of the non-funtional requirements for your first release. A high quality product markets itself: word-of-mouth is the most effective marketing tool. Once a customer is hooked-in, slowly roll-out new features. That way you'll have the relationship going and you can get a continuous inflow of money - easy from SEC's perspective and no hassle of accounting manipulations either! That's what is driving software as a service (SaaS) market today.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://almquality.blogspot.com/2006/09/understanding-soa.html"&gt;SOA&lt;/a&gt; is the SaaS enabler and it is changing the way software is released. SOA brings business agility. However, our project management tools are still old-fashioned. Project managers are still focused on TTM and CTM concepts. They are still chasing deadlines and pennies.  Quality awareness is forcing &lt;a href="http://feeds.feedburner.com/%7Er/qualitysystems/%7E3/20408832/understanding-alm_04.html"&gt;ALM&lt;/a&gt; companies to come up with more sophesticated tools that stitches the SOA fabric.&lt;br /&gt;&lt;br /&gt;For innovation and quality, you are never late to the market!</description><link>http://qualitypandits.blogspot.com/2006/09/missed-time-to-market-window-i-dont.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-6558442659186115590</guid><pubDate>Wed, 20 Sep 2006 15:49:00 +0000</pubDate><atom:updated>2006-09-20T09:04:47.491-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>flexibilty</category><category domain='http://www.blogger.com/atom/ns#'>Quality definition</category><category domain='http://www.blogger.com/atom/ns#'>scalability</category><category domain='http://www.blogger.com/atom/ns#'>Software Quality</category><category domain='http://www.blogger.com/atom/ns#'>interoperabiliy</category><category domain='http://www.blogger.com/atom/ns#'>requirements</category><category domain='http://www.blogger.com/atom/ns#'>Quality Index</category><category domain='http://www.blogger.com/atom/ns#'>StickMinds</category><category domain='http://www.blogger.com/atom/ns#'>availability</category><category domain='http://www.blogger.com/atom/ns#'>understandability</category><category domain='http://www.blogger.com/atom/ns#'>Robert Glass</category><title>Follow on: Revisiting the Definition of Software Quality</title><description>Interesting &lt;a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;ObjectType=COL&amp;amp;ObjectId=2909"&gt;article and discussion&lt;/a&gt; on the definition of quality on StickyMinds.com! Article is dated back to 2001, but it is still very much relevent. &lt;a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;ObjectType=COL&amp;amp;ObjectId=2909#authorbio"&gt;&lt;span class="Text"&gt;Robert L. Glass&lt;/span&gt;&lt;/a&gt; has done a good job in defining what quality is and what it is not.  As you can read through the comments, not everyone agree with his definition - as one would expect. Quality is a FAT word and can be interpreted in zillion of ways.  It is therefore important that the project team agrees to one definition of quality and stick to it. Consistency is far more important than the definition itself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ISO definition of Quality: &lt;/span&gt;&lt;i&gt;The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs. (&lt;a href="http://www.issco.unige.ch/ewg95/node69.html"&gt;ISO 8402: 1986, 3.1&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This definition captures both funcional and non-functional requirements. And BTW, the official name of all "illities" is Systemic Qualities. And there are a lot more Systemic qualities than what Robert has mentioned - for instance - &lt;span style="font-weight: bold;"&gt;interoperabiliy&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;availability&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;scalability&lt;/span&gt;, etc.&lt;br /&gt;&lt;br /&gt;Another point I disagree with Robert is that "customers/users must participate" in prioritizing and selecting "illities". Some of these systemic qualities are customer facing and other are company facing. For example, it is in companies best interest to make sure there is &lt;span style="font-weight: bold;"&gt;flexibilty &lt;/span&gt;in the code for future expansion and &lt;span style="font-weight: bold;"&gt;understandability &lt;/span&gt;is important to the company for maintenance purpose! Customer doesn't care if your code is moduler and your architecture is flexible. All he cares is the feature set he wants, when he wants it. Customer cares less about the business requirements. But when we talk about quality, all requirements come into picture:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;customer requiremens&lt;br /&gt;&lt;/li&gt;&lt;li&gt;business requirements (capture market requirements and corporate requirements)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;legal requirements&lt;/li&gt;&lt;li&gt;government requirements&lt;/li&gt;&lt;li&gt;social requirements&lt;/li&gt;&lt;li&gt;testability requirements&lt;/li&gt;&lt;li&gt;operations requirements&lt;/li&gt;&lt;li&gt;engineering requirements&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I don't think we need to be in accordance with the customer on all these requirements!!&lt;br /&gt;&lt;br /&gt;Another interesting topic that was raised in the article is whether quality can be quantified, given the definition by Robert Glass. I find it rather amusing because, I think, Quality can be defined and can even by quantified. Of cosurse, not everyone would agree with your definition and your way of quantifying it, but you can definetely do it. And as I said, consistency is far more important than the definition itself.&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://almquality.blogspot.com/2006/09/quality-index-qi-measure-of-risk.html"&gt;Quality Index (QI): Measure of Risk&lt;/a&gt; for more insight into how you can measure software quality</description><link>http://qualitypandits.blogspot.com/2006/09/follow-on-revisiting-definition-of.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-2201781328222249220</guid><pubDate>Fri, 15 Sep 2006 15:40:00 +0000</pubDate><atom:updated>2006-09-15T09:12:24.195-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>QI</category><category domain='http://www.blogger.com/atom/ns#'>Measuring Quality</category><category domain='http://www.blogger.com/atom/ns#'>Quality Architect</category><category domain='http://www.blogger.com/atom/ns#'>Quality Metrics</category><category domain='http://www.blogger.com/atom/ns#'>Backlog Management</category><category domain='http://www.blogger.com/atom/ns#'>Quality Index</category><category domain='http://www.blogger.com/atom/ns#'>Dependency Matrix</category><category domain='http://www.blogger.com/atom/ns#'>SOA</category><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>Test Automation</category><category domain='http://www.blogger.com/atom/ns#'>Software Quality</category><category domain='http://www.blogger.com/atom/ns#'>QA</category><category domain='http://www.blogger.com/atom/ns#'>Automated Reports</category><title>It all boils down to Metrics!!</title><description>Setting up a goal is one thing, but how do we know that we have achieved our goal? Software engineering is becoming more of an art than science. Success is a relative term! A project manager with exceptional artistic and articulative skills can sell a project, which is on road to failure, as a successful investment to the executives. In absence of real numbers, the darkness prevails. And under this darkness, all decisions lead to the path of failure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Snapshot:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;"We have a GA date approaching. PPM calls a Projet-Team meeting and takes a vote of confidence, which decides the fate of the software!!"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"A P1 bug is not a show-stopper if it already exists in production. The release will not degrade the production quality!!"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"QA gives a conditional GO with list of risks. By the time decision propogates to executives, the attachment is dropped and the Conditional-Go turns into a Sure-shot-Go!!"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"PM: The problem is not in our piece of the code. The issue is because of the other component that we are dependent on!!"&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Sounds Familiar? Interesting, isn't it?&lt;br /&gt;&lt;br /&gt;Let's face it, we need sophisticated tools that can generate real time metrics for anyone to make informative decisions. People often mix product quality with process quality. Even though a high quality process generates a high qualiy product (&lt;a href="http://almquality.blogspot.com/2006/08/tqm-in-software-development.html"&gt;TQM principle&lt;/a&gt;), I believe the metrics for the two should be different. For example, higher percentage of test automation improves QA process quality and doesn't directly improve underlying product quality! Note: the automation of processes in the early &lt;a href="http://qualitysystems.blogspot.com/"&gt;ALM&lt;/a&gt; cycle would have a more direct impact on the product quality.&lt;br /&gt;&lt;br /&gt;Here are the list of questions, that metrics should be able to answer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q1. &lt;/span&gt;What is the overall &lt;a href="http://almquality.blogspot.com/2006/09/quality-index-qi-measure-of-risk.html"&gt;&lt;span style="font-weight: bold;"&gt;Quality Index (QI)&lt;/span&gt;&lt;/a&gt; of the product. QI for a particular feature or requirements? What is the QI of different components?&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Consistency of the processes and measures is the key here.&lt;/li&gt;&lt;li&gt;It is easy to fabricate a QI model that concentrates on intrinsic product quality!&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q2. &lt;/span&gt;What's our &lt;span style="font-weight: bold;"&gt;Release Readiness&lt;/span&gt;? What's the &lt;span style="font-weight: bold;"&gt;risk &lt;/span&gt;if we release our product today?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q3. &lt;/span&gt;What's the &lt;span style="font-weight: bold;"&gt;QI trend&lt;/span&gt; for differenet releases and different builds?&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Trend is more important than actual QI snapshot.&lt;/li&gt;&lt;li&gt;Errors in the QI (if any) cancel out when you read trends&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q4. &lt;/span&gt;What's the &lt;span style="font-weight: bold;"&gt;Dependency Matrix&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;(DM)&lt;/span&gt;? How does other SOA components impact my product? How does my product impact other offerings in the organization?&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Current snapshot from QI perspective&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Roadmap overlap for future releases. Cross-project Backlog Management.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q5. &lt;/span&gt;What's the realtime &lt;span style="font-weight: bold;"&gt;Coverage &lt;/span&gt;graphs?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Test Coverage (test validating requirements)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Code Coverage (tests validating code)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q6.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Testing Strategy Automation&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;When files A, B and C change, which features get impacted. What test cases and configurations should a test lead plan for next build?&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Q7. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Process Quality&lt;/span&gt;. How productive is my team?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Measures of test automation.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Comparisons with baseline (and manual testing)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;With above metrics in hand, I can easily make statements like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We are ready for the release!! Our product QI crossed 85% in the last build.&lt;/li&gt;&lt;li&gt;Because of TTM (time to market) pressures, we have decided to release our product with 65% QI. To mitigate the risk, we have also decided to increase our customer support resources.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Our product is not ready for GA because we have a dependency on products B, C and D, and product B has a QI of only 30%. Since B is tightly coupled with our core, we are not in a position to release our product.&lt;/li&gt;&lt;li&gt;I can effecively utilized my QA resources to concentrate on only the impacted features in a build. We don't have to regress every build every time. We can validate a build with handfull of fixes in less than two hours, and that too with over 95% confidence!!&lt;/li&gt;&lt;li&gt;We can now sell SLAs and QLAs around certan metrics because we have a consistent (and automated) way of capturing them.&lt;/li&gt;&lt;li&gt;I can trace a customer escalation all the way back to requirements, because we have end-to-end integration of ALM tools with excellent search facilities.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</description><link>http://qualitypandits.blogspot.com/2006/09/it-all-boils-down-to-metrics.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-8345235043775364878</guid><pubDate>Sat, 09 Sep 2006 05:53:00 +0000</pubDate><atom:updated>2006-09-09T00:45:54.351-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>ALM</category><category domain='http://www.blogger.com/atom/ns#'>QA Infrastructure</category><category domain='http://www.blogger.com/atom/ns#'>Quality Architect Role</category><category domain='http://www.blogger.com/atom/ns#'>SOA</category><title>Role of a Quality Architect</title><description>I found a really interesting article on Application Quality by Allen Stoker. Make sure you read both &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=ArchitectAppQuality"&gt;part 1&lt;/a&gt; and &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=ArchAppQuality2"&gt;part 2&lt;/a&gt;. Best part is that it discusses the need of a Quality Architect:&lt;br /&gt;&lt;blockquote&gt;"&lt;span style="font-style: italic;"&gt;Quality begins in the team - not the application. Proper planning, communication and processes are essential to any successful project. Projects that lack these fundamentals will likely produce problematic applications. I'm a firm believer that large teams with diverse skill sets need a Quality Architect - a highly skilled technical person on your team who has no assignment but to support or ‘enable’ the other team resources. Such a resource can mean the difference between project success and failure.&lt;/span&gt;"&lt;br /&gt;&lt;/blockquote&gt;This is even more interesting to me because I spent some time last year just to understand the role. I would agree 101% with Allen that this role can make a world of difference and can be responsible for a project's success or failure, especially in light of the fact that quality is the measure of success! (assuming quality is part of the defined business goals)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Role of a Quality Architect:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Get the business, engineering, and QA teams to agree on common quality goals (i.e. define quality!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Establish QA infrastructure to boost team's efficiency and effectiveness&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Establish processes that complement the tools and provides end-to-end traceability&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Review product architectures and provide feedback on systemic qualities before development cycle starts&lt;/li&gt;&lt;li&gt;Understand the ALM process and idenify risk elements from quality perspective&lt;/li&gt;&lt;li&gt;Standardize processes and procedures to be able to develop SLAs and QLAs&lt;/li&gt;&lt;li&gt;Work with cross-functional teams to combine elements of project management and  business analytics, especially w.r.t. SOA interdependencies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Translate quality metric data into information! Enable inuitive reporting to drive transparency into product's intrinsic quality.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Participate, Review and Approve testing strategies&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The role touches almost every aspect of ALM , i.e from requirements to requirements.  Horizontally, the Quality Architect is responsible for coordination and collaboration across cross-functional teams (from marketing to design &amp; development to QA to operations &amp;amp; customer care) Vertically, the person is responsible to boost team's productivity and at the same time explain quality metric data to executives in layman terms.&lt;br /&gt;&lt;br /&gt;The role requires a fine balance between extraordinary people skills and hands-on technical skills!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trackback URL: &lt;/span&gt;&lt;a href="http://feeds.feedburner.com/%7Er/qualitypandits/%7E3/20574846/role-of-quality-architect.html"&gt;Role of a Quality Architect&lt;/a&gt;</description><link>http://qualitypandits.blogspot.com/2006/09/role-of-quality-architect.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-4396483023607222708</guid><pubDate>Thu, 07 Sep 2006 21:03:00 +0000</pubDate><atom:updated>2006-09-07T14:12:17.710-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>testing</category><category domain='http://www.blogger.com/atom/ns#'>unit testing</category><category domain='http://www.blogger.com/atom/ns#'>Development</category><category domain='http://www.blogger.com/atom/ns#'>QA</category><category domain='http://www.blogger.com/atom/ns#'>humphrey</category><category domain='http://www.blogger.com/atom/ns#'>automation</category><category domain='http://www.blogger.com/atom/ns#'>functional testing</category><category domain='http://www.blogger.com/atom/ns#'>roles</category><title>Follow on: Development vs. QA - Why disagree?</title><description>I like the bold questions raised by &lt;a href="http://www.blogger.com/profile/7037537"&gt;jason&lt;/a&gt; in his blog "&lt;a href="http://itko.blogspot.com/2005/09/development-vs-qa-why-disagree.html"&gt;Development vs. QA - Why disagree?&lt;/a&gt;". For the last half decade (especially after dot-bust), quality has gained an overwhelming visibility in the software industry and the awareness is growing day-by-day. Numberous studies have proven the exponential relationship between the life of bug and associated cost. Sustaining costs are increasing far beyond original development costs. Therefore, companies are trying to crush new bugs, as soon as they find their way into the code. And hence, the pressure is on developers to test their own code!&lt;br /&gt;&lt;br /&gt;I don't see the testing goals between development and QA as conflicting. I see the conflict more because of differences in role, availability of test beds, and more importantly the will! Developers generally don't want to do testing - they always write the perfect code!&lt;br /&gt;&lt;br /&gt;The QA is way too on the other side of the wall. 99% of QA teams are involved in black-box testing of features as customer sees them.  So, Quality organization is always more close to the end-customer as compared to the development.&lt;br /&gt;&lt;br /&gt;To me - both practices are inefficient. We all know that by testing in the end, QA cannot build quality in, it's the development team that needs to write a quality code to start with. I am a firm believer of &lt;a href="http://almquality.blogspot.com/2006/08/tqm-in-software-development.html"&gt;TQM principles&lt;/a&gt; and &lt;a href="http://qualitygurus.com/gurus/list-of-gurus/w-edwards-deming/"&gt;Deming 14 points&lt;/a&gt;.  To improve quality, all processes must be standardized, engineering principles must be put in place, and there should be tools that ease the adoption of all these processes. Processes without tools create too much work and chaos!.&lt;br /&gt;&lt;br /&gt;The solution is to have a QE team, a team that is more close to development (report to the same director, or even the same manager!) , responsible for all the functional testing. QE team can catch bugs early in development cycle and QA team can focus only on non-functional requirements as part of the system testing.&lt;br /&gt;&lt;br /&gt;Developers don't want to be QA!! They restrict themselves to Unit testing and some basic functional unit testing. Another complecated issue is the deployment that is generally not automated. Lack of automated deployment breaks down the Continuous Integration cycle and developers' motivation to automate post deployment test scenarios. Using tools like &lt;a href="http://strutstestcase.sourceforge.net/"&gt;MockStrutsTestCase &lt;/a&gt;and &lt;a href="http://strutstestcase.sourceforge.net/api/servletunit/struts/CactusStrutsTestCase.html"&gt;CactusStrutsTestCase&lt;/a&gt;, developers have started to look into some level of pre-deployment functional unit testing (including in-container testing) - but again, that's streatching the limits of Unit testing, as jason said.&lt;br /&gt;&lt;br /&gt;QA is black box. But there is a limit to what QA can test - with limited resources, especially time. Once feature freeze is done and all the code is checked-in, nobody wants to give QA couple of months just to make sure they can complete the test cycle. The complicated nature of software, with all the reuseable code and interdependencies, fixing one bug late in the game has a huge potential to give birth to two or more bugs (it's like the Samuel monster from  Helloboy!)&lt;br /&gt;&lt;br /&gt;Watch Watts S. Humphrey's &lt;a href="http://www.sei.cmu.edu/videos/watts/DPWatts.mov"&gt;video&lt;/a&gt; for more info on why testing in the end is a bad bad thing to do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trackback URL: &lt;/span&gt;&lt;a href="http://feeds.feedburner.com/%7Er/qualitypandits/%7E3/20264286/follow-on-development-vs-qa-why.html"&gt;&lt;span&gt;Follow on: Development vs. QA - Why disagree? &lt;/span&gt;&lt;/a&gt;</description><link>http://qualitypandits.blogspot.com/2006/09/follow-on-development-vs-qa-why.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4551093384155960263.post-2577745767536610318</guid><pubDate>Thu, 07 Sep 2006 19:40:00 +0000</pubDate><atom:updated>2006-09-07T12:41:05.128-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>quality pandits</category><category domain='http://www.blogger.com/atom/ns#'>laundry list</category><category domain='http://www.blogger.com/atom/ns#'>RDNS</category><category domain='http://www.blogger.com/atom/ns#'>Security</category><category domain='http://www.blogger.com/atom/ns#'>vulnerabilities</category><category domain='http://www.blogger.com/atom/ns#'>Security threats</category><category domain='http://www.blogger.com/atom/ns#'>Security testing</category><category domain='http://www.blogger.com/atom/ns#'>application</category><category domain='http://www.blogger.com/atom/ns#'>DRPL</category><category domain='http://www.blogger.com/atom/ns#'>hackers</category><title>Security Testing (Application Layer)</title><description>There are different layers at which we can test for security - Physical, Hardware, OS, Network, and Application. In this blog, I am only addressing application layer security testing. Therefore, you'll not find items like testing of firewall policy rules, hardened OS, checking for all open ports on every system in the data center, testing of dialup &amp; VPN access to systems, system interconnection vulnerabilities , or Intrusion Detection System (IDS). This blog is just a starting point and does not gaurantee end-to-end security test plan.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Authorization&lt;/b&gt;: Act of identifying an individual, i.e. it is determining whether they are who they claim to be. This testing includes:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Password based authentication&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Checking against Denied Parties Restriction List (DRPL)&lt;/li&gt;&lt;li&gt;Test for unauthorized countries using Reverse DNS (rDNS)&lt;/li&gt;&lt;li&gt;Test for Login leakage: Test to make sure that user is not revealed whether the userID was wrong or password was incorrect, in case of authentication failures.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Authentication&lt;/b&gt;: Act of determining whether a given user is allowed to access a given resource under given circumstances (Role Based Access Privilege).&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Test that only authorized administrators with the appropriate privilege are allowed to access each administrative function.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Spoof testing by logging with one role and trying to access non-privileged administrative function (use URL bookmarking)&lt;/li&gt;&lt;li&gt;Test by accessing restricted URLs without logging in.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Password Strength&lt;/b&gt;. Test for password length and strength, password history, rollover and expiry. Make sure dictionary words are not allowed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Passwords in clear text&lt;/b&gt;.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Check for hard-coded passwords into the software bits or scripts. Run strings on binary code and look for password tags and strings &lt;/li&gt;&lt;li&gt;Check for password in log files (at all log levels),&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check for password in client side cookies and hidden form fields. &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Encryption&lt;/b&gt;. Tests to make sure that all form submissions use encryption to ensure that information such as passwords do not transit on network in clear text form.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Use snoop to capture network packets and make sure no data is transmitted in clear text&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check for SSL Certificates - HTTPS and TLS (for LDAP)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Session Management.&lt;/b&gt; Act of maintaining a transaction or a set of transactions from a given user. This involves maintaining the context(some sort of GUID) of an original authentication so that a user does not have to provide a password for every submission.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Test for automatic password protected locking feature on time out.&lt;/li&gt;&lt;li&gt;Logout action must terminate the active session&lt;/li&gt;&lt;li&gt;If multiple servers are used, make sure session transfers are secure and work as designed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make sure when a session is destroyed, it is destroyed across all systems.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Test for maximum session limit per user (if there is any limit imposed).&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;User Profile and Privacy.&lt;/b&gt; Make sure that company's privacy policy is communicated to the end-users. Any forms which collect personal information must include a privacy purpose statement explaining why the information is being collected and how it will be used.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Cookies: &lt;/b&gt;Cookies are stored in the browser cache&lt;b&gt; &lt;/b&gt;generally to manage session state. These can be permanent or session specific, with the difference that session cookies get destroyed when browser is closed. Since these are plain files, they can be edited by any hacker.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Tests for permanent cookies to make sure no user specific information (ID or username or password!!) is saved.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Auditing and Logging: &lt;/b&gt;Act of checking a set of actions to ensure that they comply with a given set of expectations.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Check for information protection regulations, such as Sarbanes Oxley, Graham-Leach-Bliley, Data Protection Act, or HIPAA.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Test to make sure security relevant events are getting logged. Events that are logged must include sufficient information, including: Date/Time; System/Subsystem identifier; User/Process ID (if relevant).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Logging events include:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Number of password guessing attempts,&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Attempts to use privileges that have not been authorized, &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Denial Of Service attacks &lt;/li&gt;&lt;li&gt;&lt;u&gt;Login Logs&lt;/u&gt;.Test to make sure information logged includes the user name, date and time of login, and any privilege escalations that are requested and are granted or denied.&lt;/li&gt;&lt;li&gt;&lt;u&gt;Last Login&lt;/u&gt;. Test to make sure that at login time, every user is given information reflecting their last login time and date.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;b&gt;Web Security Threats&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;HTTP Get vs. Post. Make sure portal submit form data using HTTP Post. If HTTP Get is used, add data is visible under URL, irrespective of whether HTTP or HTTPS is used.&lt;/li&gt;&lt;li&gt;Check for password and other customer sensitive data in hidden form fields.&lt;/li&gt;&lt;li&gt;Test to make sure that web server is not configured to show directory listing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;XSS security threats. Refer to &lt;a class="moz-txt-link-freetext" href="http://sec.drorshalev.com/dev/xss/xssTricks.htm"&gt;http://sec.drorshalev.com/dev/xss/xssTricks.htm&lt;/a&gt; for more details&lt;/li&gt;&lt;li&gt;Make sure that hidden form fields don't carry sensitive user information.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;URL redirections. Test to make sure all form submissions go through HTTPS&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 0);"&gt;Useful Links:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cryptome.org/gummy.htm"&gt; Potential threats for authentication based on fingerprint systems&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sun.com/software/products/identity_auditor/index.xml"&gt;Java Security System Identity Auditor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/P3P/"&gt;Platform for Privacy Preferences&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Trackback URL: &lt;/span&gt;&lt;a href="http://feeds.feedburner.com/%7Er/qualitypandits/%7E3/20264287/security-testing-application-layer.html"&gt;Security Testing (Application Layer)&lt;/a&gt;</description><link>http://qualitypandits.blogspot.com/2006/09/security-testing-application-layer.html</link><author>noreply@blogger.com (Rajeev Gupta)</author><thr:total>1</thr:total></item></channel></rss>