<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>software-testing on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/software-testing/</link>
    <description>Recent content in software-testing on S Anand</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 24 Sep 2006 12:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/software-testing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>London Test Automation Conference at Google</title>
      <link>https://www.s-anand.net/blog/london-test-automation-conference-at-google/</link>
      <pubDate>Sun, 24 Sep 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/london-test-automation-conference-at-google/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.google.co.uk/intl/en/events/londontesters/speakers.html&#34;&gt;Presentations&lt;/a&gt; and &lt;a href=&#34;http://video.google.co.uk/videosearch?q=LTAC&#34;&gt;videos&lt;/a&gt; from Google&amp;rsquo;s conference on test automation at London. I was at the event, and learned a lot.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Facts and Fallacies in Software Engineering</title>
      <link>https://www.s-anand.net/blog/facts-and-fallacies-in-software-engineering/</link>
      <pubDate>Tue, 22 Aug 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/facts-and-fallacies-in-software-engineering/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.informit.com/articles/article.asp?p=30091&amp;amp;rl=1&#34;&gt;Facts in Software Engineering&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;People&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The most important factor in software work is the quality of the programmers.&lt;/li&gt;
&lt;li&gt;The best programmers are up to 28 times better than the worst programmers.&lt;/li&gt;
&lt;li&gt;Adding people to a late project makes it later.&lt;/li&gt;
&lt;li&gt;The working environment has a profound impact on productivity and quality.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Tools and Techniques&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;Hype (about tools and techniques) is the plague on the house of software.&lt;/li&gt;
&lt;li&gt;New tools/techniques cause an initial loss of productivity/quality.&lt;/li&gt;
&lt;li&gt;Software developers talk a lot about tools, but seldom use them.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Estimation&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;8&#34;&gt;
&lt;li&gt;One of the two most common causes of runaway projects is poor estimation.&lt;/li&gt;
&lt;li&gt;Software estimation usually occurs at the wrong time.&lt;/li&gt;
&lt;li&gt;Software estimation is usually done by the wrong people.&lt;/li&gt;
&lt;li&gt;Software estimates are rarely corrected as the project proceeds.&lt;/li&gt;
&lt;li&gt;It is not surprising that software estimates are bad. But we live and die by them anyway!&lt;/li&gt;
&lt;li&gt;There is a disconnect between software management and their programmers.&lt;/li&gt;
&lt;li&gt;The answer to a feasibility study is almost always &amp;ldquo;yes&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Reuse&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;15&#34;&gt;
&lt;li&gt;Reuse-in-the-small is a well-solved problem.&lt;/li&gt;
&lt;li&gt;Reuse-in-the-large remains a mostly unsolved problem.&lt;/li&gt;
&lt;li&gt;Reuse-in-the-large works best for families of related systems.&lt;/li&gt;
&lt;li&gt;Reusable components are three times as hard to build, and should be tried out in three settings.&lt;/li&gt;
&lt;li&gt;Modification of reused code is particularly error-prone.&lt;/li&gt;
&lt;li&gt;Design pattern reuse is one solution to the problems of code reuse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;21&#34;&gt;
&lt;li&gt;For every 25 percent increase in problem complexity, there is a 100 percent increase in solution complexity.&lt;/li&gt;
&lt;li&gt;Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;23&#34;&gt;
&lt;li&gt;One of the two most common causes of runaway projects is unstable requirements.&lt;/li&gt;
&lt;li&gt;Requirements errors are the most expensive to fix during production.&lt;/li&gt;
&lt;li&gt;Missing requirements are the hardest requirements errors to correct.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;26&#34;&gt;
&lt;li&gt;Explicit requirements &amp;ldquo;explode&amp;rdquo; as implicit (design) requirements for a solution evolve.&lt;/li&gt;
&lt;li&gt;There is seldom one best design solution to a software problem.&lt;/li&gt;
&lt;li&gt;Design is a complex, iterative process. Initial design solutions are usually wrong, and certainly not optimal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Coding&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;29&#34;&gt;
&lt;li&gt;Designer &amp;ldquo;primitives&amp;rdquo; (solutions they can readily code) rarely match programmer &amp;ldquo;primitives&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;COBOL is a very bad language, but all the others (for business applications) are so much worse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Error-removal&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;31&#34;&gt;
&lt;li&gt;Error-removal is the most time-consuming phase of the life cycle.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;32&#34;&gt;
&lt;li&gt;Software is usually tested at best at the 55-60 percent (branch) coverage level.&lt;/li&gt;
&lt;li&gt;100 percent coverage is still far from enough.&lt;/li&gt;
&lt;li&gt;Test tools are essential, but many are rarely used.&lt;/li&gt;
&lt;li&gt;Test automation rarely is. Most testing activities cannot be automated.&lt;/li&gt;
&lt;li&gt;Programmer-created, built-in, debug code is an important supplement to testing tools.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Reviews/Inspections&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;37&#34;&gt;
&lt;li&gt;Rigorous inspections can remove up to 90 percent of errors before the first test case is run.&lt;/li&gt;
&lt;li&gt;But rigorous inspections should not replace testing.&lt;/li&gt;
&lt;li&gt;Post-delivery reviews (some call them &amp;ldquo;retrospectives&amp;rdquo;) are important, and seldom performed.&lt;/li&gt;
&lt;li&gt;Reviews are both technical and sociological, and both factors must be accommodated.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;41&#34;&gt;
&lt;li&gt;Maintenance typically consumes 40-80 percent of software costs. It is probably the most important life cycle phase of software.&lt;/li&gt;
&lt;li&gt;Enhancements represent roughly 60 percent of maintenance costs.&lt;/li&gt;
&lt;li&gt;Maintenance is a solution, not a problem.&lt;/li&gt;
&lt;li&gt;Understanding the existing product is the most difficult task of maintenance.&lt;/li&gt;
&lt;li&gt;Better methods lead to MORE maintenance, not less.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Quality&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;46&#34;&gt;
&lt;li&gt;Quality IS: a collection of attributes.&lt;/li&gt;
&lt;li&gt;Quality is NOT: user satisfaction, meeting requirements, achieving cost/schedule, or reliability.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Reliability&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;48&#34;&gt;
&lt;li&gt;There are errors that most programmers tend to make.&lt;/li&gt;
&lt;li&gt;Errors tend to cluster.&lt;/li&gt;
&lt;li&gt;There is no single best approach to software error removal.&lt;/li&gt;
&lt;li&gt;Residual errors will always persist. The goal should be to minimize or eliminate severe errors.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;52&#34;&gt;
&lt;li&gt;Efficiency stems more from good design than good coding.&lt;/li&gt;
&lt;li&gt;High-order-language code can be about 90 percent as efficient as comparable assembler code.&lt;/li&gt;
&lt;li&gt;There are tradeoffs between size and time optimization.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;About Research&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;55&#34;&gt;
&lt;li&gt;Many researchers advocate rather than investigate.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;http://www.informit.com/articles/article.asp?p=30032&amp;amp;rl=1&#34;&gt;Fallacies in Software Engineering&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;About Management&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fallacy: You can&amp;rsquo;t manage what you can&amp;rsquo;t measure.&lt;/li&gt;
&lt;li&gt;Fallacy: You can manage quality into a software product.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;People&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Fallacy: Programming can and should be egoless.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Tools and Techniques&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Fallacy: Tools and techniques: one size fits all.&lt;/li&gt;
&lt;li&gt;Fallacy: Software needs more methodologies.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Estimation&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;Fallacy: To estimate cost and schedule, first estimate lines of code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;7&#34;&gt;
&lt;li&gt;Fallacy: Random test input is a good way to optimize testing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Reviews&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;8&#34;&gt;
&lt;li&gt;Fallacy: &amp;ldquo;Given enough eyeballs, all bugs are shallow&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;9&#34;&gt;
&lt;li&gt;Fallacy: The way to predict future maintenance cost and to make product replacement decisions is to look at past cost data.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;About Education&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;10&#34;&gt;
&lt;li&gt;Fallacy: You teach people how to program by showing them how to write programs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are from Robert Glass&amp;rsquo; book &lt;a href=&#34;http://www.amazon.com/gp/product/0321117425/?tag=sanand-20&#34;&gt;Facts and Fallacies in Software Engineering&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>How to get Yahoo Mail Beta</title>
      <link>https://www.s-anand.net/blog/how-to-get-yahoo-mail-beta/</link>
      <pubDate>Tue, 25 Apr 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/how-to-get-yahoo-mail-beta/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://googlesystem.blogspot.com/2006/04/get-yahoo-mail-beta.html&#34;&gt;How to get Yahoo Mail Beta&lt;/a&gt;. Since I&amp;rsquo;m in the UK, I have it already. It&amp;rsquo;s excellent. I now actually check my Yahoo mail thrice a week, and feel happy while doing it.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Famous software glitches</title>
      <link>https://www.s-anand.net/blog/famous-software-glitches/</link>
      <pubDate>Thu, 12 Sep 2002 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/famous-software-glitches/</guid>
      <description>&lt;p&gt;Speaking of bugs, here are some &lt;a href=&#34;http://wwwzenger.informatik.tu-muenchen.de/persons/huckle/bugse.html&#34;&gt;famous software glitches&lt;/a&gt; &amp;ndash; right from the Patriot missiles misfiring to the London Millenium bridge wobbling. Some links are broken, though. (&lt;a href=&#34;http://www.cs.tau.ac.il/~nachumd/verify/horror.html&#34;&gt;More glitches&lt;/a&gt; and &lt;a href=&#34;http://www.computergripes.com/Other.Computer.Gripers.html&#34;&gt;links&lt;/a&gt;)&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Music helps identify software bugs</title>
      <link>https://www.s-anand.net/blog/music-helps-identify-software-bugs/</link>
      <pubDate>Thu, 12 Sep 2002 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/music-helps-identify-software-bugs/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.newscientist.com/news/news.jsp?id=ns99992757&#34;&gt;Music helps identify software bugs&lt;/a&gt;. I&amp;rsquo;m sure it can be extended to many other forms of ordered data. DNA sequences, time series, etc.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Google toolbar experimental features</title>
      <link>https://www.s-anand.net/blog/google-toolbar-experimental-features/</link>
      <pubDate>Sun, 01 Sep 2002 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/google-toolbar-experimental-features/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://toolbar.google.com/experimental&#34;&gt;Google toolbar: experimental features&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
