• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Graph-Based Feature Learning for Cross-Project Software Defect Prediction

    2023-12-12 15:49:32AhmedAbduZhengjunZhaiHakimAbdoRedhwanAlgabriandSungonLee
    Computers Materials&Continua 2023年10期

    Ahmed Abdu,Zhengjun Zhai,2,Hakim A.Abdo,Redhwan Algabri and Sungon Lee

    1School of Software,Northwestern Polytechnical University,Xi’an,China

    2School of Computer Science,Northwestern Polytechnical University,Xi’an,China

    3Department of Computer Science,Hodeidah University,PO Box 3114,Al-Hudaydah,Yemen

    4Research Institute of Engineering and Technology,Hanyang University,Ansan,Korea

    5Department of Robotics,Hanyang University,Ansan,Korea

    ABSTRACT Cross-project software defect prediction(CPDP)aims to enhance defect prediction in target projects with limited or no historical data by leveraging information from related source projects.The existing CPDP approaches rely on static metrics or dynamic syntactic features,which have shown limited effectiveness in CPDP due to their inability to capture higher-level system properties,such as complex design patterns,relationships between multiple functions,and dependencies in different software projects,that are important for CPDP.This paper introduces a novel approach,a graph-based feature learning model for CPDP(GB-CPDP),that utilizes NetworkX to extract features and learn representations of program entities from control flow graphs(CFGs)and data dependency graphs(DDGs).These graphs capture the structural and data dependencies within the source code.The proposed approach employs Node2Vec to transform CFGs and DDGs into numerical vectors and leverages Long Short-Term Memory(LSTM)networks to learn predictive models.The process involves graph construction,feature learning through graph embedding and LSTM,and defect prediction.Experimental evaluation using nine open-source Java projects from the PROMISE dataset demonstrates that GB-CPDP outperforms state-of-the-art CPDP methods in terms of F1-measure and Area Under the Curve(AUC).The results showcase the effectiveness of GB-CPDP in improving the performance of cross-project defect prediction.

    KEYWORDS Cross-project defect prediction;graphs features;deep learning;graph embedding

    1 Introduction

    Software defect prediction(SDP)is a challenging task in software engineering that aims to identify potential defects in software systems early during software development.Defect prediction aims to help software developers and testers prioritize their efforts and resources toward the most likely problematic areas of the software codebase,ultimately improving the software quality and reliability[1–3].Extracting features from source code is symbiotic with the software quality assurance model and helps with the software testing process.Effective feature extraction not only aids in identifying potential defects and vulnerabilities early in the development cycle and aligns with the principles of open-source software quality assurance[4–6].By comprehensively analyzing code interdependencies,design patterns,and intricate relationships,feature extraction techniques enhance the ability to identify and rectify issues promptly,fostering higher software quality.

    Early research in defect prediction focused mainly on within-project defect prediction(WPDP),where data from a single project was used to build and test predictive models in the same project.The underlying principle of this approach is that by leveraging patterns and trends within the historical data of the projects,it becomes possible to pinpoint areas of high risk within the software codebase[7,8].One of the main advantages of WPDP is that it can be tailored to the specific characteristics and context of the project,such as the programming language,development process,and team expertise.However,WPDP can suffer from limited training data;within a single project,the available training data for defect prediction may be limited,especially for rare or severe defects[9].This challenge can make it difficult to build accurate and reliable models.To address the issue of limited data in certain single projects,researchers employed data from well-established software projects(known as the source project)to construct an SDP model that can be applied to predict faults in another software project(referred to as the target project).This approach is the fundamental concept behind the cross-project defect prediction(CPDP)approach.The objective of CPDP is to utilize data from multiple software projects to improve the accuracy and generalizability of defect prediction models[10–12].

    Most previous studies in CPDP[13–21]have used traditional static features to train machine learning algorithms for predicting potential defects.These traditional CPDP models rely on handcrafted features,such as code size,code complexity,and process features,to train machine learning models that classify code parts as defective or non-defective.Traditional features-based CPDP approaches have shown tangible success in predicting defects in new projects.However,these models often suffer from low prediction accuracy and limited generalization to new projects due to the variability in software projects and difficulty defining meaningful features for different projects.

    Recently,deep learning has become increasingly popular for SDP.Some researchers have proposed CPDP models that can automatically learn semantic (syntactic) features from source code.For instance,Wang et al.[22]used a deep belief network(DBN)to extract syntactic features from Abstract Syntax Trees(ASTs)of program modules.These learned features were subsequently utilized to build the SDP model.Chen et al.[23] introduced the CPDP approach based on deep learning.They extracted a simplified AST to represent each program module in the source code.Then they used Bidirectional LSTM to learn syntactic features from simplified AST nodes.Dynamic syntactic featuresbased approaches can help effectively differentiate the semantics of various code snippets,a task that traditional features cannot address adequately.However,these methods often cannot capture the complex relationships among software products,such as function calls and variable dependencies.Fig.1 shows a motivating example of a defect in a real-world Java code.The defect revolves around three methods: the “fetchProductInfo” method (Method 1) retrieves information about a product by utilizing the “getProductDetails” method (Method 3) to retrieve its details and then employs the “getDataTypeInfo” method (Method 2) to validate and process the attribute data types.This validation is crucial to find the appropriate description for the processed data node.However,the defect arises due to inconsistencies in handling the case sensitivity of the attribute names.While the attribute names within the data are lowercase (line 2,Method 2),the product identifier is not.Consequently,the validation process in Method 2 might not function correctly due to this case discrepancy.To address this defect,a fix is implemented by modifying the“getProductDetails”method(Method 3).The developer introduced a method call to convert the product identifier into lowercase(lines 2–3,Method 3) before performing the lookup in the product details map.This modification ensures consistency in handling case sensitivity and resolves the defect.

    Two important observations have been drawn from this example as the following:

    Observation 1 (O1):This defect involves multiple methods,and to completely understand and detect this defect,it is necessary to consider the dependencies and relationships among these methods.However,existing CPDP approaches often examine code within a method individually without considering interprocedural dependencies.For example,traditional features-based CPDP [15–19]uses handcrafted features to train machine learning algorithms for predicting potential defects,and semantic features-based CPDP [22,23] uses syntactic features extracted from ASTs of program modules to train deep learning models and predict defects,cannot detect this defect because they focus on individual methods and do not consider cross-method dependencies.

    Observation 2(O2):Complex defects like the one described can have diverse paths and dependencies contributing to their emergence.A uniform weighting of paths,as seen in existing approaches,might not effectively capture these critical paths.GB-CPDP addresses this limitation by employing graph-based embeddings that consider the significance of multiple graph representations that need to be considered,such as CFGs and PDGs,allowing for more accurate defect detection by prioritizing paths that are relevant to defects.

    This example is a compelling motivation for adopting the proposed GB-CPDP model.By leveraging graph-based feature learning,the model can comprehensively capture the intricate relationships and dependencies between methods,enhancing the accuracy of CPDP.This paper introduces a graph-based feature learning approach for CPDP to address these challenges.In the proposed approach,source code features are extracted and learned from CFG and DDG using NetworkX.Subsequently,an LSTM is employed to learn a predictive model based on the acquired features.Our approach consists of three main phases: (1) graph construction,where the software items are represented as a graph and extract relevant features;(2) feature learning,where LSTM is used to learn feature representations from the graph;and(3)defect prediction,where the classifier is trained to predict defective code parts based on the learned features.The prediction performance of our model is evaluated using commonly used measures in defect prediction models F1-measure and AUC.According to experimental findings on nine Java projects,our proposed GB-CPDP outperforms baseline techniques regarding F1-measure and AUC under CPDP.

    The main contributions of this paper are as follows:

    ? We propose a new approach for CPDP using graph-based feature learning,which can capture the complex relationships among software projects,transfer data from related source projects,and handle missing or limited data in target projects.

    ? We build a defect prediction model using the LSTM for learning the extracted graph features to enhance the defect prediction performance.

    ? We conduct extensive experiments on several benchmark datasets and demonstrate that our approach outperforms several baseline methods and achieves competitive results compared to the best-performing methods.

    Following is a summary of the rest of this paper.Section 2 reviews the related works.Section 3 explains the proposed approach to constructing a graph,learning graph features,and then utilizing the acquired features to predict defects.The experimental setup and results analysis is presented in Section 4.Section 5 presents threats to validity.Finally,our study is summarized in Section 6.

    2 Related Work

    2.1 Cross-Project Software Defect Prediction(CPDP)

    CPDP approaches focus on developing predictive models for detecting software defects in target projects by leveraging data from related source projects[24,25].The CPDP models aim to transfer data learned from source projects,which possess sufficient training data and established defect patterns,to target projects that may have limited or no historical data on defects.That leads to overcoming the scarcity of labeled data in target projects and enhancing the prediction capability[26].

    Over the past years,CPDP has gained significant interest from industrial and academic communities.Initially,studies[13,27]focused on exploring the feasibility of CPDP.Their findings highlighted the potential risks of utilizing data from external projects to create a predictive model for a proprietary project.Consequently,advanced transfer learning methods have been employed to enhance CPDP.Recently,scholars[18,28–30]have increasingly focused on the CPDP model.Jin[18]introduced DAKTSVM,which is a defect prediction model created using domain adaptation (DA) incorporating kernel twin(KT)with a support vector machine(SVM).The model aimed to create two nonparallel hyperplanes,where one hyperplane was close to one class and maintained a specific distance from the other.Limsettho et al.[28]introduced a model based on estimating the distribution of classes using synthetic minorities to enhance the performance of CPDP and prevent oversampling.Their method calculated the class distribution of the desired project.Subsequently,synthetic minority over-sampling technique(SMOTE)is utilized to adjust the class distribution of the training data until it corresponds with the inverse target project distribution.

    Sun et al.[21] introduced a source project selection technique termed collaborative filteringbased project source selection (CFPS).CFPS comprises three steps: inter-project similarity identification,inter-project applicability assessment,and collaborative filtering-based recommendations.Liu et al.[30]created a CPDP model involving two phases transfer learning(TPTL).During the initial phase,they suggested using a source project estimator to choose two source projects that are most similar in their distribution to a target project from a group of candidates.They prioritized the F1-score and cost-effectiveness values during this selection process.Zhao et al.[11]proposed an approach based on multiple data distribution simultaneously that improves the overall performance of CPDP.Jiang et al.[12]proposed a transfer-learning approach to predict clone consistency in software projects.The goal is to identify and predict consistent defects across clones,both at the time of creation and change.Bai et al.[20]proposed a three-stage transfer learning framework for multi-source CPDP and addressed multi-source and cross-project challenges.Table 1 introduces the summary and comparison of related works in CPDP approaches.

    Table 1:Summary of related CPDP approaches

    2.2 Long-Short-Term Memory(LSTM)in Software Defect Prediction

    There has been significant research interest in applying deep learning techniques to SDP tasks in recent years.One prominent architecture that has gained attention in this field is LSTM.LSTM is a Recurrent Neural Network (RNN) type designed to deal with long-term dependencies in data[31].This makes it particularly well-suited for modeling sequential data and capturing long-term dependencies.

    The LSTM architecture consists of three main gates,as shown in Fig.2:input,forget,and output gates.The input gate identifies the relevant input sequence elements that must be retained in the memory cell.It takes input from the current step and the previous hidden state and applies a sigmoid activation function to produce an output between 0 and 1.The role of the forget gate is to decide which data from the previous memory cell state ought to be eliminated.The output gate controls the output of the cell.It determines which memory cell information should be output to the next hidden state.

    Figure 2:LSTM architecture

    Several studies have used LSTM in building software defect prediction models.For example,Liang et al.[32]introduced an SDP model that combines LSTM and word embedding techniques.The method involves extracting a token sequence from the source code and mapping each token to a realvalued vector using an unsupervised word embedding model.Subsequently,they employed LSTM to acquire semantic information from programs and predict defects.Majd et al.[33]introduced SLDeep,an SDP approach that utilizes deep learning models and statement-level metrics to predict defects in software.The model was optimized using 32 metrics,including the number of operators in a given statement.LSTM was employed as the learning model for experiments conducted on 119,989 C/C++programs,demonstrating its potential for software defect prediction.Deng et al.[34] employed an LSTM to capture contextual features from the source code.They extracted ASTs and evaluated the preservation of information for different node types.By traversing the ASTs and inputting them into the LSTM model,they successfully learned the program’s contextual features to identify defective files.This study leverages the efficiency of LSTM to learn a predictive model based on the graphs feature extracted from CFG and DDG.Our proposed model consists of three sequential steps for software defect prediction.Firstly,the graph features are extracted from CFG and DDG using Networkx.Secondly,these features are transformed into integer vectors by embedding Node2vec.Finally,the resulting integer vectors are fed into an LSTM model,enabling the prediction of software defects.This structured approach provides a systematic framework for effectively leveraging graph features,embedding techniques,and LSTM networks to enhance cross-project software defect prediction capabilities.

    3 Proposed Approach

    This section presents an overview of our methodology.The methodology consists of three main steps:graph construction,feature learning,and defect prediction,as shown in Fig.3.Here is a more detailed explanation of the three steps:

    Figure 3:The architecture of the proposed model

    3.1 Graph Construction

    Graph construction of source code is a technique to represent the dependencies and relationships between different parts of the source code.This can be done for various purposes,such as understanding the system’s structure,identifying potential defects,or tracking changes to the system over time.In this work,the CFG and DDG are used to represent the code as a graph,analyze the code elements’structure and dependencies,and predict the potential defects in the source code parts.

    3.1.1 Control Flow Graph(CFG)

    The CFG is a graphical representation of a program’s control flow or the sequence of statements and blocks.It visually represents how the program’s execution flows from one statement or block to another.The CFG helps to capture control flow within the code,analyze the program’s behavior and identify areas where errors may exist which leads to tracing the execution path,identifying unreachable code,detecting potential control flow issues like loops or conditional statements,and pinpointing potential sources of defects.The NetworkX is utilized to construct a graph G=(N,E) for each code in our dataset,where N represents a collection of nodes and E denotes a collection of edges.Each node,represented as n ∈N,corresponds to a fundamental block within the code.Likewise,each edge,denoted as e=(ni,nj) ∈E,symbolizes a potential control flow from block nito block nj.Algorithm 1 illustrates extracting the nodes from the basic blocks and the edges from the control transfer statements,ensuring an accurate representation of the code’s control flow structure.

    Algorithm 1:Extracting the CFG nodes and edges from source files

    3.1.2 Data Dependence Graph(DDG)

    This work aims to use every important information in the source code graph representation,which enables predict defects accurately.

    Algorithm 2:Extracting the DDG from source files

    The DDG is a graphical representation that depicts the dependencies between data elements within a program.It focuses on capturing how variables or memory locations are related to each other based on the data flow between them.In a DDG,nodes represent variables or memory locations,while edges represent the data dependencies between them.DDGs are relationships between statements in which one statement’s value depends on another statement’s value.For example,if statement A assigns a value to a variable,and statement B uses that variable,then statement B is data-dependent on statement A.Algorithm 2 introduces the process of representing the DDG of the source code.

    3.2 Feature Learning

    This section is divided into graph embedding and the learning model.In the graph embedding part,the Node2Vec algorithm is used to embed the CFGs and DDGs into integer vectors.In the second part,the LSTM model is utilized to learn feature representations from these vectorized graphs.

    3.2.1 Graph Embedding

    This study leverages the power of Node2Vec,an algorithm specifically designed for graph embedding,to transform CFGs and DDGs into numerical vectors.By employing Node2Vec,the nodes in the CFGs and DDGs are represented as dense,low-dimensional vectors.Node2Vec utilizes random walks to explore the local neighborhood around each node.Then it applies the Skip-gram model to learn the vector representations based on the relationships and context within the graph.Here’s an explanation of how Node2Vec works for embedding CFGs and DDGs:

    ? Random Walks:Node2Vec generates random walks on the graph to capture each node’s immediate surroundings.It simulates a random walker navigating the graph by iteratively traversing the edges.The walker can explore or exploit the neighborhood based on specific parameters such as walk length(walk_length) and walk numbers(num_walks).These random walks serve as sequences of nodes that encode the graph’s structural properties.

    ? Skip-Gram Model:Once the random walks are generated,Node2Vec applies the Skip-gram model,which is a type of word embedding technique commonly used in natural language processing.The Skip-gram model learns dense vector representations for each node in the graph by predicting the context nodes given a target node.

    ? Embedding Learning:The Skip-gram model learns the node embeddings by optimizing an objective function using stochastic gradient descent.It adjusts the node vectors to maximize the likelihood of predicting the context nodes accurately.This process captures the structural similarities and relationships between nodes in the graph.

    ? Vector Representation:After training the Skip-gram model,each CFG node or DDG node is represented as a numerical vector,often with a fixed dimensionality.These vector representations,called node embeddings or latent representations,encode the graph’s topological and contextual information in a continuous vector space.

    The vector representations are obtained using Node2Vec for nodes in CFGs and DDGs,which can then be used as inputs to LSTM.

    3.2.2 Learning Model

    The learning model is a crucial component of the proposed GB-CPDP and has been created using LSTM.To determine the optimal number of nodes and levels,multiple trials are conducted,which is a common practice in deep learning research.Our learning model architecture consists of eight layers,initiating with two LSTMs;each LSTM layer consists of 128 nodes.The remaining layers adhere to a standard neural network structure,with node counts of 128,64,32,16,8,and 2 for the third through eighth layers.The overall structure of our learning model is depicted in Fig.4.As shown in Fig.4,the input to the first LSTM layer is a sequence composed of semantic graph vectors.Except for the last layer,all dense layers utilize the ReLU as their activation function.The activation function employed in the last layer is softmax.Dropout refers to the probability of each node being excluded or dropped out.

    Figure 4:The overall architecture of the GB-CPDP learning model

    3.3 Defect Prediction

    This step is the final stage in our model,where the model can predict whether the software module is defective or clean.The final output is presented as follows:

    where y represents the final output of the model,andXrepresents the output of the Dense_5 layer.

    Softmax is the activation function applied element-wise to the output vector.It transforms the raw output values into a probability distribution over the two classes(defective or clean).

    W represents the weight matrix of the softmax,and b represents the bias vector of the dense layer.

    The binary_crossentropy is the chosen loss function in this stage.It evaluates the variance between the predicted and real output and quantifies the model’s performance,and it is commonly used in binary classification problems.The binary cross-entropy loss is computed using the equation:

    where y_true represents the true labels,and y_pred represents the predicted probabilities.

    The optimizer used in this model is the‘Adam’optimizer.Adam(Adaptive Moment Estimation)is a popular optimizer that combines the benefits of two other methods:AdaGrad and RMSProp.It efficiently adapts the learning rate based on the gradients to converge faster.

    4 Experimental Setup and Results Analysis

    This section provides the experimental setup and analyze the results derived from the proposed approach.The primary objective is to provide an overview of the dataset,evaluation metrics,and baseline methods.Furthermore,the results are discussed and compared with state-of-the-art approaches to assess the effectiveness and performance of our proposed approach.This section is divided into two main subsections:experimental setup and results analysis.

    4.1 Experimental Setup

    This subsection comprises the dataset,evaluation metrics,and baseline methods.

    4.1.1 Dataset

    The experiments are validated in this study by utilizing the publicly accessible dataset obtained from the PROMISE repository.We specifically focus on selecting nine Java projects from the PROMISE dataset(https://github.com/ahmedabd39/promisedataset).The utilization of the PROMISE dataset in this research is motivated by two main factors.Firstly,the PROMISE dataset possesses a well-organized structure and encompasses comprehensive details concerning each project.These details include lines of code (LOC) and version numbers for individual projects.Such inclusivity facilitates the identification of defects across diverse behaviors,such as those occurring within a project or extending across multiple projects.Secondly,the PROMISE dataset incorporates realworld software projects,rendering it more pertinent to industry professionals and enabling a more authentic evaluation of the effectiveness of various approaches in predicting software defects.This aspect strengthens the practical relevance and validity of our assessments.Table 2 presents relevant details regarding the chosen projects,encompassing their project names,version numbers,concise descriptions,average source files,and average buggy rates.

    Table 2:Dataset description

    4.1.2 Evaluation Metrics

    The effectiveness evaluation of our software defect prediction model is conducted using two widely adopted metrics:F1-measure and AUC.

    F1-measure evaluates the accuracy of a model by considering both recall and precision.It is determined by taking the harmonic mean of recall and precision,resulting in a fair evaluation of the model’s overall performance.The equations for recall,precision,and F1-measure are as follows:

    In these equations,where the True positive (TP) is the number of defective files predicted as defective.In contrast,the number of predicted defective files that are not defective is defined as the False positive (FP).False negative (FN) defines as the number of predicted defect-free files that are truly defective.

    AUC (Area Under the Curve) is a frequently employed metric for assessing the effectiveness of binary classifiers.It quantifies the model’s overall performance by computing the area beneath the Receiver Operating Characteristic(ROC)curve.The ROC curve depicts the balance between the true positive rate(TPR)and the false positive rate(FPR).The equation for AUC is as follows:

    These evaluation metrics provide valuable insights into the performance of the proposed GBCPDP model,allowing for a comprehensive assessment of its predictive capabilities.

    4.1.3 Baseline Methods

    To evaluate the efficacy of our GB-CPDP method,a comparative analysis is performed by evaluating its prediction performance against four state-of-the-art CPDP methods,as outlined below:

    TPTL[30]:CPDP model that was built using a two-phase transfer learning approach.In the initial phase,TPTL uses the Source Project Estimator (SPE) tool to select source projects that are most similar in distribution to a target project from a group of possible source projects.

    DA-KTSVMO [18]: DA-KTSVMO is a CPDP model incorporating an optimized quantum particle swarm optimization algorithm to enhance performance.DA-KTSVMO aimed to enhance prediction accuracy in CPDP tasks by effectively aligning training data distributions across diverse projects.

    DBN [22]: Defect prediction model with syntactic features and source code change features generated by DBN.They evaluated the efficacy of their approach in the context of CPDP at both the file and change levels.

    4.2 Results Analysis and Discussion

    This section discusses the results of our experiments according to the following research questions:

    RQ1: How does the effectiveness of the GB-CPDP approach compare to the state-of-the-art CPDP methods?

    RQ2:How does the performance of GB-CPDP vary in response to external parameters?

    For RQ1#As mentioned in Section 4.1.3,a comparative analysis is conducted by evaluating the prediction performance of the proposed GB-CPDP model against three baseline methods: TPTL,DA-KTSVMO,and DBN.The results in Table 3 compare the performance of the proposed GB-CPDP model against these three state-of-the-art methods in terms of AUC and F1-measure.

    Table 3:AUC and F1-measure scores of TPTL,DA-KTSVMO,DBN,and GB-CPDP

    Analyzing the AUC results,the GB-CPDP model demonstrates competitive performance.It achieves an average AUC of 0.602,outperforming TPTL (0.504) and DA-KTSVMO (0.532),but being slightly outperformed by DBN (0.554).The individual dataset comparisons show that GBCPDP consistently achieves competitive AUC scores across various source-target pairs.For example,in the synapse_1.2 to xerces-1.2 comparison,GB-CPDP achieves an AUC score of 0.681,which outperforms all the other methods.Similarly,in the log4j-1.1 to ant-1.6 comparison,GB-CPDP scores 0.682,slightly outperforming DBN’s score of 0.710.It is worth noting that there are cases where GBCPDP’s performance is lower than that of the other methods.For instance,in the camel-1.4 to ant-1.6 comparison,GB-CPDP achieves an AUC score of 0.532,while both DA-KTSVMO and DBN achieve higher scores of 0.655 and 0.642,respectively.Table 3 also provides the F1-measure scores of the GBCPDP model and three other state-of-the-art CPDP approaches:TPTL,DA-KTSVMO,and DBN.As shown in Table 3,the GB-CPDP model demonstrates promising results in cross-project defect prediction,outperforming the other three methods regarding the average F1-measure.The average F1-measure of GB-CPDP is 0.514,while TPTL,DA-KTSVMO,and DBN achieve average scores of 0.451,0.487,and 0.466,respectively.This suggests that the graph-based feature learning approach,which involves extracting features from CFG and DDG using NetworkX,followed by learning with LSTM,effectively captures meaningful representations for defect prediction.The variability in performance across different project pairs is observed for all methods,indicating that the choice of source and target projects significantly impacts the predictive performance.Some project pairs show higher F1-measure scores,indicating better prediction accuracy,while others exhibit lower scores.It highlights the importance of project selection and the influence of project characteristics on the effectiveness of the CPDP methods.

    In this work,Wilcoxon Signed Rank Test (WSRT) and Cliff’s delta are used to check if the performance difference between GB-CPDP and the baseline model is statistically significant.The WSRT is a statistical hypothesis test that does not rely on specific distribution assumptions.It is employed to assess if two paired samples originate from the same distribution.Ap-value less than 0.05 from the test indicates a significant difference between the matched samples;otherwise,the difference is not deemed significant.To counter the influence stemming from numerous tests,the Win/Tie/Loss indicator is employed to evaluate the performance of distinct models.This approach has been utilized in previous studies to compare the performance of different methods [35,36].The Cliff’s delta,nonparametric effect size test quantifies the practical degree of difference between two observational data sets.It serves as a complementary analysis to the WSRT.Table 4 provides the associations between Cliff’s delta(|δ|)values and their corresponding practical significance levels.

    Table 4:Mapping between the absolute values of Cliff’s delta (|δ|) and the corresponding levels of effectiveness

    Table 5 illustrates the outcomes of Win/Tie/Loss indicators for F-measure values and AUC values.Each column presents the respectivep-values of WSRT and Cliff’s delta values.The original value is shown in cases where the WSRTp-value is not less than 0.05;alternatively,if it is less than 0.05,it is replaced with “<0.05”.The corresponding practical significance level from Table 4 is employed for Cliff’s delta value.The effective level is accompanied by a “+” or “-” sign to differentiate between positive and negative Cliff’s delta values.For instance,in comparing GB-CPDP with TPTL on synapse_1.2-poi-2.56,thep-value is below 0.05,and Cliff’s delta value exceeds 0.474.Thus,the“p(δ)”of “GB-CPDPvs.TPTL”is denoted as “<0.05(+L)”.Following the Win/Tie/Loss indicator guidelines,GB-CPDP is categorized as a“Win”.By inspecting the WSRT and Cliff’s delta columns and the‘Win/Tie/Loss’row in Table 5,it is evident that our GB-CPDP model significantly surpasses other models in most tasks.

    Table 5:WIN/TIE/LOSS indicators on AUC and F1-measure scores of TPTL,DA-KTSVMO,DBN,and GB-CPDP

    Fig.5 presents the AUC boxplots for GB-CPDP and the three baseline methods (TPTL,DAKTSVMO,and DBN) for all 18 experiments indicated in Table 3.Fig.6 presents the F1-measure boxplots for GB-CPDP and the three baseline methods for all 18 experiments indicated in Table 3.For all 18 experiments,the F1-measure and AUC distribution(upper/lower and median quartiles)of each of the four approaches are presented in each boxplot.The boxplots show that GB-CPDP performs better than the four baseline approaches in F1-measure and AUC on almost all tasks.In conclusion,GB-CPDP outperforms the other baseline approaches when F1-measure and AUC are considered.These results show that semantic graph feature learning can enhance a cross-project software defect prediction.

    Figure 5:Comparison of AUC scores for TPTL,DA-KTSVMO,DBN,and GB-CPDP

    Figure 6:Comparison of F1-measure scores for TPTL,DA-KTSVMO,DBN,and GB-CPDP

    In conclusion,the GB-CPDP model shows promise in CPDP,offering improved performance compared to the baseline approaches.The effective representation and prediction of defects are achieved through graph-based feature learning,which involves extracting features from CFG and DDG,along with LSTM-based learning.

    For RQ2#In this section,we explore the impact of semantic graphs’embedding dimensions as an external factor on the GB-CPDP model’s effectiveness.To determine the influence of semantic graphs’embedding dimensions on the prediction performance of GB-CPDP,the Node2vec model is retrained using various dimension parameters:20d,40d,60d,80d,and 100d.Subsequently,the semantic features are regenerated using the corresponding Node2vec model.The F1-measure values for these 18 tasks with the five different dimensions are listed in Fig.7.

    Figure 7:F1-measure of GB-CPDP under different semantic graphs’embedding dimensions

    As shown in Fig.7,the choice of embedding dimensions significantly influences the prediction performance of the GB-CPDP model.Certain tasks exhibited higher F1-measure values with specific dimension parameters,while others displayed varied performance across the dimensions.For instance,when considering the task“synapse_1.2 poi-2.5”,the F1-measure values consistently increased from 0.602 for 20d to 0.631 for 100d.Similarly,for the task“synapse_1.1poi-3.0”,the F1-measure values improved as the dimensions increased,with the highest value recorded for 100d.On the other hand,some tasks demonstrated fluctuating F1-measure values across different dimensions.For example,the task“camel-1.4~ant-1.6”achieved the highest F1-measure value of 0.652 at 80d and 100d,while the F1-measure values were slightly lower at 60d and 40d.

    These findings highlight the importance of carefully selecting the embedding dimensions for semantic graphs when using defect prediction models.It is crucial to consider the specific task and assess the performance across various dimension parameters to achieve optimal prediction accuracy.

    5 Threats to Validity

    5.1 Datasets Selection

    A subset of nine open-source Java projects sourced from the PROMISE dataset is tested to validate our experiments.However,it should be noted that these selected projects may not represent the entirety of software projects.Furthermore,our evaluation just focused on Java projects,and therefore,the applicability of our model to other programming languages cannot be assured.As a result,our proposed method may produce varying outcomes for projects not included in the nine selected projects or those developed using different programming languages,such as Python or C.

    5.2 Implementation of Baselines

    Our prediction model is evaluated for comparative analysis against three state-of-the-art methods: TPTL,DA-KTSVMO,and DBN.Since these methods’original versions were unavailable,we implemented them ourselves.While we followed the instructions provided in their respective works,it is possible that certain implementation details from the original versions may be absent in our new implementations.We used the data used in the original works to test our new implementations.We are confident that our new implementation faithfully represents the performance of these methods.

    6 Conclusion

    This study proposed a novel approach called GB-CPDP for cross-project software defect prediction.Our approach employed NetworkX to extract features from CFGs and DDGs.By leveraging Node2Vec,the CFGs,and DDGs have been transformed into numerical vectors,serving as graph features.LSTM was then used to learn a predictive model based on these acquired features.We conducted extensive experiments using nine Java projects from the PROMISE dataset and compared the performance of GB-CPDP with three state-of-the-art CPDP methods.Our results demonstrated that GB-CPDP outperforms the existing methods in terms of F1-measure and AUC,with improvements ranging from 2.7 to 6.3 and from 4.8 to 9.8,respectively,showcasing its efficacy in defect prediction.Despite the proposed GB-CPDP model is promising for cross-project software defect prediction,the proposed approach has limitations regarding its focus on Java projects and utilizing only CFG and DDG as graph features.While Java is a widely used programming language,the generalizability of the approach to other programming languages and domains may be limited.Additionally,relying solely on CFG and DDG may not capture all relevant contextual information for defect prediction.Other types of dependency graphs,such as Value Dependency Graphs(VDG),could provide additional insights and improve the model’s accuracy.

    There are several avenues for future research and improvements.For example,extending the evaluation to a broader range of software projects,encompassing different programming languages such as C++and Python and domains such as Mobile Apps,would provide a more comprehensive understanding of GB-CPDP’s performance.Exploring and incorporating other graph-based features beyond the CFG and DDG could further enhance the predictive capabilities of GB-CPDP.For example,data flow or module dependency graphs may capture additional contextual information relevant to defect prediction.

    Acknowledgement:We are indebted to the Institute of Information&Communications Technology Planning&Evaluation(IITP)for supporting this work and all members who contributed to this work.Funding Statement:This work was supported by Institute of Information&Communications Technology Planning&Evaluation(IITP)grant funded by the Korea government(MSIT)(No.RS-2022-00155885).

    Author Contributions:Conceptualization,Ahmed Abdu;Methodology,Ahmed Abdu,Hakim A.Abdo and Zhengjun Zhai;Software,Ahmed Abdu,Redhwan Algabri and Hakim A.Abdo;Validation,Ahmed Abdu,Redhwan Algabri,Sungon Lee and Zhengjun Zhai;Formal analysis,Redhwan Algabri;Investigation,Ahmed Abdu,Hakim A.Abdo and Zhengjun Zhai;Resources,Zhengjun Zhai;Data Curation,Ahmed Abdu,Redhwan Algabri and Zhengjun Zhai;Writing—original draft,Ahmed Abdu.;Writing—review&editing,Redhwan Algabri and Sungon Lee;Visualization,Ahmed Abdu,Hakim A.Abdo and Zhengjun Zhai;Supervision,Zhengjun Zhai;Funding acquisition,Zhengjun Zhai and Sungon Lee;Project administration,Zhengjun Zhai and Sungon Lee.All authors have read and agreed to the published version of the manuscript.

    Availability of Data and Materials:The data used in this paper can be requested from the corresponding author upon request.

    Conflicts of Interest:The authors declare that they have no conflict of interest to report regarding the present study.

    午夜免费成人在线视频| 好男人在线观看高清免费视频| 国产精品香港三级国产av潘金莲| ponron亚洲| h日本视频在线播放| 国产探花在线观看一区二区| 成人亚洲精品av一区二区| 99热6这里只有精品| 舔av片在线| 亚洲,欧美精品.| 色在线成人网| 亚洲av成人不卡在线观看播放网| 好看av亚洲va欧美ⅴa在| 国产高清三级在线| 欧美色欧美亚洲另类二区| 嫁个100分男人电影在线观看| 国产精品爽爽va在线观看网站| 国产精品一及| 国产午夜精品久久久久久一区二区三区 | 欧美乱色亚洲激情| 真人做人爱边吃奶动态| 成人一区二区视频在线观看| 淫妇啪啪啪对白视频| 中文在线观看免费www的网站| 日本在线视频免费播放| 免费在线观看亚洲国产| 一本一本综合久久| 桃红色精品国产亚洲av| 成人午夜高清在线视频| 免费观看人在逋| 国产精品自产拍在线观看55亚洲| 亚洲精品色激情综合| 国产高清激情床上av| av国产免费在线观看| 精品电影一区二区在线| 日本成人三级电影网站| 亚洲欧美日韩东京热| netflix在线观看网站| 麻豆一二三区av精品| 国产在线精品亚洲第一网站| 蜜桃久久精品国产亚洲av| 久久精品国产99精品国产亚洲性色| 美女 人体艺术 gogo| 日本一二三区视频观看| 国产精品 国内视频| 久久久久久久精品吃奶| 国产伦人伦偷精品视频| 国产一区二区在线av高清观看| 高清日韩中文字幕在线| 丰满的人妻完整版| 欧美在线黄色| 男女午夜视频在线观看| 久久久久亚洲av毛片大全| 在线天堂最新版资源| 欧美日韩精品网址| 老司机在亚洲福利影院| 99久久九九国产精品国产免费| 日日摸夜夜添夜夜添小说| 中文字幕久久专区| 精品一区二区三区av网在线观看| 亚洲国产精品久久男人天堂| 成人鲁丝片一二三区免费| 黄色片一级片一级黄色片| 黄色片一级片一级黄色片| 欧美日韩福利视频一区二区| 欧美日韩福利视频一区二区| 欧美色视频一区免费| 成年人黄色毛片网站| 午夜精品在线福利| 久久性视频一级片| 成年人黄色毛片网站| 欧美激情在线99| 亚洲av一区综合| 亚洲av日韩精品久久久久久密| 长腿黑丝高跟| 99精品欧美一区二区三区四区| 国产成年人精品一区二区| 国产高清视频在线观看网站| 久久久久久久久久黄片| 91麻豆精品激情在线观看国产| 一a级毛片在线观看| 国产真实伦视频高清在线观看 | 叶爱在线成人免费视频播放| 岛国在线免费视频观看| 黄片大片在线免费观看| 午夜精品久久久久久毛片777| 首页视频小说图片口味搜索| 一本综合久久免费| 欧美av亚洲av综合av国产av| 亚洲精华国产精华精| 亚洲avbb在线观看| 精品一区二区三区视频在线观看免费| 亚洲国产欧洲综合997久久,| 国产美女午夜福利| 特级一级黄色大片| 一进一出好大好爽视频| 午夜福利视频1000在线观看| 一区二区三区国产精品乱码| 少妇人妻一区二区三区视频| 嫩草影院入口| 国产高清videossex| 国产视频一区二区在线看| 美女黄网站色视频| 日韩有码中文字幕| 成人永久免费在线观看视频| 色综合亚洲欧美另类图片| 十八禁人妻一区二区| 亚洲欧美日韩高清在线视频| 又粗又爽又猛毛片免费看| 一个人免费在线观看的高清视频| 欧美日韩福利视频一区二区| 久久精品亚洲精品国产色婷小说| 99久久精品热视频| 十八禁人妻一区二区| 99热这里只有是精品50| 99久久久亚洲精品蜜臀av| 成人特级av手机在线观看| 国内精品久久久久久久电影| 亚洲色图av天堂| 久久99热这里只有精品18| 最后的刺客免费高清国语| 国产色爽女视频免费观看| 欧美三级亚洲精品| 噜噜噜噜噜久久久久久91| 桃色一区二区三区在线观看| 精品福利观看| 97超视频在线观看视频| 三级毛片av免费| 国产伦一二天堂av在线观看| www.色视频.com| 给我免费播放毛片高清在线观看| 国产伦精品一区二区三区四那| 人人妻人人澡欧美一区二区| 国产精品久久视频播放| 精品久久久久久久人妻蜜臀av| av天堂在线播放| 亚洲七黄色美女视频| 亚洲第一电影网av| 日韩免费av在线播放| av在线天堂中文字幕| 精品午夜福利视频在线观看一区| 一区二区三区激情视频| 国产精品自产拍在线观看55亚洲| 国产精品永久免费网站| 亚洲精品亚洲一区二区| 99国产精品一区二区蜜桃av| 国内精品久久久久精免费| 婷婷精品国产亚洲av在线| 国产伦人伦偷精品视频| 黑人欧美特级aaaaaa片| 欧美日本亚洲视频在线播放| 中国美女看黄片| 亚洲在线自拍视频| 精品人妻1区二区| 最近最新中文字幕大全免费视频| 淫妇啪啪啪对白视频| 男人舔奶头视频| 一夜夜www| av黄色大香蕉| 人人妻人人澡欧美一区二区| 高清毛片免费观看视频网站| 国产熟女xx| 国产精品香港三级国产av潘金莲| 国产欧美日韩一区二区精品| 亚洲欧美日韩东京热| 日韩成人在线观看一区二区三区| 久久久精品欧美日韩精品| 蜜桃亚洲精品一区二区三区| 亚洲中文日韩欧美视频| 搡老岳熟女国产| 国产成人影院久久av| 日日摸夜夜添夜夜添小说| 在线视频色国产色| a在线观看视频网站| 天堂av国产一区二区熟女人妻| 亚洲自拍偷在线| 国产精品久久视频播放| 窝窝影院91人妻| 欧美av亚洲av综合av国产av| 麻豆国产av国片精品| 亚洲一区二区三区不卡视频| 国产91精品成人一区二区三区| 亚洲人与动物交配视频| 国产精品99久久99久久久不卡| 波多野结衣高清作品| 97超级碰碰碰精品色视频在线观看| 岛国在线观看网站| 长腿黑丝高跟| 亚洲av电影不卡..在线观看| 好男人电影高清在线观看| 久久6这里有精品| 久久久久久久亚洲中文字幕 | 亚洲熟妇熟女久久| 亚洲人成网站在线播| 精品国产超薄肉色丝袜足j| 综合色av麻豆| 男女那种视频在线观看| 午夜福利欧美成人| 日韩欧美精品免费久久 | 国产av在哪里看| 亚洲精华国产精华精| 免费一级毛片在线播放高清视频| 黄色女人牲交| 国产97色在线日韩免费| 九九在线视频观看精品| 亚洲欧美一区二区三区黑人| 脱女人内裤的视频| 亚洲精品成人久久久久久| 亚洲五月婷婷丁香| 亚洲va日本ⅴa欧美va伊人久久| 国产精品免费一区二区三区在线| 国产精品久久久久久久久免 | 亚洲美女黄片视频| 国产精品嫩草影院av在线观看 | 精品日产1卡2卡| 三级男女做爰猛烈吃奶摸视频| 成年女人永久免费观看视频| 最新美女视频免费是黄的| 日韩欧美国产一区二区入口| 禁无遮挡网站| 两性午夜刺激爽爽歪歪视频在线观看| 色综合站精品国产| 一卡2卡三卡四卡精品乱码亚洲| av在线蜜桃| 欧美成人性av电影在线观看| 免费人成在线观看视频色| 国产不卡一卡二| 女警被强在线播放| 中文亚洲av片在线观看爽| 国产精品爽爽va在线观看网站| 国内久久婷婷六月综合欲色啪| 日韩欧美国产一区二区入口| 日韩亚洲欧美综合| 国产精品98久久久久久宅男小说| 在线观看美女被高潮喷水网站 | 欧美乱码精品一区二区三区| www.999成人在线观看| 欧美中文日本在线观看视频| 成人国产一区最新在线观看| 给我免费播放毛片高清在线观看| 国语自产精品视频在线第100页| 琪琪午夜伦伦电影理论片6080| 99热这里只有精品一区| 国产男靠女视频免费网站| 嫁个100分男人电影在线观看| 成人永久免费在线观看视频| 麻豆国产97在线/欧美| 国产精品 欧美亚洲| 精品人妻1区二区| 亚洲五月婷婷丁香| 国产精品98久久久久久宅男小说| 51午夜福利影视在线观看| 日韩大尺度精品在线看网址| 亚洲激情在线av| 国产69精品久久久久777片| 日本黄大片高清| 91在线精品国自产拍蜜月 | 一个人免费在线观看电影| 淫妇啪啪啪对白视频| 国产真人三级小视频在线观看| 99在线视频只有这里精品首页| 欧美激情久久久久久爽电影| 我要搜黄色片| 看黄色毛片网站| 国产精品,欧美在线| 欧美3d第一页| 波多野结衣高清无吗| a在线观看视频网站| 一个人看视频在线观看www免费 | 免费无遮挡裸体视频| 嫩草影院精品99| 国产精品一区二区免费欧美| 国产伦精品一区二区三区视频9 | 欧美又色又爽又黄视频| 给我免费播放毛片高清在线观看| av福利片在线观看| 久久6这里有精品| 亚洲国产欧美网| 99精品欧美一区二区三区四区| 人妻久久中文字幕网| 此物有八面人人有两片| 国产欧美日韩一区二区精品| 一区二区三区激情视频| 欧美黑人巨大hd| 欧美+日韩+精品| 国产一区二区在线av高清观看| 精品人妻一区二区三区麻豆 | 99热6这里只有精品| 精品国产超薄肉色丝袜足j| 日韩av在线大香蕉| 一个人看视频在线观看www免费 | 在线天堂最新版资源| 国产黄色小视频在线观看| 亚洲av中文字字幕乱码综合| 国产黄a三级三级三级人| 在线播放国产精品三级| 热99在线观看视频| 校园春色视频在线观看| 91av网一区二区| 很黄的视频免费| 精品一区二区三区人妻视频| 亚洲五月婷婷丁香| 99视频精品全部免费 在线| 最近最新中文字幕大全免费视频| 内射极品少妇av片p| 亚洲无线在线观看| 成人精品一区二区免费| 19禁男女啪啪无遮挡网站| 精品久久久久久久久久久久久| 18禁黄网站禁片免费观看直播| 黄色片一级片一级黄色片| 国产一级毛片七仙女欲春2| 一区二区三区免费毛片| 亚洲av二区三区四区| 一个人免费在线观看电影| 午夜免费男女啪啪视频观看 | 国产伦一二天堂av在线观看| 国产精品自产拍在线观看55亚洲| 看黄色毛片网站| 天堂√8在线中文| 国产 一区 欧美 日韩| 最新中文字幕久久久久| 亚洲男人的天堂狠狠| 丁香欧美五月| 色综合欧美亚洲国产小说| 人人妻,人人澡人人爽秒播| 别揉我奶头~嗯~啊~动态视频| 在线观看66精品国产| 久久久久久久精品吃奶| 白带黄色成豆腐渣| 91久久精品国产一区二区成人 | 成年女人永久免费观看视频| 国产伦精品一区二区三区四那| 天堂动漫精品| 午夜精品一区二区三区免费看| 国产欧美日韩一区二区三| 国产成人啪精品午夜网站| 亚洲成人中文字幕在线播放| 免费看日本二区| 亚洲精品一区av在线观看| 国产麻豆成人av免费视频| 人妻夜夜爽99麻豆av| 给我免费播放毛片高清在线观看| 999久久久精品免费观看国产| 久久天躁狠狠躁夜夜2o2o| 国产精品一区二区三区四区免费观看 | 中文字幕精品亚洲无线码一区| 午夜福利在线观看免费完整高清在 | 国产欧美日韩一区二区精品| 每晚都被弄得嗷嗷叫到高潮| 成人av在线播放网站| 精品一区二区三区视频在线观看免费| 男人和女人高潮做爰伦理| 亚洲电影在线观看av| 午夜老司机福利剧场| 国产精品1区2区在线观看.| 欧美在线一区亚洲| 国产精品1区2区在线观看.| 色播亚洲综合网| 国产精品一区二区三区四区免费观看 | 窝窝影院91人妻| 久久精品影院6| 国内精品久久久久精免费| 欧美黑人欧美精品刺激| 久久久精品大字幕| 久久精品影院6| 中文字幕久久专区| 国产一区二区在线av高清观看| 日韩大尺度精品在线看网址| 女生性感内裤真人,穿戴方法视频| 日韩大尺度精品在线看网址| 久久香蕉国产精品| 久久久久久久久中文| 午夜福利免费观看在线| 91在线观看av| 国内毛片毛片毛片毛片毛片| 老司机深夜福利视频在线观看| 国产精品精品国产色婷婷| 欧美日本视频| 亚洲av一区综合| 特级一级黄色大片| 欧美zozozo另类| 亚洲国产精品合色在线| 亚洲五月天丁香| 欧美最新免费一区二区三区 | 99精品久久久久人妻精品| av在线蜜桃| 久久久国产成人免费| 人妻夜夜爽99麻豆av| 亚洲国产色片| 老熟妇仑乱视频hdxx| 99精品久久久久人妻精品| 国产一级毛片七仙女欲春2| 亚洲最大成人手机在线| 每晚都被弄得嗷嗷叫到高潮| 少妇人妻精品综合一区二区 | 久久这里只有精品中国| 在线播放国产精品三级| 五月玫瑰六月丁香| 亚洲av中文字字幕乱码综合| av在线天堂中文字幕| 国产伦一二天堂av在线观看| 久久6这里有精品| 国产乱人伦免费视频| 久久精品91无色码中文字幕| 精品国产超薄肉色丝袜足j| 一本一本综合久久| 国产一区二区三区视频了| 精品欧美国产一区二区三| 一进一出抽搐gif免费好疼| 国产真实乱freesex| 好男人电影高清在线观看| 在线看三级毛片| 日韩成人在线观看一区二区三区| 精品99又大又爽又粗少妇毛片 | 97人妻精品一区二区三区麻豆| 99久国产av精品| 亚洲片人在线观看| 两个人看的免费小视频| 国产一区二区在线av高清观看| 小蜜桃在线观看免费完整版高清| 日韩欧美免费精品| 国产精品国产高清国产av| 日本 欧美在线| 日本成人三级电影网站| 国产欧美日韩一区二区精品| 亚洲精品在线观看二区| 国产亚洲精品av在线| 亚洲无线在线观看| 久久精品国产亚洲av涩爱 | 色综合欧美亚洲国产小说| 精品国产三级普通话版| 男女那种视频在线观看| 久久久久久国产a免费观看| 午夜免费男女啪啪视频观看 | 国产视频一区二区在线看| 久久九九热精品免费| 国内少妇人妻偷人精品xxx网站| 一级黄片播放器| 久久国产乱子伦精品免费另类| 亚洲欧美精品综合久久99| 国产伦精品一区二区三区视频9 | 国产蜜桃级精品一区二区三区| 最新美女视频免费是黄的| АⅤ资源中文在线天堂| 搡老熟女国产l中国老女人| 性色av乱码一区二区三区2| 国产毛片a区久久久久| 精品久久久久久久末码| 12—13女人毛片做爰片一| 热99re8久久精品国产| 午夜影院日韩av| 熟女少妇亚洲综合色aaa.| 一进一出好大好爽视频| 国产欧美日韩精品一区二区| 叶爱在线成人免费视频播放| 欧美日韩精品网址| 真人一进一出gif抽搐免费| 在线观看av片永久免费下载| 成年女人毛片免费观看观看9| 成人三级黄色视频| 午夜久久久久精精品| 长腿黑丝高跟| 久久精品亚洲精品国产色婷小说| 欧美xxxx黑人xx丫x性爽| 亚洲国产高清在线一区二区三| 欧美日韩福利视频一区二区| 国产真实伦视频高清在线观看 | 狂野欧美激情性xxxx| 婷婷六月久久综合丁香| 脱女人内裤的视频| 在线观看美女被高潮喷水网站 | 国内少妇人妻偷人精品xxx网站| 国产97色在线日韩免费| www.色视频.com| 精品国内亚洲2022精品成人| 欧美性猛交╳xxx乱大交人| 日韩精品中文字幕看吧| 欧美乱妇无乱码| 波多野结衣高清无吗| 色综合欧美亚洲国产小说| 高清日韩中文字幕在线| 亚洲av中文字字幕乱码综合| 最近最新中文字幕大全免费视频| 久久精品91蜜桃| bbb黄色大片| 精华霜和精华液先用哪个| 日韩欧美国产在线观看| 久久精品综合一区二区三区| 国产精品国产高清国产av| 午夜福利视频1000在线观看| 婷婷精品国产亚洲av在线| 精品99又大又爽又粗少妇毛片 | 久久婷婷人人爽人人干人人爱| 精品久久久久久久久久免费视频| 黄色视频,在线免费观看| 国产黄片美女视频| 国产欧美日韩一区二区精品| 欧美av亚洲av综合av国产av| 九色国产91popny在线| 淫秽高清视频在线观看| 婷婷亚洲欧美| 日韩欧美精品免费久久 | 国产精品99久久久久久久久| 少妇高潮的动态图| 天美传媒精品一区二区| 中文资源天堂在线| 久久久国产精品麻豆| 久久久久久久久中文| 午夜福利免费观看在线| 制服人妻中文乱码| 他把我摸到了高潮在线观看| 法律面前人人平等表现在哪些方面| 亚洲成人中文字幕在线播放| 亚洲av不卡在线观看| 97人妻精品一区二区三区麻豆| 国产单亲对白刺激| 中文字幕人成人乱码亚洲影| 色综合欧美亚洲国产小说| 啦啦啦免费观看视频1| 色综合欧美亚洲国产小说| 午夜a级毛片| 亚洲国产精品久久男人天堂| 婷婷六月久久综合丁香| 高清在线国产一区| 国产蜜桃级精品一区二区三区| 中文字幕人妻熟人妻熟丝袜美 | 日韩亚洲欧美综合| 99久久久亚洲精品蜜臀av| 欧美日韩福利视频一区二区| 亚洲 国产 在线| 久久久久性生活片| 午夜福利18| 欧美日韩亚洲国产一区二区在线观看| av欧美777| 男女那种视频在线观看| 国产av不卡久久| 中文字幕av在线有码专区| 久久亚洲真实| 久久欧美精品欧美久久欧美| 欧洲精品卡2卡3卡4卡5卡区| 国产欧美日韩精品亚洲av| 少妇熟女aⅴ在线视频| 久久久国产成人免费| 欧美bdsm另类| 国产激情欧美一区二区| 久久亚洲真实| 亚洲精品在线观看二区| 国产aⅴ精品一区二区三区波| 偷拍熟女少妇极品色| 午夜福利在线观看免费完整高清在 | 亚洲精品乱码久久久v下载方式 | 亚洲专区国产一区二区| 一级黄片播放器| 色吧在线观看| 国产精品亚洲美女久久久| 国产亚洲精品久久久com| 18禁黄网站禁片免费观看直播| 99精品在免费线老司机午夜| 天天躁日日操中文字幕| 午夜福利在线在线| 国产aⅴ精品一区二区三区波| 日韩欧美免费精品| 人妻夜夜爽99麻豆av| 99热这里只有精品一区| 精品久久久久久久毛片微露脸| 中文亚洲av片在线观看爽| 久久久国产成人精品二区| 亚洲18禁久久av| 久久久久国产精品人妻aⅴ院| 麻豆成人午夜福利视频| 国产精品av视频在线免费观看| 一区二区三区国产精品乱码| 十八禁人妻一区二区| 亚洲精品日韩av片在线观看 | 国产成+人综合+亚洲专区| 欧美成狂野欧美在线观看| 久久精品国产自在天天线| 小蜜桃在线观看免费完整版高清| 性色avwww在线观看| 91av网一区二区| a级一级毛片免费在线观看| 在线观看午夜福利视频| 日韩成人在线观看一区二区三区| 精品国内亚洲2022精品成人| 亚洲精华国产精华精| 午夜影院日韩av| 国产探花在线观看一区二区| 中亚洲国语对白在线视频| 久久人人精品亚洲av| 夜夜躁狠狠躁天天躁| 夜夜爽天天搞| 亚洲精品一区av在线观看| 日韩大尺度精品在线看网址| 日本 欧美在线| 亚洲乱码一区二区免费版| 脱女人内裤的视频| 一区二区三区免费毛片| 亚洲欧美日韩无卡精品| 免费一级毛片在线播放高清视频| 性色avwww在线观看| 18禁黄网站禁片免费观看直播| 一区二区三区国产精品乱码| 国产精华一区二区三区| 国产一区二区在线观看日韩 | 九色成人免费人妻av| 一级黄色大片毛片| 老司机午夜福利在线观看视频| 色综合站精品国产| 久久精品91蜜桃| 蜜桃久久精品国产亚洲av| 18禁在线播放成人免费| 国产高清视频在线播放一区| 精品久久久久久久久久久久久| 男女之事视频高清在线观看|