The quality of software (software) is determined based on the study of external and internal features of the product. External quality is determined by how it works in real time, how productive for users. The second feature focuses on internal aspects that depend on the quality of the written code. The user focuses more on how the software works at an external level, the quality of which can be maintained only if the specialist has written good program code.
Software quality
Currently, there are two important approaches that are used to determine software quality:
- Defect management.
- Quality attribute.
Anything that does not meet the customer’s requirements falls into the category of defects. A development team that fails to fully understand customer requirements will make design mistakes.
In defect management, their categories are determined based on severity. The number of software problems is calculated and measures are taken according to the established severity. Control charts can be created to measure the capabilities of the development process.
Software quality has improved significantly over the past two decades. One reason for this is because companies are using new technologies, such as object-oriented development and CASE tools. In addition, one can observe the growing importance of introducing production management practices.
Software quality management is divided into three main areas:
- Guarantee. Development of the foundations of organizational events and software quality standards ..
- Planning. Selection of appropriate standards and adaptation to a specific software project.
- The control. Identify processes that ensure that software development meets quality standards.
SQA Organization Policy
An organization’s software quality policy must fulfill the following requirements:
- Compliance with the goals and objectives of the organization.
- Commitment to common quality assurance concepts.
- Commitment to quality standards adopted by the organization.
- Commitment to allocate adequate resources.
- The desire to constantly improve the quality and productivity of the organization.
To meet all the requirements of the standard, companies appoint a quality manager. Responsibilities of this employee:
- Responsibility for the preparation of the annual program of activities and the SQA budget.
- Organization of development of development plans for the SQA system.
- General control over the implementation of the annual program of regular events and planned development projects.
- Determination of the compliance of the program of measures with the characteristics and volume of subcontractor services and software purchases planned for next year.
- Presentation and promotion of SQA issues for executive management.
- Examining the proposals prepared by the SQA department for the annual program of events, checking the potential of the proposal to achieve the goals.
High level concepts
Qualitative characteristics are high-level concepts that reflect important aspects and are not directly evaluated by software quality. Instead, the plan should identify appropriate indicators that can be used to determine one or more characteristics.
For example, when evaluating an XML parser, you can use a set of W3C XML conformance tests. It includes tests designed to satisfy all areas of control, as well as recommendations from the W3C Extensible Markup Language (XML) with particular emphasis on error handling requirements for the accuracy or validity of XML documents. Thus, the percentage of test cases passed is used as a metric to evaluate the following characteristics of the XML parser in question:
- User perspective.
- Functionality.
- Reliability and fault tolerance.
From the user's point of view, there are several important characteristics that answer the following questions:
- Who provides the full range of essential functions as intended?
- Does the software work reliably to get the necessary results when used correctly?
- Does the program function safely and reliably in case of incorrect input?
- Is the software product easy to use?
- Does the software work fast or seems too slow?
- Does the program work well with another product that the user uses?
Considering that quality issues are important to the user, the IT team responsible for deploying and maintaining the software may encounter other problems:
- Protection against malicious attacks.
- The quality of use of computing resources.
Low-quality resources are those that require more memory and processing power than necessary.
ISO provides this model with two new top-level categories related to technological software quality assurance.
Product Requirements ISO 9126
ISO 9126 is the international standard for evaluating software. It is divided into four parts, which address the following topics:
- External indicators.
- Internal indicators.
- Quality model.
- Quality indicators of software.
The first part of ISO 9126 is an extension of the previous standard implemented by McCall (1977), Boehm (1978) and FURPS in defining a set of quality characteristics.
The ISO 9126 documentation is subject to copyright. The quality model ISO 9126-1 defines 6 main characteristics:
- Functionality.
- Reliability.
- Usability.
- Efficiency.
- Maintainability.
- Portability.
Product Functionality
Functionality is the primary goal of any product or service. The more possibilities for using the product, the more difficult it becomes to determine its functionality. For software, a list of what is available to it can be indicated.
Some of the software features listed (for example, convenience) are present only to a certain extent, that is, they are not just “on” or “off”. Many people confuse the overall functionality of a process and a software product. This is often due to the fact that data flow diagrams (DFD) and other modeling tools can reflect the functionality of a process, like a set of converted data to data out.
ISO 9126-1 and other quality models do not help measure the total costs or benefits of a process, but examine only the software component. The relationship between software functionality as part of a common business process is beyond the scope of ISO 9126.
The following attribute capabilities characterize the usefulness of software in a given environment. Each of them can only be measured with the appropriate system programs.
Reliability and usability features
As soon as the software system begins to function, the reliability characteristic determines its ability to support the provision of its services in certain conditions for specific periods of time. One aspect of this feature is fault tolerance. For example, if the network shuts down within 20 seconds, then the system should be able to recover and continue working.
The ability to learn how to use the system (learnability) is one of the main characteristics of usability.
EFFICIENCY is associated with system resources used to provide the necessary functionality. Disk space, memory and network are good indicators of efficiency. As with a number of other criteria, there are matches between them. For example, the usability of a system affects its performance.
Maintainability and portability
The ability to identify and correct an error in a software component is what maintainability characterization refers to. Its performance is affected by the readability or complexity of the code, as well as modularity. This is what helps identify the cause of the malfunction, and then fix it.
Maintainability characteristics:
- Analyzability - identifies the root cause of failure.
- Variability - defines the efforts that are made to modify the code to eliminate the error.
- Stability - demonstrates how stable the system is in operation when changes are made to it.
- Testability - determines how much effort goes into testing the system.
- Portability - the ability of a system to adapt to changes in its environment.
- Adaptability - how easily the system adapts to changes made to the specifications.
- Installation speed - how easily the system can be installed.
- Replaceability - how easy it is to replace a system component.
- Cost of software quality. She is very important. When the developer decides to conduct testing for his product, he is actually going to spend time, money and effort to test it.
- Suitability - determines whether the software functions meet the requirements.
- Accuracy - establishes the correct implementation of functions.
- Interoperability - interacting with other components of the system.
- Compliance of software with the necessary laws and recommendations.
- Ensuring the quality and security of software and processing transactions related to data.
- Reliability - the ability of software to work in certain conditions for a specified period of time.
- Maturity is the frequency of software failures.
- Recovery - an idea of the ability of the system to return to full work after a failure.
Portability refers to how well software can adapt to changes in its environment or with its requirements. Object-oriented design and implementation methods can contribute to the extent to which these software quality characteristics are present in a given system.
Cost Analysis Processes
The cost of quality is calculated by analyzing the costs of compliance and non-compliance. The price of the first indicator is related to:
- Prevention costs. This is the amount spent to ensure proper compliance with all methods. It includes team training, code validation, and any other QA related activities.
- The cost of the assessment. This is the amount of money spent on planning all the test tasks, and then on their implementation, for example, on the development of test cases.
- Non-compliance costs. These are costs that arise due to internal and external failures.
Internal failures are costs that occur when test cases are run for the first time at an internal level, with some failing. Costs arise when a programmer must correct all defects identified in his fragment during unit or component testing.
External failures are costs that arise when a defect is installed by the customer, not the tester. These costs are much greater than those that appear at the domestic level. This is especially true if a software glitch increases.
Disciplined process analysis
This is a processor evaluation of a software product. It includes the identification and characterization of current practice, the identification of strengths and weaknesses, as well as the ability to control or avoid significant causes of poor quality of the product. Audit programs can be of three types:
- Self-esteem. Held inside the organization’s own staff.
- Third party evaluation.
- Third Party Evaluation.
The audit of the software process is performed in an open common environment with the goal of improving its performance and using software quality assurance programs. The results of such an audit are confidential to the organization.
As for data collection, four methods are used:
- Standard Maturity Matters.
- Individual and group interviews.
- Reviews of documents.
- Feedback on the project review by evaluation participants.
Standard SCAMPI Method
IEEE definition for software quality assurance:
- The planned systematic scheme of all actions necessary to create sufficient confidence that the product or product meets the necessary technical requirements.
- The set of actions for evaluating the software quality assurance process by which products are developed or manufactured.
The CMMI (Process Engineering Institute) for Process Improvement (SCAMPI) was developed to meet the requirements based on IPA CBA and CBA.
IPI and SCAMPI consist of three stages:
- Plan and preparation.
- On-site assessment verification.
- Report on the results.
Actions for the plan and preparation stage include the following factors:
- Identification of the scope
- Develop a plan.
- Preparation of an assessment team.
- Grading participants.
- Administering a CMMI assessment questionnaire.
- Studying answers in questionnaires.
- Initial inspection of documents.
Activities at the reporting stage include:
- Presentation of final results.
- Holding an executive session.
- Completion of software quality assessment.
Activities for the on-site assessment phase include:
- Organization of the opening of the project.
- Conducting an interview.
- Compilation of information.
- Preparation of the presentation of the results.
- Organization of the closure of the project.
Organizational structure of staff
It includes those responsible for the quality of software. Such people may be:
- Managers
- Top managers, especially those directly responsible for quality assurance.
- Heads of the development and maintenance department.
- Testing Department Managers.
- Project managers and project development and maintenance team leaders.
- Test Team Leaders.
- Testers.
Test Team Members:
- SQA specialists and interested practitioners.
- SQA Trustees.
- Committee members and members of the SQA forum.
- SQA team members.
Only test managers and test staff are available full time to complete SQA tasks. Others devote only part of their working time to quality issues.
In fact, in development organizations there is a three-level management structure:
- Top management.
- Department Management.
- Project management.
A project manager is the person responsible for ensuring that all team members follow the specified procedures and instructions. His tasks include professional practical and managerial issues. Project managers perform such functions:
- The work of the software development and maintenance unit.
- Work on the integration and testing of a software development system, the correction and performance of regression tests.
- Checks and subsequent corrections of defects.
- Performing acceptance tests.
- Install software on remote client sites.
The need to install antivirus utilities
When purchasing new software, the user thinks about the question of when it is necessary to purchase anti-virus software. Many still call this type of software antivirus, although today this term is outdated.
Worst of all, the “best” malware, if you can call it that, silently penetrates the computer without the knowledge of the host. It may be hidden from the user's eyes, but it will do harm.
With a major modernization of operating systems, the need to establish such dubious programs to protect PCs has disappeared. Users now have Windows 10. Microsoft has built in two important tools in it: a firewall and Windows Defender.
These two strokes are designed to ensure PC security. Since they are integrated into the OS, it does not require unnecessary external software resources. Microsoft often updates utilities, trying to prevent new threats from appearing. If for some reason something breaks through, there is an enhanced version of "defense" - Windows Defender. It works offline. You can start it without connecting to the Internet from a USB drive.
Windows Defender is a good tool. There is no reason not to use it. , .