Software Quality Testing

Software Quality Testing is a Blog dedicated to extensive Software Quality Assurance and Software Testing information. This is intended to be an one-stop Information Center for all your Software Quality and Testing needs.

 
Weather
Click for Chennai (Madras), India Forecast
My Ballot Box
My Ballot Box
Which suite of Automation tool do you use while testing?

Mercury
IBM's Rational
Silk
Open Source Tools
Never use Tools


View Results
Hot Updates

:: Bug Free Zone ::

Translate
Sponsored Links
Other High Rated Testing Blogs
All Time Best Testing Articles
Technorati
Discussion Board
Visitor Count
Visitor Locations
Locations of visitors to this page
Play Sudoku



free+games free+online+games download+games
Timers
Subscribe

Enter your email address:

Delivered by FeedBurner


Add to Google Subscribe in Rojo Subscribe in NewsGator 
Online Subscribe in podnova Subscribe in FeedLounge Subscribe in Bloglines Add to netvibes Add to The Free Dictionary Add to Bitty Browser Add to Plusmo
Powered by

Page copy protected against web site content infringement by Copyscape BLOGGER

Site Score
Silktide SiteScore for this website Blogrolling.com Hot 500
FireFactor
2007 conference for the association of software testing (CAST2007)
Saturday, February 03, 2007
Call for papers for the Conference for the Association of Software Testing
July 9 - 11, 2007
Meydenbauer Center, Bellevue, WA.
Posted @ Saturday, February 03, 2007   0 comments

Back to Top
Bookmark This Site
Why is most software so bad?

(from an interview with Bjarne Soustroup in techreview.com)


Technology Review: Why is most software so bad?


Bjarne Stroustrup: Some software is actually pretty good by any standards. Think of the Mars Rovers, Google, and the Human Genome Project. That's quality software! Fifteen years ago, most people, and especially most experts, would have said each of those examples was impossible. Our technological civilization depends on software, so if software had been as bad as its worst reputation, most of us would have been dead by now.


On the other hand, looking at "average" pieces of code can make me cry. The structure is appalling, and the programmers clearly didn't think deeply about correctness, algorithms, data structures, or maintainability. Most people don't actually read code; they just see Internet Explorer "freeze."


I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough.


Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable. Personally, I prefer to know when a system will work, and why it will.


TR: How can we fix the mess we are in?


BS: In theory, the answer is simple: educate our software developers better, use more-appropriate design methods, and design for flexibility and for the long haul. Reward correct, solid, and safe systems. Punish sloppiness.


In reality, that's impossible. People reward developers who deliver software that is cheap, buggy, and first. That's because people want fancy new gadgets now. They don't want inconvenience, don't want to learn new ways of interacting with their computers, don't want delays in delivery, and don't want to pay extra for quality (unless it's obvious up front--and often not even then). And without real changes in user behavior, software suppliers are unlikely to change.


We can't just stop the world for a decade while we reprogram everything from our coffee machines to our financial systems. On the other hand, just muddling along is expensive, dangerous, and depressing. Significant improvements are needed, and they can only come gradually. They must come on a broad front; no single change is sufficient.


One problem is that "academic smokestacks" get in the way: too many people push some area as a panacea. Better design methods can help, better specification techniques can help, better programming languages can help, better testing technologies can help, better operating systems can help, better middle-ware infrastructures can help, better understanding of application domains can help, better understanding of data structures and algorithms can help--and so on. For example, type theory, model-based development, and formal methods can undoubtedly provide significant help in some areas, but pushed as the solution to the exclusion of other approaches, each guarantees failure in large-scale projects. People push what they know and what they have seen work; how could they do otherwise? But few have the technical maturity to balance the demands and the resources.
Posted @ Saturday, February 03, 2007   0 comments

Back to Top
Bookmark This Site
Software Quality and Testing
Sunday, January 28, 2007
From: New Earth Online

Testing is one of the fundamentals of Quality Assurance, it outlines where the defects are in a measurable form and helps to make an application "bug free". Remember though that software testing never reveals the absence of bugs, only the presence of them. The purpose of this guide is to help promote the ideals of software quality, and illustrate why it is a good thing.


The quality of a product is what gives your consumers confidence in your product, whether it be a software application or a website, careful thought has to go into it. There are various methodologies and techniques available in software engineering that help product products that are of a high quality, but these are of no use unless you and every member of your team understands the end product, the requirement of the customer, and the processes that take place in reaching the final stage. It can be considered that the end product is only as good as the process that created. If the software development process has no clear path, then it is likely that the number of defects in the product will be high. By improving this process, we start to use a methodology called software process improvement (SPI); a method of improving the software development process. As with software quality, the quality of the process is measurable (using the Capability Maturity Model) in terms of various factors; although I won't be discussing these factors here.


So just what is quality? Quality is something that can be quantified and measured, but can mean many different things, and can be measured in each of these cases. Quality can be seen as it's value for money, the satisfaction of the customer with the product, the process that created it, it's performance, it's speed, and lastly it's reliability. The ISO 9126 standard for software product evaluation states:


The totality of features and chacteristics of a software product that bear on its ability to satisfy stated or implied needs.


What it is important to understand are the stages in a good software process. These can be defined as having:


1. Defect Tracking (the tracking of bugs)
2. Usability Testing (making sure it's usable by the target audience)
3. Unit Testing (effectively looking for bugs in the software)
4. Integration Testing (making sure it works on any platform it's aimed at)


Such a process should be repeatable, well defined, managed, and is part of an ever improving cycle. The idea of this comes from the Capability Maturity Model (CMM) which was developed by the Software Engineering Institute (SEI) for the US Department of Defense and expresses the "maturity" of the process. This model describes the ability in a roadmap of 5 stages:


1. Initial - An adhoc process achieved through effort and talent of the programmers
2. Repeatable - Previous experience is utilised to construct standards, and a process
3. Defined - The process for engineering is documented, which is overviewed by a Software Engineering Process Group (SEPG)
4. Managed - The process is predicatable, and be quantified in terms of success
5. Optimising - A continuous self-improving process that is like to spawn new practices as a way of moving forward


Every software process can be defined as being in line with one of these stages; most being in the "Repeatable" level, whereas many large companies are categorised as being "Managed", and very very few are ever categorised as "Optimising". The CMM though is not the only was of quantifying a process, there are other methods, some of which are in wider use by companies.


Capability Maturity Model (CMM) broadly refers to a process improvement approach that is based on a process model. CMM also refers specifically to the first such model, developed by the Software Engineering Institute (SEI) in the mid-1980s, as well as the family of process models that followed.


Although simple to understand, the CMM has now been retired by the SEI and replaced with the
Capability Maturity Model Integration (CMMI). This new intergration model has different versions for different types of purpose, the one aimed at software development is referred to as CMMI-DEV (links to PDF documentation) and also covers the maintenance of products. The discussion of this improvement is beyond the scope of the article, though itself is a testament to processes being able to be continuously improved. Now that you have a brief idea of what software quality is, that it is measurable, and that there are models for doing this, we can now begin looking at how some of these steps come together.
Posted @ Sunday, January 28, 2007   0 comments

Back to Top
Bookmark This Site
Previous Post
Archives
Software Testing Links
Quality Assurance Links
Latest Security Alerts
Sponsored Links
SIX SIGMA Links
Project Management Links
Software Estimation & Measurement Links
Sponsored Links
Tips for Job Seekers
Listed
ServTrek
Killer Directory
Site Load Testing Tool
Quick Register
Search Engine Ginie
One Way Link directory
Software Testing Zone
DaniWeb Best blogs on the Web: all about WWW Computers Blogs - Blog Top Sites Top Blogs Software blogs Blog Flux Directory Free Blog Listings @ Blog Annoucne Find Blogs in the Blog Directory PHP Blog Manager - Free Blog Directory Bloggapedia - Find It! World Top Blogs - Blog TopSites
Blogarama - The Blog Directory BlogElites.com
© Copyright 2006 Debasis Pradhan . All Rights Reserved.