INTERNATIONAL JOURNAL ENGINEERING & International Journal of Computer EngineeringOF andCOMPUTER Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) VolumeTECHNOLOGY 3, Issue 2, July- September (2012), © IAEME (IJCET) ISSN 0976 – 6367(Print) ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), pp. 667–674 © IAEME: www.iaeme.com/ijcet.html Journal Impact Factor (2012): 3.9580 (Calculated by GISI) www.jifactor.com
IJCET ©IAEME
QA PROCESS, METRICS AND FACTORS AFFECTING THE SOFTWARE QUALITY TO ENHANCE THE CUSTOMER SATISFACTION LEVEL Dr. S. Ravichandran CEO & Chief Scientist Knowledge Partner Technologies, T. Nagar, Chennai, India Email:
[email protected]
ABSTRACT In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context: Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. Quality software is reasonably bug or defect free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable. Software quality is the degree of conformance to explicit or implicit requirements and expectations. In order to ensure software quality, we undertake Software Quality Assurance and Software Quality Control. Key words: Software Quality, Software Assurance and Testing 1. INTRODUCTION The quality of software is assessed by a number of variables. These variables can be divided into external and internal quality criteria. External quality is what a user experiences when running the software in its operational mode. Internal quality refers to aspects that are code-dependent, and that are not visible to the end-user. External quality is critical to the user, while internal quality is meaningful to the developer only. Some quality criteria are objective, and can be measured accordingly. Some quality criteria are subjective, and are therefore captured with more arbitrary measurements. Software Assurance: The planned and systematic set of activities that ensures that software life cycle processes and products conform to requirements, standards, and procedures.
667
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
Software Quality: The discipline of software quality is a planned and systematic set of activities to ensure quality is built into the software. It consists of software quality assurance, software quality control, and software quality engineering. As an attribute, software quality is (1) the degree to which a system, component, or process meets specified requirements. (2) The degree to which a system, component, or process meets customer or user needs or expectations [IEEE 610.12 IEEE Standard Glossary of Software Engineering Terminology]. Software Quality Assurance: The function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented. Software Quality Control: The function of software quality that checks that the project follows its standards, processes, and procedures, and that the project produces the required internal and external (deliverable) products. Software Quality Engineering: The function of software quality that assures that quality is built into the software by performing analyses, trade studies, and investigations on the requirements, design, code and verification processes and results to assure that reliability, maintainability, and other quality factors are met. Software Reliability: The discipline of software assurance that 1) defines the requirements for software controlled system fault/failure detection, isolation, and recovery; 2) reviews the software development processes and products for software error prevention and/or controlled change to reduced functionality states; and 3) defines the process for measuring and analyzing defects and defines/derives the reliability and maintainability factors. Software Safety: The discipline of software safety is a systematic approach to identifying, analyzing, tracking, mitigating and controlling software hazards and hazardous functions (data and commands) to ensure safe operation within a system. Verification: Confirmation by examination and provision of objective evidence that specified requirements have been fulfilled [ISO/IEC 12207, Software life cycle processes]. In other words, verification ensures that “you built it right”. Validation: Confirmation by examination and provision of objective evidence that the particular requirements for a specific intended use are fulfilled [ISO/IEC 12207, Software life cycle processes.] In other words, validation ensures that “you built the right thing”. Independent Verification and Validation: Verification and validation performed by an organization that is technically, managerially, and financially independent. IV&V, as a part of Software Assurance, plays a role in the overall NASA software risk mitigation strategy applied throughout the life cycle, to improve the safety and quality of software. Software quality is the degree of conformance to explicit or implicit requirements and expectations.
668
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
2. SOFTWARE QUALITY ATTRIBUTES Software quality is a field of study and practice that describes the desirable attributes of software products. Two approaches to software quality are prevalent: Defect Management Approach A software defect can be regarded as any failure to address end-user requirements. Common defects include missed or misunderstood requirements and errors in design, functional logic, data relationships, process timing, validity checking, coding, etc. The defect management approach is based on counting and managing defects. Defects are commonly categorized by severity, and the numbers in each category are used for planning. More mature software development organizations use tools such as defect leakage matrices (for counting the numbers of defects that pass through development phases prior to detection) and control charts to measure and improve development process capability. Quality Attributes Approach This approach to software quality is best exemplified by fixed quality models, such as ISO/IEC 25010:2011. This standard describes a hierarchy of eight quality characteristics, each composed of sub-characteristics: Functional suitability Reliability Operability Performance efficiency Security Compatibility Maintainability Transferability Additionally, the standard defines a quality in use model composed of six characteristics: Effectiveness Efficiency Satisfaction Safety Usability A fixed software quality model is often helpful for considering an overall understanding of software quality. In practice, the relative importance of particular software characteristics typically depends on software domain, product type, and intended usage. Thus, software characteristics should be defined for, and used to guide the development of, each product. Quality function deployment provides a process for developing products based on characteristics derived from user needs.
669
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
3. SOFTWARE QA PROCESS
Figure 1 Software QA Process 4. SOFTWARE QUALITY MANAGEMENT SYSTEM (SQMS) 1. Personal Integrated Process (PIP) is the extended form of Personal Software Process (PSP). It contains many forms, scripts, and tables of PSP for data logging. Time logging, defect logging and size estimation is carried out in the same way as performed in PSP. In addition to these forms, scripts and tables PIP contains many of the forms, scripts and tables for data logging and process execution. These forms, scripts and tables are designed for different processes such as: QAW, ADD, ARID, ATAM, CBAM, Domain Modeling, and Data Modeling. PIP uses tailored version of process script for these process components. These process scripts are designed and tailored for the need of individual engineer. These processes are integrated in PSP in such as way that process sequence helps in design and evaluation of large enterprise software system. System architectural risk such as performance, security, availability, and modifiability are identified. Domain Modeling is carried out using Unified Modeling Language (UML). However, Data Modeling can be applied using Entity Relation Diagram (ERD) or by using UML profile for data modeling. If UML is used for data modeling then only software system process will be used. Data modeling with ER development process is proposed for productivity purpose only.
670
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
5. PRINCIPLES OF QUALITY RISK MANAGEMENT 2. Primary principles of quality risk management are: 3. Evaluation of the risk to quality should be based on scientific knowledge and ultimately link to the protection of the patient 4. The level of effort, formality and documentation of the quality risk management process should be commensurate with the level of risk. 5. Benefits of Quality Management 6. A fully documented QMS will ensure that two important requirements are met: 7. Customers’ requirements Needs Confidence in the ability of the organisation to deliver the desired product and service consistently meeting their needs and expectations. 8. Organisation’s requirements Both internally and externally, and at an optimum cost with efficient use of the available resources materials, human, technology and information. 9. Quality metrics: A guide to measuring software quality Metrics have always been used to help guide managers with decisions about their organizations. However as technologies and methodologies have evolved, metrics must evolve as well. Defect tracking, for example, has traditionally been a metric used to measure software quality throughout the lifecycle. However, Agile methodologies suggest that pre-production defect tracking may, in fact, be detrimental to software teams. It can be difficult to determine which are the best for giving a true picture of software quality. This guide will provide insights for CIOs, senior managers and project managers in selecting the right set of metrics to effectively and efficiently manage their software development organizations. Is defect tracking necessary? Who should decide which metrics are most useful? How can a team get the most value out of its quality metrics program? 6. DEFECT PREVENTION AND QUALITY ASSURANCE USING STATISTICAL TESTING, SOFTWARE CERTIFICATION AND CMM Cleanroom software engineering requires statistical testing by an independent agent for the purpose of certifying software quality. Statistical software testing is a formal process that involves sampling from the intended usage environment and the precise measurement of properties of random variables inherent in such a statistical experiment. The first step in conducting a statistical test is to determine the usage distribution for the software in its intended environment. This distribution is the basis for a random generator of test sequences for the software. In order to achieve this distribution, a usage analysis is performed using the software specification and any available usage information. The usage analysis consists of a top down, structural investigation of the specification document that establishes a set of usage states and defines an ordering on this set. Cleanroom approach uses Mathematical Verification (MV) to replace program debugging before release to statistical testing. This Mathematical Verification is done by people, based on standard Software Engineering practices which explores that, 1. Human Verification is synergistic with statistical testing- that mathematical fallibility is very different from debugging fallibility. 2. Errors of mathematical fallibility are much easier to discover in statistical testing than are errors of debugging fallibility. A critical part of the agreement between a producer and receiver is how to measure quality, particularly Statistical Quality. Statistical testing allows the assessment of quality in sigma units. It does not express the defects per KLOC, but gives visibility to the user that how often the defect expected to be encountered. The set of possible executions of a software system is an infinite population. All testing is really sampling from that infinite population. No testing process, no matter how 671
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
extensive, can sample more than a minute fraction of all possible executions of a software system. If the sample embodied in a set of test cases is a random sample based on projected usage, valid statistical estimates of software quality and reliability for that usage can be of a software system produces scientific measures of product and process quality. The objective of the certification team is to provide scientific certification of software fitness for use. The certification team creates usage models which define all possible scenarios of use of the software, together with their probabilities of occurrence. Multiple models can be defined to address different usage environments, or to provide independent certification of stress situations or infrequently used functions with high consequences of failure. 7. FACTORS AFFECTING QUALITY ASSURANCE PROCESS The factors have to be identified which will optimize the software development activities and bring profit to the industry. It is human centric process and involves time. Process maturity level predicts the quality of software and other aspects. Identifying of requirements and finalizing them is time consuming process. The software development should be dynamic and not mechanical activity and hence factors should be identified. Moreover the relationship between various factors should be identified. The process adopted for developing software needs to take into account these factors. Mapping is required between various factors to optimize the process of software quality. The journey of software development can be divided into following major phases which are Quality Assurance Process SQAP i.e. Input, Quality Control Process SQCP i.e. Measure & Software as end product SAEP i.e. Output. SQAP is the process involving various activities of software development. It involves building quality into the product through four main phases which are requirements gathering, converting requirement into the design phases, implementing the product developed, maintaining the product. There are four main developmental approaches i.e. structured, object oriented, component base and web based development [6]. For any process the goal has to be defined. SQAP determines whether everything is going according to polices standards and procedures. QA is about providing assurance and credibility the product should work right and people should believe that it will work right. It is an expensive time consuming process. It touches all aspect of project. It pushes the product outdoor. SQA is the responsibility of separate independent group and has authority of redevelopment and retesting when needed. It is involved in improvement of process and product. It works like the process police. Thus it is a preventive approach and prevents faults from occurring by providing rules and methods. It prevents defects from occurring. It establishes process. Software Qualty Control Process (SQCP) prevents deviation from normal development is indirectly influencing quality. The process which is going on is controlled by different ways. It is monitored and evaluated to keep it to maximum level for optimized output. It is corrective approach. It find faults, corrects faults when occurs. Task is conducted on products. It implements process. Testing is one of the activities which are carried from starting to last phase. Testing and Quality are like two sides of same coin. Factors Influencing Success of the Projects Many factors influence the success of the project. Cost, time and quality are the factors that influence the success of the project. If these triple constraints of the project are met then it is way easy to make or declare a project successful. To construct the customer relation management 672
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
system it is highly important to first analyze the issues the business is facing right now at the current time and then gather all the requirements for the new system. It is impossible to build a system if its requirements are not well known. High Profile Projects’ Failure – Reason “Lack of Quality” Below are some high profile projects examples which lead to the project failure because of lack of project quality. One important thing which is to be noted that quality does not merely means that the project works fine. There are a number of factors like the meeting the satisfaction needs of the clients, fulfillment of the requirements which include functional and non-functional requirements and also other important factors like long term maintenance. There are a number of bench marks across which the project is tested in order to see whether it fulfills the needs or not. It is true that developing a project is easy but developing it within the budget, scope and requirements is different. As all these factors combine to form a complete quality project. Lack of Vision It is not necessary that the project vision remains the same from the very start. Sometimes the managers are not even sure about what they are going to develop. The project sometimes takes turn and to assure its success the managers need to take decisions which in turn results in change in the vision of the project. Sometimes in order to fulfill the demands of the stakeholders, clients and sponsors it becomes really important to change the vision of the project in order to meet their goals and satisfy their needs. The stakeholders are at times so interested in the success or progress of the company instead of the organization thus resulting in changed project vision to attain the company’s specific goals instead of the overall goal for which the project was basically developed. The changed vision statement should be communicated to the team members in a very good way with some strong facts and figures. CONCLUSION This study shows that the principles of software quality assurance practices. It is evolutionary in eliminating debugging because more and more program design has been developed in design languages that must be verified rather than executed. It is evolutionary in statistical testing because with higher quality programs at the outset, representative-user testing is correspondingly a greater fraction of the total testing effort. Software quality can be engineered under statistical quality control and delivered with better quality. REFERENCES 1. 2.
3. 4. 5.
G. Gordon Schulmeyer, The handbook of software quality Assurance, Prentice Hall, 1998. Dr. S. Ravichandran, A Detailed Systematic Literature Review on Software Reusability Metrics for Object Oriented Software Programs, International Journal of Information Technology and Management Information Systems, 3(1), 2012, pp. 33-42 Dr. S. Ravichandran, A Systematic Root Cause Analysis to Improve The Quality of Software Product - A Case Approach, IJIERD, 1(1), 2010, pp. 13-36. Pete McBreen. Mcbreen, Quality Assurance and Testing in Agile Projects, Consulting 2003 Dr. S. Ravichandran, Various Dimensions of CMMI Approach in Indian Perspective, International Journal of Computer Engineering & Technology, 2(2), 2011, pp. 34-39. 673
International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print), ISSN 0976 – 6375(Online) Volume 3, Issue 2, July- September (2012), © IAEME
6.
7.
8.
9.
10.
11.
12.
13. 14. 15.
Dr. S. Ravichandran, Comparative Analysis of Various Software Development Models with Reference to Indian Development Environment, International Journal of Information Technology and Management Information Systems, 1(1), 2010, pp. 60-72. Dr. S. Ravichandran, Critical Success Factors (CSS) for Effective Implementation of Knowledge Management System – A Case Study in Software Project Organization, International Journal of Computer Engineering & Technology, 3(1), 2012, pp. 355-361. Inoue S, Yamada S “Testing-Coverage Dependent Software Reliability Growth Modeling” International Journal of Reliability, Quality and Safety Engineering, Vol. 11, No. 4, 303312, 2004. Dr. S. Ravichandran, Empirical Investigation of Quality Assurance of India Software Development Organisations, International Journal of Computer Engineering & Technology, 1(1), 2010, pp. 147-157. Dr. S. Ravichandran, Importance of CMM Approach to Improve Quality of Software Product in A Systematic Manner: An Empirical Study, International Journal of Advanced Research In Management, 1(1), 2010, 60-70. S.Saira Thabasum, “Need for Design Patterns and Frameworks for Quality Software Development”, International journal of Computer Engineering & Technology (IJCET), Volume 3, Issue 1, 2012, pp. 54 - 58, ISSN Print: 0976 – 6367, ISSN Online: 0976 – 6375. Dr. S. Ravichandran, Literature Review on Software Metrics For Software Process Improvement (SPI), International Journal of Information Technology and Management Information Systems, 2(1), 2011, pp. 1-4. Dr. S. Ravichandran, Software Engineering Process Leading to For Knowledge Reuse, International Journal of Computer Engineering & Technology, 1(2), 2010, 201-211. Dr. S. Ravichandran, Study and Analysis of Effort Prediction for Software Maintenance Activity, International Journal of Management, 1(1), 2010, 130-142. S.Manivannan and Dr.S.Balasubramanian, “Software Process and Product Quality Assurance in it Organizations”, International journal of Computer Engineering & Technology, Volume 1, Issue 1, 2010, pp. 147 - 157, ISSN Print: 0976 – 6367, ISSN Online: 0976 – 6375.
AUTHOR PROFILE Dr. S. Ravichandaran is the founder member of KP Tech academically well qualified and a veteran in Quality Assurance Arena with over 2 decades of experience. Dr. S. Ravi is ME, MBA,& PhD holder ,Sigma Master Black Belt and ISO Lead Auditor for ISO Standards. He is an eminent IT professional and renowned QA expert and also well qualified visiting professor and member of academic council including Anna University, Guided many post graduates and PhD students,. Recipient of awards viz., Eminent Engineer, Distinguished Scientist, Fellowships from Professional institutes. Dr. S. Ravichandaran has served in Atomic Energy Commission and later in eminent Software MNC’ s and has played an immense role of taking companies through process improvement leading to Engineering, HR, Training Process certification and Skill Development.
674