UNIT-II Quality Standards: Quality Standards, Practices and Conventions Software Configuration Management - Reviews and Audits - Enterprise Resource Planning Software. 2.1 QUALITY STANDARDS, PRACTICES AND CONVENTIONS: 1. 2. 3. 4. 5. 6. 7.
Software Software Testing Software Quality Assurance Software Quality Software Standards Software Practices Software Conventions
1. Software Software is a set of programs which is designed to perform a well defined functions or it is an sequence of instructions written to solve a particular problem. 2. Software Testing Software testing is an method of assessing the functionality of a software program. 2.1 Types Dynamic Testing: Conducted at the program‟s execution. Static Testing: Examinations of the program code and associated documentation. 3. Software Quality Assurance
Quality assurance system is the organizational structure, responsibilities, procedures, processes and resources for implementing quality management. “Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that expected of all professional developed software.”
4. Quality Quality refers to any measurable characteristics such as correctness, maintainability, portability, testability, usability, reliability, efficiency, integrity, reusability and interoperability. 4.1 Five views of Software Quality
Transcendental view User‟s view Manufacturing view Product view Value-based view
4.2 Quality Concepts Quality of Design: Quality of Design refers to the characteristics that designer‟s specify for an item. Quality of Conformance: Quality of Conformance is the degree specifications are followed during manufacturing.
to
which
the
design
Quality Control: Quality Control is the series of inspections, reviews and tests used throughout the development cycle to ensure that each work product meets the requirements placed upon it. Quality Policy: Quality policy refers to the basic aims and objectives of an organization regarding quality as stipulated by the management.
Page 2 of 28
Quality Assurance: Quality assurance consists of the auditing and reporting functions of management. Cost of Quality: Cost of Quality includes all costs incurred in the pursuit of quality or in performing quality related activities such as appraisal costs, failure costs and external failure costs. Quality Planning: Quality planning is the process of assessing the requirements of the procedure and of the product and the context in which these must be observed. Quality Assurance Plan: Quality assurance plan is the central aid for planning and checking the quality assurance. Quality Assurance System: Quality assurance system is the organizational structure, responsibilities, procedures, processes and resources for implementing quality management. 4.3 Cost of Quality
Prevention costs include
quality planning formal technical reviews test equipment Training Internal failure costs include rework repair failure mode analysis External failure costs are o complaint resolution o product return and replacement o help line support warranty work
5. Software Standards It is an standard protocol, or other common format of a document, file or data transfer accepted and used by one or more software developers while working on one or more than one computer programs. 5.1 Some Standards Organizations: o ANSI: American National Standards Institute ( Does not itself make standards but approves them). o AIAA: American Institute of Aeronautics and Astronautics (e.g. AIAA R-013-1992 Recommended Practice for Software Reliability). o EIA: Electronic Industries Association (e.g. EIA/IS-632 Systems Engineering). o IEC: International Electrotechnical Commission (e.g. IEC 61508 Functional Safety - Safety-Related Systems) o IEEE: Institute of Electrical and Electronics Engineers Computer Society Software Engineering Standards Committee (e.g. IEEE Std 1228-1994 Standard for Software Safety Plans) o ISO: International Organization for Standardization (e.g. ISO/IEC 2382-7:1989 Vocabulary-Part 7: Computer Programming) 6. Practices 6.1 The Basic Practices
Functional Specifications Reviews and Inspection Formal entry and exit criteria Functional test - variations Multi-platform testing Internal Betas Automated test execution Beta programs 'Nightly' Builds
Functional Specification A functional specification often describes the external view of an object or a procedure indicating the options by which a service could be invoked. The testers use this to write down test cases from a black box testing perspective.
Page 4 of 28
Reviews and Inspection It is argued that software inspection can easily provide a ten times gain in the process of debugging software. Formal Entry and Exit Criteria
The idea is that every process step, be it inspection, functional test, or software design, has a precise entry and precise exit criteria.
These are defined by the development process and are watched by management to gate the movement from one stage to another.
It is arguable as to how precise any one of the criteria can be, and with the decrease of emphasis development, process entry and exit criteria went out of currency.
Functional Test – Variations
Most functional tests are written as black box tests working off a functional specification. The number of test cases that are generated usually are variations on the input space coupled with visiting the output conditions.
A variation refers to a specific combination of input conditions to yield a specific output condition.
Multi-Platform Testing
Many products today are designed to run on different platforms which create the additional burden to both design and test the product.
When code is ported from one platform to another, modifications are sometimes done for performance purposes.
The net result is that testing on multiple platforms has become a necessity for most products.
Therefore techniques to do this better, both in development and testing, are essential.
This best practice should address all aspects of multi-platform development and testing.
Page 5 of 28
Internal Betas
The idea of a Beta is to release a product to a limited number of customers and get feedback to fix problems before a larger shipment.
For larger companies, such as IBM, Microsoft and Oracle, many of their products are used internally, thus forming a good beta audience.
Techniques to best conduct such an internal Beta test are essential for us to obtain good coverage and efficiently use internal resources.
This best practice has everything to do with Beta programs though on a smaller scale to best leverage it and reduce cost and expense of an external Beta.
Automated Test Execution The goal of automated test execution is that we minimize the amount of manual work involved in test execution and gain higher coverage with a larger number of test cases. ‘Nightly’ Builds The concept of a nightly build has been in vogue for a long time. While every build is not necessarily done every day, the concept captures frequent builds from changes that are being promoted into the change control system. 7. Conventions
Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices and methods for each aspect of a piece program written in this language.
These conventions usually cover file organization, indentation, comments, declarations, statements, white space, naming conventions, programming practices, programming principles, programming rules of thumb, architectural best practices, etc. These are guidelines for software structural quality.
Software programmers are highly recommended to follow these guidelines to help improve the readability of their source code and make software maintenance easier.
Coding conventions are only applicable to the human maintainers and peer reviewers of a software project.
Page 6 of 28
Conventions may be formalized in a documented set of rules that an entire team or company follows, or may be as informal as the habitual coding practices of an individual.
Coding conventions are not enforced by compilers. As a result, not following some or9 all of the rules has no impact on the executable programs created from the source code.
2.2 SOFTWARE CONFIGURATION MANAGEMENT: In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines. 1. Maintenance is a set off software engineering activities that occur after software has been delivered so the customer. 2. Software configuration management is a set of tracking and control activities that begin when a software projects begins. 3. It terminates only when the software is taken out of operation. Software Maintenance 1. The maintenance of existing software can account of over 60% of all effort expended by a development organization. 2. The ubiquitous nature of change underlies all software work. 3. Change is inevitable when computer based system are built. 4. Their external environment, making enhancement requested by user and reengineering an application. 5. When maintenance is considered to encompass all of these activities. It is relatively easy to see and absorbs. Metrics The primary objectives for object-oriented metros are the same as those metric derived for conventional software. •To better understand the quality of the product. •To assess the effectiveness of the process. •To improve the quality of work performed at a perfect level
Page 7 of 28