• <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.

    美女免费视频网站| 97热精品久久久久久| 亚洲黑人精品在线| 亚洲成人精品中文字幕电影| 中文字幕高清在线视频| 午夜精品久久久久久毛片777| 国产国拍精品亚洲av在线观看| 成人av一区二区三区在线看| 欧美日韩亚洲国产一区二区在线观看| 天美传媒精品一区二区| 99国产极品粉嫩在线观看| 欧美+日韩+精品| 热99re8久久精品国产| 国产精品自产拍在线观看55亚洲| 男人舔奶头视频| 9191精品国产免费久久| 久99久视频精品免费| www.999成人在线观看| 每晚都被弄得嗷嗷叫到高潮| 免费一级毛片在线播放高清视频| 久久午夜亚洲精品久久| 亚洲av一区综合| 国产精品一区二区性色av| 久久人妻av系列| 欧美成狂野欧美在线观看| 国产主播在线观看一区二区| 日本成人三级电影网站| 中文在线观看免费www的网站| 久久久久久久精品吃奶| 午夜福利欧美成人| 亚洲欧美日韩东京热| 亚洲国产色片| 亚洲av成人av| 自拍偷自拍亚洲精品老妇| 亚洲va日本ⅴa欧美va伊人久久| 欧美3d第一页| 国产一区二区三区在线臀色熟女| 精华霜和精华液先用哪个| 午夜影院日韩av| 亚洲成人精品中文字幕电影| av在线观看视频网站免费| 久久婷婷人人爽人人干人人爱| avwww免费| 久久国产乱子伦精品免费另类| 欧美+亚洲+日韩+国产| 久久精品91蜜桃| 黄色日韩在线| 国内精品一区二区在线观看| 在线国产一区二区在线| 中文字幕久久专区| 又黄又爽又刺激的免费视频.| 欧洲精品卡2卡3卡4卡5卡区| 欧美中文日本在线观看视频| 最近在线观看免费完整版| 性色avwww在线观看| 日韩av在线大香蕉| 一级毛片久久久久久久久女| 90打野战视频偷拍视频| 国产一区二区在线av高清观看| 亚洲精品色激情综合| av欧美777| 色噜噜av男人的天堂激情| 村上凉子中文字幕在线| 精品国产亚洲在线| 国产白丝娇喘喷水9色精品| 天天一区二区日本电影三级| 国产精品乱码一区二三区的特点| 国产精品电影一区二区三区| 中文字幕久久专区| 国产激情偷乱视频一区二区| 窝窝影院91人妻| 国产精品久久视频播放| 两个人的视频大全免费| 亚洲电影在线观看av| 亚洲精品亚洲一区二区| 国产主播在线观看一区二区| 色吧在线观看| 亚洲18禁久久av| 国产一区二区亚洲精品在线观看| 我要搜黄色片| 亚洲精华国产精华精| 午夜福利视频1000在线观看| 中亚洲国语对白在线视频| 午夜福利视频1000在线观看| 国内精品久久久久久久电影| 毛片女人毛片| 夜夜爽天天搞| 亚洲av一区综合| or卡值多少钱| 九色成人免费人妻av| 精品乱码久久久久久99久播| 少妇丰满av| 亚洲自拍偷在线| 男人舔奶头视频| 国内少妇人妻偷人精品xxx网站| 成年女人看的毛片在线观看| 国产乱人伦免费视频| 欧美乱色亚洲激情| 国产亚洲精品综合一区在线观看| 怎么达到女性高潮| 99久久成人亚洲精品观看| 午夜福利成人在线免费观看| 女人被狂操c到高潮| 97超级碰碰碰精品色视频在线观看| 日韩亚洲欧美综合| 男人的好看免费观看在线视频| 久久精品综合一区二区三区| 人人妻,人人澡人人爽秒播| 午夜福利高清视频| 日韩欧美 国产精品| 我的老师免费观看完整版| 激情在线观看视频在线高清| 日本熟妇午夜| 伦理电影大哥的女人| av福利片在线观看| 国产精品一区二区三区四区免费观看 | 大型黄色视频在线免费观看| 亚洲成人免费电影在线观看| 欧美区成人在线视频| 国产精品亚洲一级av第二区| 欧美三级亚洲精品| 精品国产亚洲在线| 国内精品美女久久久久久| 亚洲精品在线美女| 日韩中文字幕欧美一区二区| 熟女电影av网| 国产视频一区二区在线看| 国产精品1区2区在线观看.| 国产精品98久久久久久宅男小说| 国产精品1区2区在线观看.| 亚洲经典国产精华液单 | 欧美日韩中文字幕国产精品一区二区三区| 天堂动漫精品| 亚洲av成人av| 有码 亚洲区| 国产亚洲欧美在线一区二区| 少妇人妻一区二区三区视频| 国产成+人综合+亚洲专区| 中文在线观看免费www的网站| 亚洲天堂国产精品一区在线| 国产综合懂色| 天堂网av新在线| 国产欧美日韩精品一区二区| 国产av麻豆久久久久久久| 天堂网av新在线| 国产伦精品一区二区三区四那| av专区在线播放| 看黄色毛片网站| 好看av亚洲va欧美ⅴa在| 亚洲国产日韩欧美精品在线观看| 中文资源天堂在线| 国产伦在线观看视频一区| 伊人久久精品亚洲午夜| 99久久九九国产精品国产免费| 亚洲精品一卡2卡三卡4卡5卡| 久久香蕉精品热| 麻豆久久精品国产亚洲av| 中文字幕av成人在线电影| 日本五十路高清| 久久国产乱子伦精品免费另类| av国产免费在线观看| 午夜a级毛片| 美女黄网站色视频| 有码 亚洲区| 黄色视频,在线免费观看| 亚洲欧美日韩卡通动漫| 久久久久国内视频| 久久九九热精品免费| 欧美在线一区亚洲| 丰满乱子伦码专区| 偷拍熟女少妇极品色| 欧美zozozo另类| 嫁个100分男人电影在线观看| 久久久国产成人免费| 免费在线观看亚洲国产| 日本黄色片子视频| 免费黄网站久久成人精品 | 亚洲国产精品sss在线观看| 色噜噜av男人的天堂激情| 黄色女人牲交| 国产国拍精品亚洲av在线观看| 噜噜噜噜噜久久久久久91| 亚洲av一区综合| 亚洲精华国产精华精| 久久九九热精品免费| 美女 人体艺术 gogo| 特大巨黑吊av在线直播| 亚洲天堂国产精品一区在线| 国产欧美日韩精品一区二区| 国产伦在线观看视频一区| 女同久久另类99精品国产91| 国产爱豆传媒在线观看| 成人三级黄色视频| 99久久精品热视频| 有码 亚洲区| 午夜亚洲福利在线播放| 免费观看的影片在线观看| 非洲黑人性xxxx精品又粗又长| 精品日产1卡2卡| 精品一区二区三区av网在线观看| 看片在线看免费视频| 国产毛片a区久久久久| 日韩中文字幕欧美一区二区| 97碰自拍视频| 色在线成人网| 我的女老师完整版在线观看| 变态另类丝袜制服| 少妇裸体淫交视频免费看高清| 啪啪无遮挡十八禁网站| 欧美日韩福利视频一区二区| 欧美丝袜亚洲另类 | 日本撒尿小便嘘嘘汇集6| 欧洲精品卡2卡3卡4卡5卡区| 成人永久免费在线观看视频| 国产老妇女一区| 国产精品久久久久久亚洲av鲁大| 国产欧美日韩一区二区三| 午夜精品在线福利| a级一级毛片免费在线观看| 亚洲最大成人中文| 深夜a级毛片| 熟女电影av网| 久久婷婷人人爽人人干人人爱| 一个人免费在线观看的高清视频| 久久天躁狠狠躁夜夜2o2o| 很黄的视频免费| 日日夜夜操网爽| 黄色一级大片看看| 97碰自拍视频| 天堂√8在线中文| 色播亚洲综合网| 国产美女午夜福利| 久久精品国产亚洲av天美| 欧美日韩国产亚洲二区| 精品久久久久久,| 亚洲精品日韩av片在线观看| 色噜噜av男人的天堂激情| 在线观看一区二区三区| 久久精品国产亚洲av香蕉五月| eeuss影院久久| 日本 av在线| 国产精品一及| 国产av不卡久久| 成年女人永久免费观看视频| 国产精品三级大全| 我要看日韩黄色一级片| 黄色视频,在线免费观看| 一级毛片久久久久久久久女| 嫩草影院新地址| 男女之事视频高清在线观看| 欧美激情在线99| 99久久无色码亚洲精品果冻| 亚洲aⅴ乱码一区二区在线播放| 99国产精品一区二区蜜桃av| 51午夜福利影视在线观看| 免费看美女性在线毛片视频| 欧美日韩中文字幕国产精品一区二区三区| 色吧在线观看| 国产国拍精品亚洲av在线观看| 久久精品综合一区二区三区| 露出奶头的视频| 观看美女的网站| 男女之事视频高清在线观看| 日韩av在线大香蕉| 亚洲av一区综合| 最近视频中文字幕2019在线8| 免费观看人在逋| 欧美成人一区二区免费高清观看| 成人av在线播放网站| 最新在线观看一区二区三区| 尤物成人国产欧美一区二区三区| 成人欧美大片| 757午夜福利合集在线观看| 一个人看的www免费观看视频| 一区二区三区激情视频| 国产精品电影一区二区三区| 亚洲中文日韩欧美视频| 看十八女毛片水多多多| 成人av一区二区三区在线看| 成人三级黄色视频| 精品午夜福利在线看| 一个人免费在线观看的高清视频| 色av中文字幕| 亚洲一区二区三区色噜噜| 国产高清视频在线观看网站| 精品熟女少妇八av免费久了| 一本精品99久久精品77| 麻豆久久精品国产亚洲av| 国产精品一及| 国产精品久久久久久人妻精品电影| 国产单亲对白刺激| 欧美高清成人免费视频www| 91久久精品电影网| 97超视频在线观看视频| 性插视频无遮挡在线免费观看| 国产成人欧美在线观看| 国内精品久久久久精免费| 国产老妇女一区| 热99在线观看视频| 91久久精品国产一区二区成人| 成年女人毛片免费观看观看9| 久久久久免费精品人妻一区二区| 身体一侧抽搐| 国产欧美日韩一区二区三| 国产成人影院久久av| 亚洲国产精品久久男人天堂| 国产精品国产高清国产av| 久久国产乱子免费精品| 我要看日韩黄色一级片| 亚洲人与动物交配视频| 啦啦啦观看免费观看视频高清| 在线观看免费视频日本深夜| 国内揄拍国产精品人妻在线| av视频在线观看入口| 国产单亲对白刺激| 搞女人的毛片| 亚洲av电影在线进入| 国产成人福利小说| 一级作爱视频免费观看| 国产伦在线观看视频一区| 亚洲真实伦在线观看| 中文字幕熟女人妻在线| 狂野欧美白嫩少妇大欣赏| 又黄又爽又免费观看的视频| 久久精品夜夜夜夜夜久久蜜豆| 国产淫片久久久久久久久 | 色av中文字幕| 欧美日韩综合久久久久久 | 成人毛片a级毛片在线播放| 天美传媒精品一区二区| 丰满人妻熟妇乱又伦精品不卡| av在线蜜桃| 琪琪午夜伦伦电影理论片6080| 青草久久国产| 日本一本二区三区精品| 日韩精品中文字幕看吧| 97人妻精品一区二区三区麻豆| 90打野战视频偷拍视频| 午夜激情福利司机影院| 亚洲中文日韩欧美视频| 人人妻,人人澡人人爽秒播| a级毛片免费高清观看在线播放| 国产人妻一区二区三区在| 可以在线观看毛片的网站| 成人av一区二区三区在线看| 99在线人妻在线中文字幕| 久久久色成人| 日韩大尺度精品在线看网址| 麻豆久久精品国产亚洲av| 欧美精品国产亚洲| 一级作爱视频免费观看| 可以在线观看毛片的网站| 精品人妻偷拍中文字幕| 成人特级av手机在线观看| 国产中年淑女户外野战色| 午夜日韩欧美国产| av中文乱码字幕在线| 国产精品精品国产色婷婷| 97超级碰碰碰精品色视频在线观看| 人人妻人人看人人澡| 97碰自拍视频| 18禁在线播放成人免费| 最新在线观看一区二区三区| 久久久久久久久久成人| 精华霜和精华液先用哪个| av视频在线观看入口| 内地一区二区视频在线| 在线a可以看的网站| 黄片小视频在线播放| 99在线视频只有这里精品首页| 99国产精品一区二区三区| 日本精品一区二区三区蜜桃| 精品一区二区三区视频在线| 国产aⅴ精品一区二区三区波| 精品福利观看| 午夜福利欧美成人| 欧美激情在线99| 男人狂女人下面高潮的视频| 别揉我奶头 嗯啊视频| 亚洲国产精品合色在线| 亚洲成人中文字幕在线播放| 我要搜黄色片| 非洲黑人性xxxx精品又粗又长| 免费在线观看日本一区| 麻豆久久精品国产亚洲av| 一个人免费在线观看电影| 欧洲精品卡2卡3卡4卡5卡区| 精品国产亚洲在线| 90打野战视频偷拍视频| 老司机午夜福利在线观看视频| 日韩精品中文字幕看吧| 香蕉av资源在线| 亚洲最大成人手机在线| 99久久精品一区二区三区| av中文乱码字幕在线| 亚洲七黄色美女视频| 国内久久婷婷六月综合欲色啪| 变态另类成人亚洲欧美熟女| 色吧在线观看| 1024手机看黄色片| 人人妻人人看人人澡| 美女免费视频网站| 国产精品久久视频播放| 国产男靠女视频免费网站| 69人妻影院| av黄色大香蕉| 国产精品综合久久久久久久免费| 欧美性感艳星| 久久精品国产亚洲av天美| 国产午夜福利久久久久久| 淫秽高清视频在线观看| 精品日产1卡2卡| 久久精品91蜜桃| 国产一区二区在线av高清观看| 欧美3d第一页| 亚洲专区国产一区二区| 久久精品影院6| 夜夜夜夜夜久久久久| 激情在线观看视频在线高清| 五月玫瑰六月丁香| 少妇人妻精品综合一区二区 | 国产精品美女特级片免费视频播放器| 午夜免费男女啪啪视频观看 | 亚洲欧美精品综合久久99| 中文亚洲av片在线观看爽| а√天堂www在线а√下载| 99久久成人亚洲精品观看| 久久精品人妻少妇| 99久久无色码亚洲精品果冻| 波多野结衣巨乳人妻| 国产91精品成人一区二区三区| aaaaa片日本免费| 女同久久另类99精品国产91| 嫩草影院精品99| 亚洲欧美日韩高清在线视频| 久久精品久久久久久噜噜老黄 | 宅男免费午夜| 很黄的视频免费| 亚洲中文字幕日韩| 天美传媒精品一区二区| 丁香六月欧美| 国产免费av片在线观看野外av| 三级毛片av免费| 少妇高潮的动态图| 亚州av有码| 欧美黄色淫秽网站| 在线天堂最新版资源| 国产精品亚洲av一区麻豆| 日日夜夜操网爽| 男女下面进入的视频免费午夜| 日韩亚洲欧美综合| 欧美日韩国产亚洲二区| 亚洲激情在线av| 国产日本99.免费观看| .国产精品久久| a级毛片a级免费在线| 直男gayav资源| 亚洲专区中文字幕在线| 久久亚洲真实| 成人精品一区二区免费| 午夜a级毛片| 欧美xxxx性猛交bbbb| 国产精品98久久久久久宅男小说| 成年女人永久免费观看视频| 欧美另类亚洲清纯唯美| 亚洲成人久久性| 99国产精品一区二区蜜桃av| 亚洲欧美精品综合久久99| 免费在线观看影片大全网站| 亚洲av熟女| 亚洲av中文字字幕乱码综合| 精品国产三级普通话版| 无人区码免费观看不卡| av福利片在线观看| 听说在线观看完整版免费高清| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 在线观看av片永久免费下载| 一区二区三区免费毛片| 在线国产一区二区在线| 亚洲激情在线av| 性欧美人与动物交配| 国产亚洲精品av在线| 国产精品一及| 久久草成人影院| 91久久精品电影网| 中亚洲国语对白在线视频| 日日摸夜夜添夜夜添av毛片 | 久久99热这里只有精品18| 99久久精品国产亚洲精品| 中文亚洲av片在线观看爽| 搡老妇女老女人老熟妇| 国产探花在线观看一区二区| 热99在线观看视频| 欧美色欧美亚洲另类二区| 国产极品精品免费视频能看的| 成人午夜高清在线视频| 9191精品国产免费久久| 男女做爰动态图高潮gif福利片| 成年免费大片在线观看| 精品一区二区三区视频在线观看免费| 69人妻影院| 色综合婷婷激情| 国产91精品成人一区二区三区| 久久草成人影院| 成人国产一区最新在线观看| 一区二区三区四区激情视频 | 特级一级黄色大片| 九九热线精品视视频播放| 亚洲在线观看片| 久久久成人免费电影| 欧美色视频一区免费| 国产精品一区二区三区四区免费观看 | avwww免费| 亚洲成a人片在线一区二区| 亚洲一区二区三区色噜噜| 中亚洲国语对白在线视频| 一本综合久久免费| 国产黄a三级三级三级人| 中文字幕人妻熟人妻熟丝袜美| av国产免费在线观看| 免费在线观看亚洲国产| 亚洲成人久久性| 亚洲欧美清纯卡通| 黄色日韩在线| 亚洲欧美日韩卡通动漫| www.www免费av| 99久久99久久久精品蜜桃| 国产精品一区二区三区四区久久| 高清在线国产一区| 男人舔女人下体高潮全视频| 美女高潮的动态| 日韩欧美国产一区二区入口| 亚洲av免费高清在线观看| 变态另类成人亚洲欧美熟女| 一区二区三区四区激情视频 | 国产探花极品一区二区| 露出奶头的视频| 丁香六月欧美| 国产精品一区二区三区四区久久| 天堂影院成人在线观看| 国内揄拍国产精品人妻在线| 国产精品伦人一区二区| 午夜福利在线在线| 俺也久久电影网| 免费无遮挡裸体视频| 日本a在线网址| 成人永久免费在线观看视频| 亚洲无线在线观看| 精品国内亚洲2022精品成人| 亚洲熟妇中文字幕五十中出| 国产高清三级在线| 久久久成人免费电影| 免费黄网站久久成人精品 | 色视频www国产| 午夜福利在线在线| 国产麻豆成人av免费视频| 一进一出抽搐gif免费好疼| 给我免费播放毛片高清在线观看| av天堂中文字幕网| 性插视频无遮挡在线免费观看| 亚洲国产精品合色在线| а√天堂www在线а√下载| 国产免费男女视频| 日本免费a在线| 久久久久久久久久成人| 国内毛片毛片毛片毛片毛片| 在线播放无遮挡| a级毛片a级免费在线| 看黄色毛片网站| 亚洲无线在线观看| 9191精品国产免费久久| 中文字幕熟女人妻在线| 99久久99久久久精品蜜桃| 亚洲av电影在线进入| 99久久99久久久精品蜜桃| 露出奶头的视频| 9191精品国产免费久久| 国产一区二区三区在线臀色熟女| 日韩欧美在线乱码| 黄色视频,在线免费观看| 欧美日韩国产亚洲二区| 免费看美女性在线毛片视频| 欧美乱色亚洲激情| 性色av乱码一区二区三区2| 搞女人的毛片| 国产高清有码在线观看视频| 757午夜福利合集在线观看| 欧美成人性av电影在线观看| 在线十欧美十亚洲十日本专区| 两个人视频免费观看高清| 在线十欧美十亚洲十日本专区| 成人午夜高清在线视频| 老熟妇乱子伦视频在线观看| 中亚洲国语对白在线视频| 国产亚洲精品久久久久久毛片| 国产成人影院久久av| 国产精品久久久久久久电影| 国产精华一区二区三区| 国产一区二区三区视频了| 别揉我奶头~嗯~啊~动态视频| 国产乱人视频| x7x7x7水蜜桃| 亚洲国产精品999在线| 一卡2卡三卡四卡精品乱码亚洲| 久久这里只有精品中国| 国内久久婷婷六月综合欲色啪| 久久久久久久久久黄片| 男女那种视频在线观看| 亚洲熟妇中文字幕五十中出| 美女被艹到高潮喷水动态| 九九热线精品视视频播放| 久久久久免费精品人妻一区二区| 午夜亚洲福利在线播放| 看十八女毛片水多多多| 十八禁人妻一区二区|