Explore chapters and articles related to this topic
Some (Not So) Boring Stuff
Published in James Luke, David Porter, Padmanabhan Santhanam, Beyond Algorithms, 2022
James Luke, David Porter, Padmanabhan Santhanam
Any deviation from the expected software behaviour is the definition of a defect (bug), at the heart of any software quality management program. Detection, diagnosis and resolution of software bugs are key activities across the software lifecycle. Data only serves as inputs to programs. Programs and data are managed separately. The software behaviour is deterministic (i.e. we know the expected output for the given input) and the development team follows good design practices such as modularity, encapsulations and separation of concerns. There are tools to support various activities (e.g. code analysis, debugging, data flow, change management, bug tracking, test harnesses, DevOps, etc.). Even though there are still many challenges to execute complex software projects successfully [7,8], it is fair to say that there is enough actual evidence to show that we know how to build complex software systems with adequate quality for real use. You will see below why that may look ‘boring’ when compared to what we face in projects that include AI components.
Documenting Product Requirements
Published in Richard C. Fries, Handbook of Medical Device Design, 2019
The term Software Quality Assurance is defined as a planned and systematic pattern of activities performed to assure the procedures, tools and techniques used during software development and modification are adequate to provide the desired level of confidence in the final product. The purpose of a Software Quality Assurance program is to assure the software is of such quality that it does not reduce the reliability of the device. Assurance that a product works reliably has been classically provided by a test of the product at the end of its development period. However, because of the nature of software, no test appears sufficiently comprehensive to adequately test all aspects of the program. Software Quality Assurance has thus taken the form of directing and documenting the development process itself, including checks and balances.
Product Documentation
Published in Paul H. King, Richard C. Fries, Arthur T. Johnson, Design of Biomedical Devices and Systems, 2018
Paul H. King, Richard C. Fries, Arthur T. Johnson
The term software quality assurance is defined as a planned and systematic pattern of activities performed to assure the procedures, tools, and techniques used during software development and modification are adequate to provide the desired level of confidence in the final product. The purpose of a software quality assurance program is to assure the software is of such quality that it does not reduce the reliability of the device. Assurance that a product works reliably has been classically provided by a test of the product at the end of its development period. However, because of the nature of software, no test appears sufficiently comprehensive to adequately test all aspects of the program. Software quality assurance has thus taken the form of directing and documenting the development process itself, including checks and balances.
Normalization of attribute values with interval information in group decision-making setting: with an application to software quality evaluation
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2019
Software quality is very significant for achieving competitiveness in the software industry. Assessing software quality in the early stages of design and development is crucial as it helps reduce effort, time and money. How to assess software quality is an important research topic. Most of the available literature on the evaluation of software quality is based on the actual test of products. Many standards are developed by International Organization for Standardizations (ISO/IEC 25001:2014, 2014). However, the task is difficult since most software quality characteristics, such as maintainability, reliability and reusability, cannot be directly and objectively measured before the software product is deployed and used for a certain period of time (Azar, Harmanani, & Korkmaz, 2009). So, it is very necessary to investigate some new methods to fill this knowledge gap.
SWAQ: a Semantic Web Application Quality Evaluation Framework
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2018
Some well-established software quality models and the quality attributes encompassed by them are summarised in Table 1 (Pressman, 2001). We choose the most relevant attribute of SWAs (highlighted in Table 1) based on newness of quality model and commonality of quality attributes across major quality models, while using GQM approach. The highlighted attributes were considered for their inclusion as quality attributes in the SWAQ framework. The efficiency of SWA is measured in terms of precision and recall and is discussed later. Maintenance takes most of the effort in the Software Development Life Cycle and thus is a significant determinant of quality (Koch, 2011). Portability or the ability to function on any operating system has been assumed inherent for SWAs as long as they are browser compatible. Reliability of a SWA, unlike that of conventional software, has been defined in terms of provenance and is discussed later. Usability is common across all software quality models and is equally relevant to SWAs which have a user interface for querying and response. In summary, the quality attributes adapted from software quality models are: Functionality, Maintainability, and Usability.
Data change analysis based on function call path
Published in International Journal of Computers and Applications, 2018
Cao Yong, Mu Yongmin, Shen Meie
Software testing is the final review of software requirement analysis, design specification and coding before the software put into operation, which is an important part of software quality control and cost reduction. One of the purposes of software testing is to find the measured defects or errors may exist in the software. There are countless examples of serious consequences of testing neglect. Typical examples like software defects lead to Ariane 5 launch failure which is due to the reuse of code have not been fully caused by the regression test.