透過您的圖書館登入
IP:18.217.8.82
  • 學位論文

具備多重學習分類器的智慧型軟體測試

Intelligent Software Testing with Multiple Learning Classifiers

指導教授 : 王凡
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


測試在開發軟體的過程中佔了非常重要的一環,但是隨著時代的進步,硬體發展快速,軟體也隨之成長,傳統的純粹依賴人力來做軟體測試也越來越花時間,取而代之的是,結合機器學習來做軟體測試。 在本篇文章中,我們提供了一個結合支持向量機、類神經網路與L*等機器學習演算法的多重分類器結構,這個結構主要分成三個部分:第一部分是提供使用者一些函式,藉由將這些函式安插在程式中,讓使用者可以收集程式執行時的資訊,當然這些資訊也可以由使用者自己提供;第二部分是將第一部分收集來的資訊,分成訓練資料以及學習資料。其中,訓練資料用來建立模型而測試資料用來測試模型的準確性。最後,我們把這些模型產生的結果利用一些組合函式產生出更好的結果。 我們主要研究如何在沒有規格的情況下,使用這些機器學習技術來正確產生程式的測試準則,並在文章最後以兩個網路上的共享資源程式來做實驗,比較不同機器學習演算法以及使用組合函式之後的準確性。

並列摘要


Testing is an essential process of software development. Along with the progress of scientific and technological development of hardware, software systems become larger and larger. It is time consuming to do software testing with manpower traditionally. Using machine learning in place of labor efforts is getting more and more attractive. In this thesis, we present a multiple-classifier structure of software testing with machine learning algorithms including support vector machine (SVM), neural network (NN) and L*. The structure is composed of three phases. In the first phase, the structure uses some functions which can insert into user programs to collect useful information as our input data during program executions. Those input data, of course, could also be provided by users. In the second phase, we separate the input data into training data and testing data. The training data is used for building models and the testing data is for testing the models we build. The last phase is that we combine the results of models to generate a better result by using combinatorial functions. We investigate how to use machine learning techniques to automatically construct test oracles for programs without reliance on explicit specifications, and experiment with two open-source benchmarks to compare the accuracy of different learning algorithms and the accuracy after using combinatorial functions in the end.

並列關鍵字

software testing machine learning multiple classifier SVM NN L* test oracle

參考文獻


[3] J.F. Bowring, J.M. Rehg, and M.J. Harrold, "Active learning for automatic classification of software behavior", in International Symposium on Software Testing and Analysis, pp 195-205, 2004.
[4] M.D. Ernst, J Cockrell, W.G. Griswold, and D. Notkin, "Dynamically discovering likely program invariants to support program evolution", in IEEE Transactions of Software Engineering, Vol. 27, No. 2, 2001.
[6] C. Cortes and V. Vapnik. "Support-vector networks", in Machine Learning, Vol. 20, pp. 273-297, 1995.
[8] D. Angluin, "Queries and concept learning", in Machine Learning, 2, pp. 319-342, 1988.
[10] Y. Lu, "Knowledge integration in a multiple classifier system", Appl. Intell. 6(2), pp. 75-86, 1996.

延伸閱讀