消息传递并行程序测试数据进化生成理论与应用
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
随着并行计算技术的发展,越来越多的大规模高精度的科学问题,如图像处理、生物信息、分子动力学模拟,以及天气预报等,可以通过并行程序得到有效解决。并行程序的多个进程并行执行,进程之间通过共享存储或者消息传递的方式进行交互,协同完成计算任务。与串行程序相比,并行程序更加复杂,可靠性要求更高,这意味着并行程序的测试尤为关键。已有学者提出了多种方法,着重测试并行程序进程之间的交互序列,检测死锁、资源冲突和数据竞争等问题。在正确通信的前提下,为了测试程序的其他内部细节,有必要研究并行程序的结构覆盖,以进一步提高并行程序的可靠性。而结构覆盖的关键是使用有效的理论和方法,生成满足一定准则的测试数据。在软件测试领域,尽管遗传算法已经成为一种生成测试数据的重要方法,但是,已有工作主要面向串行程序。本文针对路径覆盖问题,研究消息传递并行程序测试数据进化生成理论及其应用。
     首先,研究了用于路径覆盖测试数据生成的协同进化解决方案。针对一类确定执行的并行程序,建立测试数据生成问题的数学模型;根据某一进程路径与程序输入的相关性,提出一种新的协同进化遗传算法。该方法中,包含多个子种群和一个合作团体群,每个子种群用来优化与某一进程路径相关的输入分量,基于这些种群的优良个体,合作团体群优化所有的输入分量。通过多个子种群与合作团体群的交替协同进化,求解上述优化模型,进而高效生成期望的测试数据,同时也为协同进化方法在软件测试中的应用提供新的思路。
     其次,考虑程序执行过程的不确定性,研究了并行程序单路径覆盖测试数据进化生成方法。当程序中使用一些不确定的通信语句时,由于任务划分、进程调度和网络延迟等原因,并行程序的执行过程也具有的一定的不确定性,这给并行程序的测试数据生成带来很大挑战。对于此类程序,为了降低不确定性执行给测试数据生成带来的影响,定义目标路径的等价路径,并给出判定方法,基于目标路径及其等价路径,建立有针对性的测试数据生成问题的数学模型,并采用遗传算法求解该模型。为不确定执行并行程序的测试数据生成问题,提供合理的解决途径。为了减少测试数据生成过程中的计算量,进一步提出了一种基于覆盖难度选择待覆盖路径的测试数据进化生成方法。该方法首先通过影响路径执行的变量、路径关键条件的复杂度,以及Halstead测度等,在目标路径和等价路径中,选择待覆盖路径,以降低路径覆盖的难度;然后,采用遗传算法生成覆盖相应路径的测试数据,以提高测试数据生成的效率。
     再次,为了有效解决多路径覆盖问题,研究了多路径覆盖测试数据进化生成方法。建立多路径覆盖测试数据生成问题的数学模型,并提出有针对性的进化求解方案。首先,基于每条给定路径及其等价路径,将多路径覆盖测试数据生成问题建模为一个包含多个目标的优化问题,每一个目标与一条目标路径及其等价路径相关;然后,设计评价个体的适应度函数,提出采用遗传算法求解该模型的方法。在测试数据生成过程中,同时考虑所有的目标路径和等价路径,使得一次运行遗传算法生成所有期望的测试数据。
     最后,针对很多路径覆盖的测试数据生成问题,研究了基于路径分组的多种群进化求解方案。该方法高效生成测试数据的前提是对目标路径合理分组。为此,首先,研究了用于串行程序很多路径覆盖测试数据并行生成的目标路径分组问题,提出一种新的目标路径分组方法。该方法根据可以利用的计算资源和路径相似程度,将待覆盖的目标路径分成若干组,使得不同组包含的目标路径条数相差很小,且属于同一组的目标路径具有很大的相似程度。以此为基础的测试数据并行生成方法能够充分利用并行计算资源,改进测试数据的生成效率。然后,在该分组方法的基础上,考虑并行程序多进程并行执行的特性,根据计算资源和程序包含的进程数两个因素,确定路径的分组数和每组包含的路径数,综合考虑程序所有进程路径的相似度,将目标路径进行分组。基于每一组路径,建立很多路径覆盖测试数据生成问题的数学模型,并采用多种群遗传算法进行求解,进一步提高了测试数据的生成效率。
     本文的研究工作在一定程度上,丰富了并行程序测试理论,大大提高了测试数据的生成效率,拓宽了进化算法的应用范围,具有重要的理论意义和应用价值。
     该论文有图18幅,表31个,参考文献132篇。
Due to the development of parallel computing techniques, more and morescientific problems, such as image processing, weather forecast, and moleculardynamic simulation, can be solved by parallel programs. Multiple processes in aparallel program are executed in parallel and cooperate with each other bycommunication or shared memory to solve practical problems. Compared to serialprograms, parallel programs are more complicated and require higher reliability,suggesting that the testing of parallel programs is necessary. Many scholars haveproposed various methods which focus on testing interleaving sequence to detectdeadlocks, unintentional races, and resources competition. On the premise of thenormal communication, it is necessary to investigate the structure coverage of parallelprograms for testing other internal details, further improving the reliability of parallelprograms. The key of the structure coverage is to generate test data satisfying theadequacy criteria. In the field of software testing, although genetic algorithms havebecome an important strategy of generating test data, existing methods are mainlysuitable for serial programs. Considering the path coverage, this issue investigatestheories and applications of evolutionary test data generation for message passingparallel programs. The main studies include:
     A co-evolutionary solution for generating test data to cover the path of parallelprograms is investigated. Aiming at parallel programs with determinacy, in whichexecution paths of each progress are determined uniquely by input components relatedto it, the mathematical model of generating test data is built and a novelco-evolutionary genetic algorithm is proposed. According to the correlation between aprocess path and its associated input components, a set of sub-populations and acooperative population are introduced. Each sub-population independently evolves tooptimize a part of the input associated to the specific process path, whereas thecooperative population based on excellent individuals from all sub-populations is usedto optimize the whole input. These two kinds of populations alternatively evolve toeffectively solve the above model and generate test data covering the target path,while providing new ideas for employing co-evolutionary methods to software testing.
     Considering the non-determinacy of parallel programs, a method of evolutionarygeneration of test data covering one path is presented. When some non-deterministiccommunication statements are employed in a parallel program, it may be executed in a non-deterministic way because of the task partition, process schedule andcommunication delay, which brings a great challenge for generating test data. Forreducing the influence of non-deterministic execution on generating test data, anequivalent path is defined and a method of searching for it is given. Based on thesepaths, a mathematical model of generating test data for path coverage of this kind ofprograms is formulated, and a strategy of solving the model by using a geneticalgorithm is presented. This provides a reasonable way to solve the problem ofgenerating test data for the programs with non-deterministic feature. In order todecrease the computation cost required by generating test data, a method ofevolutionary test data generation through selecting target paths is further proposedbased on the coverage difficulty. First, the method selects the path to be covered toreduce the coverage difficulty in the light of variables affecting a path’s execution,complexities of a path’s crucial conditions, and Halstead’s metric. Second, the geneticalgorithm is employed to generate test data covering the path, so as to improve theefficiency of generating test data.
     For the problem of multiple paths coverage, an evolutionary solution of generatingtest data covering multiple paths is studied. A mathematical model is built and anevolutionary method is presented against it. The problem of test data generation formultiple paths coverage is first formulated into a multi-objective optimizationproblem, where each objective is corresponding with a target path and its allequivalent paths. An appropriate fitness function is designed when employing agenetic algorithm to solve the above problem. The proposed method can synthesizemultiple test data to cover the given paths or their equivalent ones in one run.
     Finally, a multi-population parallel genetic algorithm based on grouping thetarget paths is employed to tackle the many paths coverage of parallel programs. Thepremise on which the above method is efficient is appropriately grouping target paths.The problem of grouping target paths is first investigated for the generation of testdata covering many paths of serial programs, and a novel method of grouping targetpaths is presented. In this method, target paths are divided into several groupsaccording to calculation resource available and the similarities among target paths,making a small difference in the number of target paths belonging to different groups,and a great similarity among target paths in the same group. The parallel geneticalgorithm based on this method can make full use of the calculation resources,improving the efficiency of generating test data. Then, based on this, a grouping method suitable for parallel programs is proposed by considering their features ofparallel execution. The number of groups and paths contained in them are determinedaccording to the processes and calculation resource available. The paths are groupedby leveraging all process paths’ similarities. According to the paths of each group, amathematical model is built for parallel generation of test data covering many paths,and a strategy of solving the above model by using a multi-population geneticalgorithm is presented.
     The research work of this issue enrich the theory of parallel program testing tosome extent, improve the efficiency of generating test data, and extend the applicationdomain of the evolutionary methods, thus having important theoretical and practicalvalues.
引文
[1]张军华,臧胜涛,单联瑜,石林光.高性能计算的发展现状及趋势[J].石油地球物理勘探,2010,45(6):918-925.
    [2]黄永勤,金利峰,刘耀.高性能计算机的可靠性技术现状与趋势[J].计算机研究与发展,2010,47(4):589-594.
    [3] Snir M., Otto S., Huss-Lederman S., Walker D., Dongarra J. MPI: The complete reference[R].Technical Report, Cambridge: MIT Press,1996.
    [4] Geist G.A., Kohl J.A., Papadopoulos P.M., Scott S.L. Beyond PVM3.4: what we’ve learnedwhat’s next, and why[C]. Proceedings of15th European PVM/MPI Users' Group Meeting onRecent Advances in Parallel Virtual Machine and Message Passing Interface, Lecture Notes inComputer Science,1997,1332:116-126.
    [5] Hamlet D. Software quality, software process, and software testing[J]. Advances in Computers,1995(41):191-229.
    [6] Maiocchi M. Software engineering[J]. Future Generation Computer Systems,1991,7(1):23-29.
    [7] Xanthakis S., Ellis C., Skourlas C. Application of genetic algorithms to software testing[C].Proceedings of5th International Conference on Software Engineering and Its Applications,1992:625-636.
    [8] Wegener J., Baresel A., Sthamer H. Evolutionary test environment for automatic structuraltesting[J]. Information and Software Technology,2001,43(14):841-854.
    [9] Xiao M., Mohamed E.A., Reformat M. Empirical evaluation of optimization algorithms whenused in goal-oriented automated test data generation techniques[J]. Empirical SoftwareEngineering,2007,12(2):183-239.
    [10] Arcuri A., Yao X. Search based software testing of object-oriented containers[J]. InformationSciences,2008,178(15):3075-3095.
    [11] Buhler O., Wegener J. Evolutionary functional testing[J]. Computers&Operations Research,2008,35(10):3144-3160.
    [12] Ribeiro J.C.B., Zenha-Rela M.A., Vega F.F. Test case evaluation and input domain reductionstrategies for the evolutionary testing of object-oriented software[J]. Information and SoftwareTechnology,2009,51(11):1534-1548.
    [13] Poli R., Langdon W.B. Backward-chaining evolutionary algorithms[J]. Artificial Intelligence,2006,170(11):953-982.
    [14] Liaskos K., Roper M. Hybridizing evolutionary testing with artificial immune systems andlocal search[C]. Proceedings of IEEE International Conference on Software Testing,2008:211-220.
    [15] Gao H.C., Feng B.Q., Zhu L. A kind of SAaGA hybrid meta-heuristic algorithm for theautomatic test data generation[C]. Proceedings of International Conference on Neural Networksand Brain,2005:111-114.
    [16] Harman M., McMinn P. A theoretical and empirical study of search based testing: local,global and hybrid search[J]. IEEE Transactions on Software Engineering,2009,3(2):226-247.
    [17]单锦辉,姜瑛.孙萍软件测试研究进展[J].北京大学学报(自然科学版),2005,41(1):134-145.
    [18] Harman M. Automated test data generation using search based software engineering[C].Proceedings of2nd International Workshop on Automation of Software Test,2007:1-2.
    [19] Hermadi I. Genetic algorithm based test data generator[D]. Saudi Arabia: King FahdUniversity of Petroleum and Minerals,2004.
    [20] Gong D.W., Zhang W.Q., Yao X.J. Evolutionary generation of test data for many pathscoverage based on grouping[J]. The Journal of Systems and Software,2011,84(12):2222-2233.
    [21] Jazequel J.M., Meyer B. Design by contract: the lessons of Ariane[J]. Computer,1997,30(l):129-130.
    [22] The Institute of Electrical and Electronics Engineers. IEEE Guide to Software CogurationManagement[M]. New York: IEEE Press,1987.
    [23] King S., Hammond J., Chapman R. Is proof more cost-effective than testing[J]. IEEETransactions on Software Engineering,2000,26(8):675-686.
    [24]夏玉辉,万琳,李鸣,王洪艳.基于变量使用的静态测试方法研究[J].计算机工程与设计,2009,30(9):2205-2207.
    [25] Buhler O., Wegener J. Evolutionary functional testing[J]. Computers&Operations Research,2008,35(10):3144-3160.
    [26] Afzal W., Torkar R., Feldt R. A systematic review of search-based testing for non-functionalsystem properties[J]. Information and Software Technology,2009,51(6):957-976.
    [27] Midian P. Perspectives on penetration testing—black box vs.white box[J]. Network Security,2002,11:10-12.
    [28] Liu S., Chen Y. A relation-based method combining functional and structural testing for testcase generation[J]. The Journal of Systems and Software,2008,81(2):234-248.
    [29] Gross H., Kruse P.M., Wegener J. Evolutionary white-box software test with the EvoTestframework[C]. Proceedings of IEEE International Conference on Software Testing Verificationand Validation Workshops,2009:111-120.
    [30] Li J.J., Weiss D., Yee H. Code-coverage guided prioritized test generation[J]. Informationand Software Technology,2006,48(12):1187-1198.
    [31] Madeyski L. The impact of Test-First programming on branch coverage and mutation scoreindicator of unit tests: an experiment[J]. Information and Software Technology,2010,52(2):169-184.
    [32] Gross H., Kruse P.M., Wegener J., Vos D.T. Evolutionary white-box software test with theEvoTest Framework[C]. Proceedings of IEEE International Conference on Software Testing,Verification, and Validation Workshops,2009:111-120.
    [33] Murrill B.W. An empirical, path-oriented approach to software analysis and testing[J]. TheJournal of Systems and Software,2008,81(2):249-261.
    [34]单锦辉,王戟,齐治昌.面向路径的测试数据自动生成方法述评[J].电子学报,2004,32(1):109-113.
    [35] Chen T.Y., Kuo F.C., Merkel R.G. Adaptive random testing: the ART of test case diversity[J].The Journal of Systems and Software,2010,83(1):60-66.
    [36]张德平,聂长海,徐宝文.划分测试中测试用例最优分配问题研究[J].南京大学学报(自然科学),2005,41(5):553-561.
    [37] Miller W., Spooner D.L. Automatic generation of floating-point test data[J]. IEEETransaction on Software Engineering,1976,2(3):223-226.
    [38] Gupta N., Mathur A.P., Soffa M.L. Automated test data generation using an iterativerelaxation method[C]. Proceedings of ACM Conference on the Foundations of SoftwareEngineering,1998:231-244.
    [39] Tracey N., Clark J., Mander K. An automated framework for structural test-datageneration[C]. Proceedings of International Conference on Automated Software Engineering,1998:285-288.
    [40] Xu X.F., Chen Y, Li X.C. A path-oriented test data generation approach for automaticsoftware testing[C]. Proceedings of2nd International Conference on Anti-counterfeiting, Securityand Identification,2008:63-66.
    [41] Alba E., Chicano F. Observations in using parallel and sequential evolutionary algorithms forautomatic software testing[J]. Computers&Operations Research,2008,35(10):3161-3183.
    [42] Sofokleous A.A., Andreou A.S. Automatic, evolutionary test data generation for dynamicsoftware testing[J]. The Journal of System and Software,2008,81(11):1883-1898.
    [43] Holland J.H. Adaptation in Nature and Artificial Systems[M]. Michigan: The University ofMichigan Press,1975.
    [44]王小平,曹立明,遗传算法-理论、应用与软件实现[M].西安:西安交通大学出版社,2002.
    [45] Bagley J.D. The Behavior of Adaptive System Which Employs Genetic and CorrelationAlgorithm[D]. Michigan: The University of Michigan,1967.
    [46] Cavicchio D.J. Adaptive Search Using Simulated Evolution[M]. Michigan: The University ofMichigan Press,1970.
    [47] Hollstein R.B. Artificial Genetic Adaptation in Computer Control System[M]. Michigan: TheUniversity of Michigan Press,1971.
    [48] Holland J.H. Adaptation in Nature and Artificial Systems[M]. Michigan:The University ofMichigan Press,1975.
    [49] De Jong K.A. Analysis of the Behavior of a Class of Genetic Adaptive Systems[D]. Michigan:The University of Michigan,1975.
    [50] Brindle A. Genetic Algorithms for Function Optimization[D]. Edmonton: University ofAlberta,1981.
    [51] Goldberg D.E. Computer-aided Gas Pipeline Using Genetic Algorithm and Rule Learning[D].Michigan: The University of Michigan,1983.
    [52] Goldberg D.E. Genetic Algorithms in Search, Optimization and Machine Learning[M].Boston: Addison-Wesley Publishing Company,1989.
    [53] Davis L. Handbook of Genetic Algorithms[M]. New York: Van Nostrand Reinhold,1991.
    [54] Chi H.M., Ersoy O.K., Moskowitz H., Ward J. Modeling and optimizing a vendor managedreplenishment system using machine learning and genetic algorithms[J]. European Journal ofOperational Research,2007,180(1):174-193.
    [55]刘涛.基于遗传算法与支持向量机融合的特征基因抽取方法研究[D].哈尔滨:哈尔滨工业大学,2007.
    [56]谭保华,彭伟.基于蚁群遗传算法的高校排课系统[J].计算机仿真,2008,25(12):294-297.
    [57] Yang S.X. Neural Network Forecast under the Organic Hybrid Model of Genetic Algorithmand Particle Swarm Algorithm[C]. Proceedings of6th International Conference on WaveletAnalysis and Pattern Recognition,2008:254-258.
    [58] Gao J. A new parallel genetic algorithm for solving multi-objective scheduling problemssubjected to special process constraint[J]. International Journal of Advanced ManufacturingTechnology,2009,43(1):151-160.
    [59] McMinn P. Search-based software test data generation: a survey[J]. Software Testing,Verification and Reliability,2004,14(2):105-56.
    [60] Sthamer H. The automatic generation of software test data using genetic algorithms[D].Pontypridd: University of Glamorgan,1996.
    [61] Pargas R.P., Harrold M.J., Peck R.R. Test data generation using genetic algorithms[J]. Journalof Software Testing, Verification, and Reliability,1999,9(4):263-282.
    [62] Girgis M.R. Automatic test data generation for data flow testing using a genetic algorithm[J].Journal of Universal Computer Science,2005,11(5):898-915.
    [63] Wegener J., Buhr K., Pohlheim H. Automatic test data generation for structural testing ofembedded software systems by evolutionary testing[C]. Proceedings of Genetic and EvolutionaryComputation Conference,2002:1233-1240.
    [64] Arcuri A., Yao X. Search based software testing of object-oriented containers[J]. InformationSciences,2008,178(5):3075-3095.
    [65] Arcuri A. Longer is better: On the role of test sequence length in software testing[C].Proceedings of3rd International Conference on Software Testing, Verification and Validation,2010:469-478.
    [66] Fraser G., Arcuri A. It is not the length that matters, it is how you control it[C]. Proceedingsof IEEE International Conference on Software Testing, Verification and Validation,2011:150-159.
    [67] Rauf A., Eissa E. Fully automated GUI testing and coverage analysis using geneticalgorithms[J]. International Journal of Innovative Computing, Information and Control,2011,7(3):3281-3294.
    [68] Harman M., Hassoun Y., Lakhotia K., McMinn P., Wegener J. The impact of input domainreduction on dearch-based test data generation[C]. Proceedings of6th Joint Meeting of theEuropean Software Engineering Conference and the ACM SIGSOFT Symposium on TheFoundations of Software Engineering,2007:155–164.
    [69] Zhang Y., Sun J.H., Jiang S.J. An application of program slicing in evolutionary testing[C].Proceedings of International Conference on Information Engineering and Computer Science,2009:1-4.
    [70] Bueno P.M.S., Jino M. Identification of potentially infeasible program paths by monitoringthe search for test data[C]. Proceedings of15th IEEE International Conference on AutomatedSoftware Engineering,2000:209-218.
    [71] Bueno P., Jino M. Automatic test data generation for program path using geneticalgorithms[J]. International Journal of Software Engineering and Knowledge Engineering,2002,12(6):691-709.
    [72]谢晓园,徐宝文,史亮,聂长海.面向路径覆盖的演化测试用例生成技术[J].软件学报,2009,20(12):31173136.
    [73] Ahmed M.A., Hermadi I. GA-based multiple paths test data generator[J]. Computer&Operations Research,2008,35:3107-3127.
    [74]曹洋,胡春华,陈少波,李路明.多路径测试数据自动生成方法及应用[J].计算机工程与应用,2010,46(27):32-35.
    [75]巩敦卫,张岩.一种新的多路径覆盖测试数据进化生成方法[J].电子学报,2010,38(6):1299-1304.
    [76] Harman M., McMinn P. A theoretical and empirical study of search based testing: local,global and hybrid search[J]. IEEE Transactions on Software Engineering,2010,36(2):226-247.
    [77] Alba E., Chicano F. Observations in using parallel and sequential evolutionary algorithms forautomatic software testing[J]. Computers&Operations Research,2008,35:3161-3183.
    [78] McMinn P., Harman M., Binkley D., Tonella P. The species per path approach to search-basedtest data generation[C]. Proceedings of International Symposium on Software Testing andAnalysis,2006:13–24.
    [79] Chen Y., Zhong Y. Automatic path-oriented test data generation using a Multi-populationgenetic algorithm[C]. Proceedings of4th International Conference on Natural Computation,2008:566-570.
    [80]巩敦卫,孙晓燕.协同进化遗传算法理论及应用[M].北京:科学出版社,2009.
    [81] Husband P., Mill F. Simulated co-evolution as the mechanism for emergent planning andscheduling[C]. Proceedings of4th International Conference on Genetic Algorithms,1991:264-270.
    [82] Paredis J. The symbiotic evolution of solutions and their representations[C]. Proceedings of6th International Conference on Genetic Algorithms,1995:359-365.
    [83] Ren J., Harman M., Massimiliano D.P. Cooperative co-evolutionary optimization of softwareproject staff assignments and job scheduling[C]. Proceedings of3rd International Conference onSearch Based Software Engineering, Lecture Notes in Computer Science,2011,6956:127-141.
    [84] Almasi G.S., Gottlieb A. Highly Parallel Computing[M]. San Francisco: The BenjaminCummings Publishing Company,1994.
    [85]陈国良,安虹,陈崚,郑启龙,单久龙.并行算法实践[M].北京:高等教育出版社,2004.
    [86]张武生,靴巍,李健江,郑纬民.MPI并行程序设计实例教程[M].北京:清华大学出版社,2009.
    [87] MPICH-A Portable Implementation of MPI. http://www-unix.mcs.anl.gov/mpi/mpich/.
    [88] LAM/MPI Parallel Computing. http://www.lam-mpi.org.
    [89] Bruce R.A, Mills J.G., Smith A.G. CHIMP/MPI user guide[R]. EdinburghL: University ofEdinburgh,1994.
    [90] Chen Q.,Wang L.,Yang Z.,Stoller S.D. HAVE: Detecting Atomicity Violations via IntegratedDynamic and Static Analysis[C]. Proceedings of12th International Conference on FundamentalApproaches to Software Engineering: Held as Part of the Joint European Conferences on Theoryand Practice of Software, Lecture Notes in Computer Science,2009,5503:425-439.
    [91] Zhao J. Slicing concurrent Java program[C]. Proeeedings of7th International Workshop onPrograms Comprehension,1999:126-133.
    [92] Chen Z., Xu B., Yang H., Liu K., Zhang J. An approach to analyzing dependency ofconcurrent programs[C]. Proeeedings of1st Asia-Pacific Conference on Quality Software,2000:39-43.
    [93]陈振强,徐宝文.一种并发程序依赖性分析方法[J].计算机研究与发展,2002,39(2):159-164.
    [94] Cheng J. Slicing concurrent programs-A graph theoretical approach[C]. Proeeedings of1stInternational Workshop on Automated and Algorithmic Debugging,1993:223-240.
    [95] Christakis M., Sagonas K. Detection of Asynchronous Message Passing Errors Using StaticAnalysis[C]. Proeeedings of13th International Symposium on Practical Aspects of DeclarativeLanguage, Practical Aspects of Declarative Languages, Lecture Notes in Computer Science,2011,6539:5-18.
    [96] Engler D., Ashcraft K. Racerx: effective, static detection of race conditions and Deadlocks[C].Proceedings of9th ACM Symposium on Operating Systems Principles,2003:237-252.
    [97] Maie A. Static analysis of run-time errors in embedded critical parallel C programs[C].Proceedings of20th European Symposium on Programming,2011:398-418.
    [98] Godefroid P. Model checking for programming languages using verisoft[C]. Proceedings of24th Symposium on Principles of Programming Languages,1997:174-186.
    [99] Koppol P.V., Tai K.C. An incremental approach to structure testing of concurrent software[C].Proeeedings of International Symposium on Software Testing and Analysis,1996:14-23.
    [100] Koppol P.V., Carver R.H., Tai K.C. Incremental integration testing of concurrentprograms[J]. IEEE transactions on Software Engineering,2002,28(6):607-623.
    [101] Flanagan C., Godefroid P. Dynamic partial-order reduction for model checking software[C].Proceedings of32nd Symposium on Principles of Programming Languages,2005:110-121.
    [102] Vakkalanka S., DeLisi M., Gopalakrishnan G., Kirby R.M., Thakur R., Gropp W.Implementing efficient dynamic formal verification methods for MPI programs[C]. Proceedings of15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machineand Message Passing Interface, Lecture Notes in Computer Science,2008,5205:248-256.
    [103] Krammer B., Resch M. Correctness checking of MPI one-sided communication usingMarmot[C]. Proceedings of13th European PVM/MPI Users' Group Meeting on Recent Advancesin Parallel Virtual Machine and Message Passing Interface, Lecture Notes in Computer Science,2006,4192:105-114.
    [104] Vetter J.S., Supinski B.R. Dynamic software testing of MPI applications with Umpire[C].Proceedings of IEEE/ACM Supercomputing Conference,2000:1-10.
    [105] Park M.Y., Shim S.J., Jun Y.K., Park H.R. MPIRace-Check: detection of message races inMPI programs[C]. Proceedings of2nd International Conference on Grid and Pervasive Computing,Lecture Notes in Bioinformatics,2007,4459:322-333.
    [106] Lei Y., Carver R.H. Reachability testing of concurrent programs[J]. IEEE Transactions onSoftware Engineering,2006,32(6):382-403.
    [107] Carver R., Lei Y. Distributed reachability testing of concurrent programs[J]. Concurrencyand Computation: Practice and Experience,2010,22(18):2445-2466.
    [108] Woit D.M. Operational Profile Specification, Test Case Generation, and ReliabilityEstimation for Modules[D]. Kingston: Queen’s University,1994.
    [109] Popovic M., Basicevic I. Test case generation for the task tree type of architecture[J].Information and Software Technology,2010,52:697-706.
    [110] Popovic M., Kupresanin I., Basicevic I. Generic method for statistical testing of parallelprograms based on task trees[J]. Scientific Research and Essays,2012,7(11):1244-1255.
    [111] Yang C.S.D., Pollock L.L. All-uses testing of shared memory parallel programs[J]. SoftwareTesting, Verification and Reliability,2003,13(1):3-24.
    [112] Yang C.S.D, Souter A.L., Pollock L.L. All-du-path coverage for prallel pograms[C].Proceedings of ACM SigSoft International Symposium on Software Testing and Analysis,Software Engineering Notes,1998,23(2):153-162.
    [113] Souza S.R.S., Vergilio S.R., Souza P.S.L. Structural testing criteria for message-passingparallel programs[J]. Concurrency and Computation: Practice and Experience,2008,20(16):1893-1916.
    [114] Souza P.S.L., Souza S.R.S., Zaluska E. Structural testing for message-passing concurrentprograms an extended test model[J]. Concurrency and Computation: Practice and Experience,2013,25(18):149-158.
    [115] Fergusona R., Korel B. Generating test data for distributed software using the chainingapproach[J]. Information and Software Technology,1996,38(5):343-353.
    [116] Chen J. Guided Testing of Concurrent Programs Using Value Schedules[D]. Waterloo:University of Waterloo,2009.
    [117] Arcuri A., Yao X. A novel co-evolutionary approach to automatic software bug fixing[C].Proceedings of IEEE Congress on Evolutionary Computation,2008:162-168.
    [118] Oliveira A.L., Camilo-Junior C.G., Vincenzi A.M.R. A co-evolutionary algorithm toautomatic test case selection and mutant in Mutation Testing[C]. Proceedings of IEEE Congresson Evolutionary Computation,2013:829-836.
    [119] Dominguez-Jimenez J., Estero-Botaro A., Domínguez A., Medina-Bulo I. Evolutionarymutation testing[J]. Information and Software Technology,2011,53:1108-1123.
    [120] Arcuri A., White D.R., Clark J., Yao X. Multi-objective improvement of software usingco-evolution and smart seeding[C]. Proceedings of7th International Conference on SimulatedEvolution and Learning, Lecture Notes in Computer Science,2008,5361:61-70.
    [121] SKaMPI: http://liinwww.ira.uka.de/~skampi/.
    [122] Conte S.D., Dunsmore H.E., Shen V.Y. Software engineering metrics and models[M]. SanFrancisco: Benjamin/Cummings Publishing Company, incorporated,1986.
    [123] Nejmeh B.A. NPATH: a measure of execution path complexity and its applications[J].Communications of the Association for Computing Machinery,1988,31(2):188-210.
    [124] McCabe T.A. A complexity measure[J]. IEEE Transactions on Software Engineering,1976,2(4):308-320.
    [125] Halstead M. Elements of software science (Operating and programming systems series)[M].New York: Elsevier Science Publishing Company Incorporated,1977.
    [126] Kumar A., Tiwari S., Mishra K.K., Misra A.K. Generation of efficient test data using pathselection strategy with elitist GA in regression testing[C]. Proceedings of IEEE InternationalConference on Computer Science and Information Technology,2010,9:389-393.
    [127] Debbarma M.K., Kar N., Saha A. Static and dynamic software metrics complexity analysisin regression testing[C]. Proceedings of International Conference on Computer Communicationand Informatics,2012:1-6.
    [128] Ngo M.N., Tan H.B.K. Heuristics-based infeasible path detection for dynamic test datageneration[J]. Information and Software Technology,2008,50(7):641-655.
    [129] Jeanne F., Karl J.O., Joe D.W. The program dependence graph and its use in optimization[J].ACM Transactions on Programming Languages and Systems,1987,9(3):319-349.
    [130] Clarke L.A., Richardson D.J. Symbolic evaluationevaluation methods: implementations andapplications[J]. Computer Program Testing,1981:65-102.
    [131] Zhang J., Wang X.X. A Constraint solver and its application to path feasibility analysis[J].International Journal of Software Engineering&Knowledge Engineering,2011,11(2):139-156
    [132] Clematis A., Corana A. Modeling performance of heterogeneous parallel computingsystems[J]. Parallel Computing,1999,25(9):1131-1145.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700