45 Examples of Software Quality John Spacey, updated on
Software quality is the degree to which software serves its purpose. This includes business functionality, usability and operational characteristics such as availability. The following are common examples of software quality.
AccessibilityUser interfaces that are accessible to people with disabilities.AccuracySoftware that implements requirements correctly. In many cases, requirements are open to interpretation making this a bit tricky. It is possible to design requirements as logical statements and then prove that an implementing procedure is correct. In practice, correctness is usually something of a judgement call.AdaptableSoftware that easily adjusts to change. For example, an application that can be adapted to use different data sources.AestheticsIn many cases, users will end up spending thousands or perhaps millions of hours looking at a user interface. As such, aesthetics are often considered a software quality factor.AlgorithmsAlgorithms are procedures that have a rigorous design. In order to be truly rigorous, they are hardened with techniques such as peer review and mathematical proofs. In many cases, quality control of algorithms requires novel approaches due to their complexity and need for high performance and correctness.ArchitectureThe structure of software and how it fits into an enterprise architecture.Audit TrailLogs and other recordings that allow events to be reconstructed for the purposes of audit or investigation.Authentication And AuthorizationDetermining the identity of people and things and using identity to control access to information and actions. A focus of security assurance.AvailabilitySoftware that is designed for high availability.BehaviorConformance to behavioral specifications such as use cases.Code ReadabilityCode that is intelligently documented and formatted with clearly named variables. Programming style and skillful use of language facilities are also readability factors.Code SmellA term for code that is generally sloppy with problems such as lack of structure and source that looks as if it has been pasted from somewhere with little thought or skill.ComplexityComplexity tends to increase costs to maintain, support and extend. Ideally code is no more complex than required to achieve its functionality, behavior and quality.ComplianceCompliance to laws, regulations and standards.ConsumabilitySoftware that is easily consumed meaning that users and business units can adopt it with little effort. Think of a mobile application that feels intuitive from the start.DefectsSoftware that has undergone rigorous testing and is free of defects meaning that it conforms to specifications.DesignSoftware that has a cohesive design that achieves both short term and long term needs of a business. This typically requires a skilled architect well versed in your business and practices such as patterns.DocumentationDocumentation such as requirements, non-functional requirements, architecture, design, test cases and operational tools such as a runbook.DurabilitySoftware that resists the effects of software entropy or the tendency for software to become error prone and brittle with time.EfficiencySoftware that uses resources such as memory, computing cycles and bandwidth efficiently.EleganceCode that is remarkable for its unusual power and simplicity. At its best, programming is more art than science with vast differences in ability between programmers. The elegance of code is a qualitative judgement that can be established by peer review.Error ReportingThe usefulness and security of error messages, logs and other error reporting mechanisms.ExtensibleSoftware that is easy to extend with new functionality.Fault ToleranceThe ability to continue to operate when errors are encountered. Fault tolerance is often left to the programmer but it has a significant business impact that calls for requirements such as expected behavior when resources such as a network connection are lost.FunctionalityConformance to functional requirements such as business rules.Hardcoding vs SoftcodingHardcoding is the practice of embedding functions and values in code. Softcoding is the placement of values in configuration and parameters. Both inappropriate hardcoding and excessive softcoding are common software quality problems.Human FactorsDesigns and features that incorporate human cognitive factors such as validations to prevent human error.InteroperabilityThe ability to work seamlessly with other software and devices.MaintainabilityEasy, inexpensive and low risk to maintain.ModularSoftware that is divided into independent reusable components.OperableInterfaces, tools and reporting that reduce the operating overhead of software. For example, an administration console that simplifies common operational tasks.PerformanceSpeed of execution under a variety of load conditions.PortabilitySoftware that can be used in different environments such as operating systems, platforms and devices.PrivacyPrivacy controls on data.ReliabilityPerforms consistently without seemingly intermittent or unpredictable behavior and errors.Requirements QualitySoftware is garbage in garbage out and depends on the quality of its requirements. As such, the common definition of software quality as "conformance to specifications" represents a narrow viewpoint.ReusablePlatforms, libraries, components and methods that encapsulate reusable functionality behind a useful interface.Risk ManagedThe practice of identifying and treating risks related to software.RobustnessAnother common term for fault tolerance, or the ability to continue when errors are encountered.ScalableSoftware that performs proportionally to available resources. Associated with distributed systems such as cloud platforms or peer-to-peer software.StabilitySoftware that doesn't crash. Stability is commonly measured with nines such as 99.99% or 99.999% uptime.TestabilityTestability mostly relates to documentation such as requirements and test cases. In many cases, legacy software lacks the information required to properly regression test.Transactional IntegrityThe integrity of transactions at the business level such as a money transfer that either succeeds or fails with nothing inbetween.UsabilityA user interface that is pleasing and productive to use.VulnerabilityA vulnerability is a flaw or weakness in software that can be exploited by a security threat. In many cases, software undergoes a security assurance process that validates designs and tests for vulnerabilities.Software QualityThis is the complete list of articles we have written about software quality.If you enjoyed this page, please consider bookmarking Simplicable.
Software QualityA list of software quality factors.Design Debt
An overview of design debt.
Software Examples
An overview of software with real-world examples.
Problem SolvingAn overview of problem solving with examples.
Thought ProcessesA list of thinking approaches and types.Workaround
A definition of workaround with examples.
Creative ThinkingA list of common creative thinking techniques.ProblemsA list of common types of problems.Analysis Paralysis
The definition of analysis paralysis with examples.
Arrow Of Time
The definition of the arrow of time with examples.
Business ProblemsAn overview of common business problems.
Decision Framing
The definition of decision framing with examples.
ResearchThe common types of research.TrendingThe most popular articles on Simplicable in the past day.
New ArticlesRecent posts or updates on Simplicable. Site Map
Decision Making
Design Design Quality Governance Information Technology Management Management Analysis Management First Principles Manufacturing Organizational Culture Performance Management Problem Solving Program Management Project Management Quality Quality Assurance Quality Control Reliability Engineering Requirements Risk Management Service Management Small Business Usability More ...
© 2010-2024 Simplicable. All Rights Reserved. Reproduction of materials found on this site, in any form, without explicit permission is prohibited. View credits & copyrights or citation information for this page. |