Font Size: a A A

Networked Modeling,Quality Measurement And Assurance For Software System

Posted on:2019-05-13Degree:DoctorType:Dissertation
Country:ChinaCandidate:Y WangFull Text:PDF
GTID:1488306353963229Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Numerous product quality problems have been emerging in software development activities,e.g.,inappropriate functionalities don't meet users' requirements,frequent failures caused by low reliability,delivering defective software products,or fuzzy and incomplete requirements.In most cases,the main reason for the problems is that quality monitors didn't detect and fix the problems in time,which leads to the software development goes to the next stage with the existing problems.As a result,it needs developers to devote much more time and effort to solve the problem.Therefore,lack of quality assurance can trigger various software product problems.Although the existing software quality metrics have been verified in practice,they still have limitations in the actual development process.Traditional approaches focus on statistical analysis on microlevel software system,so that it is difficult for developers to capture the characteristics of overall software architecture.Developers attempt to apply the existing quality models to all types of software development process,which deviates from the diversity of software quality.The design intention of software quality model doesn't take the application scenarios into consideration,as a result,it cannot support the specific development activities,such as testing,refactoring and so on.Thus,how to develop an easyto-use model that can effectively detect the potential quality problems,is still an open question.In this paper,we proposed a novel software quality model and apply to solve the quality assurance and improvement problems.The innovations of the paper are summarized below.(1)To address the limitation of the existing models that describe the software only from static structure and a single dimension of characteristic software system.We proposed a multiple dimension software network model,to map the software into multiple granularities,multiple types of dependencies and multiple functional profiles.By analyzing the dynamic structural complexity,an evaluation scheme is proposed to quantify the risk factors of software modules.We define the class risk index as a combination of three factors:the likelihood of a class triggered in various execution scenarios,the fault-proneness of this class,and its failure consequence.In addition,with the help of multiple dimension software network model,we present an easy-to-use architecture-based software reliability measurement,which uses hardware reliability analysis to access the software reliability without the assistance of history failure and testing data.By mapping software system into various atomic functional profiles,we describe the system behaviors from the perspective of static topological structure.Fault tree model is established to analyze the various possible combinations of component failure cause that can ultimately lead to the failure of overall system.Furthermore,to identify the system bottlenecks,the sensitivity of system reliability to the reliabilities of components is discussed.Finally,based on a series of case studies,we show that the proposed system reliability scheme is effective and can be considered as the guidelines in the software design phase.(2)We apply the proposed software quality model into the integration testing scenarios,and propose an effective strategy that considers both test cost and efficiency when generating test orders.Classes with high risk indices are considered the key points of testing and,as such,should be assigned a higher priority.Cost-benefit analysis is used to perform breaking cycle operations,where this satisfies two principles:assigning higher priority to high-risk classes,and minimizing the total complexity of test stubs.Furthermore,we present a method to evaluate the effectiveness of integration test order algorithms by calculating the reduction in risk to the system due to their use.Based on their contribution to system risk reduction,a strategy for optimizing the allocation of testing resources is proposed.As limited test costs,the proposed integration scheme can make the most of the available test resources to eliminate the greatest risks to the system.In a comparison with state-of-the-art strategies,where the results were assessed using complexity measurements,we show that our method performs well across systems.Finally,an automated testing tool called ITOsolution(Integration Test Order Solution)was implemented to support the proposed approach.(3)We apply the proposed software quality model into the regression testing scenario to guarantee the software quality.With the help of multiple dimension software network model,we propose a self-adaptive test case prioritization algorithm.Test case prioritization techniques allow testers to schedule their test cases so that those test cases with the highest priority,according to some criterion,are executed earlier in the regression testing process than lower priority test cases.Increasing a test suite's rate of fault detection is considered as one potential goal of test case prioritization,which is a measurement of how quickly a test suite detects faults during the testing process.In this paper,we dynamically update the software reliability value when calculating the priority weight of each test case and combine the feedback information to determine the test case execution order.By analyzing the experimental results,we find that assigning higher priority to the critical test cases helps to detect the more severer faults in the early testing steps,thereby the system reliability and test efficiency are improved.(4)We describe a system-level multiple refactoring algorithm,which can identify the move method,movefield,and extract class refactoring opportunities automatically according to the principle of "high cohesion and low coupling." The algorithm works by merging and splitting related classes to obtain the optimal functionality distribution from the system-level.Furthermore,we present a weighted clustering algorithm for regrouping the entities in a system based on merged method-level networks.Using a series of preprocessing steps and preconditions,the "bad smells" introduced by cohesion and coupling problems can be removed from both the non-inheritance and inheritance hierarchies without changing the code behaviors.We rank the refactoring suggestions based on the anticipated benefits that they bring to the system.Based on comparisons with related research and assessing the refactoring results using quality metrics and empirical evaluation,we show that the proposed approach performs well in different systems and is beneficial from the perspective of the original developers.Finally,an open source tool named REsolution is implemented to support the proposed approach.
Keywords/Search Tags:Software quality model, risk analysis, regression testing, software refactoring
PDF Full Text Request
Related items