Assure Software Quality:
–What is Software Quality?
-Definition of Quality by ISO 8402-198 standers
-What is Software Quality Assurance?
-Quality Software Definitions by IEEE
-Quality key aspects which should be focused while developing a software
Software quality has to be our aim and part of our way of developing software system.
Lots of Programmers, Developers are providing software in the market everyone is claiming we are providing the best products do they really mean it? Do we get really good product every time? Answer is no not every time some time we got the poor quality software products which lagging our system and drains the maximum resources hang the system and lots of other problems. But why? When the say we are providing the best software why these all problem we face?
This is because
1st They are not providing the level of quality what they are promising to provide.
2nd No one software can be 100% perfect
Why it is important to provide Software Quality Assurance?
Now the time is changing. People are much aware of IT now. People understand the traps and the only way to survive now is assure the quality of software if you promising it and it is also good to make your place in the market full of competitor.
How we can assure the quality of software?
Now to assure the quality of software one have to understand first what is actually the quality software is.
Quality : ISO 8402-1986 standard defines quality as “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs.”
Quality Software : The quality software which is reasonably bug or defects free software delivered on the time under the budget constrains. it is maintainable & meet the customer requirements the way it is supposed to be.
Definition by IEEE
- The degree to which a system, component, or process meets specified requirements.
- The degree to which a system, component, or process meets customer or user needs or expectations.
Now getting deep into the definition of Software quality will provide the ways to assure the quality of software.
So, In the first line of definition we used a word reasonably this because as I told you earlier we can’t make the software 100% perfect but try our best to achieve the reasonable perfection. Software development is not limited to a task but it is the collection and series of tasks which we follow to deliver the product that is why improvement in only one phase or two is not enough to make the software good one have to make the changing and improvement on every phase so you can achieve your goal.
Let me tell you Lots of Developers do not focus on requirement engineering may be because the product for which client is asking they have developed lots of time for other clients they have all requirements so there is no need to get into requirement engineering process again similarly lots of people do not consider the design and documentation of software an important part of the software and try to achieve the all goals on the programming level yes this is true you can achieve some level of efficiency by using efficient algorithms and programming approaches but the fault following you from the requirement engineering, design or documentation phase will remain there as you are programming on the base of design and requirements so how you can overcome the problem of base in last stage of building(Programming) you have to make the best base so you can develop a good product on that base.
Note: Some People assume that software testing is the Software quality assurance no not at all software quality assurance is a big field on the other hand software testing is the process in which you only test the final products you have you can fix the minor level issue there not the major design and requirement level engineering mistakes there.
Now when it is clear that is is important to focus on Software quality assurance from very basic to final level we should keep in mind some key aspects of quality and we should try our level best to achieve those in the development may be they can help you in delivering quality product.
The Key aspects are:
- Meet Requirements
- Good Looking
- Rapid repair for defects
- Good customer support
- Value for Money
Meet Requirements : As I mention a lot earlier requirements is an important point you have to collect them from customer carefully and should full fill them. If you are developed product is good looking working fine and speedy but not able to do properly what your customer want it is totally useless so your product should meet the requirements of customer.
Good Looking : If you think your product is delivering all functionalities what a customer want and that is enough may be the customer will not demand it that software should be good looking but it is your job to make it good looking and attractive functionalities are inside the software but look is the first impression make the first impression good customer should feel I pay for something real.
Reliable : Your product should be reliable it should perform functionalities same after one year as it was providing on the first day. If it is changing its behavior from time to time losing your data or important information your software is not reliable make it reliable by sorting out these problems.
Maintainable : Your product is good providing all functionality with pretty cool look believe me now one will buy it if you tell them “If once it will get out of order it is not possible to maintain it so use it carefully” yes people use products carefully for as they pay for it but if it is non maintainable people are not going to buy it make it easy to maintainable.
Rapid repair of defects : When the software start working in real environment face problems like bugs and many more defects also this is not a problem as I told you no one software is perfect. The actual problem start when the defect arises in the software and we can not repair them rapidly because in some cases it may lead organizations to the lose of millions and billions.
For Example : A software on report whose responsibility is to verify the Passport and Visa stop working due to a defects. If we will not provide the rapid repair for the defect may be the airport authorities will cancel their international flights as they can not allow anyone to go some other country without verification.
Good customer support : In some sense good customer support is like resolving their issues on time and make them happy as i mention in the previous point but the good customer support is also involve the way of dealing your client and make them feel special for you so they can trust on you and can avail your services latter on when ever it is needed.
Value for Money : What ever product you are providing to customer the customer is paying you for it. Make him feel he paid for the right thing by providing Good looking interface,Good Service & Proper requirement meeting product.