面向对象程序分析与测试技术研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
在软件生命周期过程中,软件测试是保证软件质量的关键环节之一。面向对象方法学在软件工程中的引入极大地方便了软件的设计、开发和维护,为创建高可靠性的软件系统提供了重要保证,但面向对象程序的封装、继承、多态和异常处理机制等新特性却给测试带来新的挑战。一方面需要调整、改进传统的测试策略和方法;另一方面探索出适应面向对象程序特征的测试理论与技术也尤为必要。
     面向对象软件测试分为方法级、类级、类簇级和系统级四个级别。就方法级测试而言,类中的方法与传统程序中的过程(或函数)并无太大区别,所以用于传统程序的控制流或数据流等结构性测试方法可以调整用于类中方法内或方法间的测试,其中的分支覆盖准则被实践证明是其中性价比最高的一种策略。运用DD图表示程序的控制流,并在此基础上分析程序的依赖关系及DD图的性质,提出了一种近似求解控制依赖关系中非约束边集的算法Find_SemiUE,虽然精度有所降低,但该方法简便、快捷且适合于大规模程序的处理。基于非约束边集,对DD图进行正(逆)向广度(深度)优先搜索形成生成树并用逆邻接表表示,给出了一种以较小的时空开销生成分支测试路径用例集的简化算法Generate_PathSet。
     类是面向对象程序的基本单元,只有对类进行充分的测试才能确保高层测试简便且可信,从而降低整个测试过程的代价。统计测试方法由于简便、快捷和低成本等特性已被广泛用于测试活动中,并被实践证明较确定性测试方法有更强的缺陷暴露能力。针对面向对象程序特征和不同的理解视角,从方法级和对象级运用统计测试技术对类程序进行测试。方法级统计结构性测试主要是在分析类控制流图的基础上,通过执行能统计覆盖程序路径的用例集来揭示类中语句的逻辑错误。对象级统计功能性测试则是利用类程序需求和操作剖面进行建模,再运行由方法序列构成的用例来检查错误的实现和遗漏缺陷等。最后,将两个级别的测试有机地结合在一起形成一个混合统计测试框架。
     类间测试序的确定是类簇级测试中的一个难点。对传统的对象关系图进行扩展,运用EORD图和WORD图对类间的继承、聚集和关联三种关系进行建模表示,以“生成的存根数目最少”为优化目标,利用成环权重、边向因子和联系强度等启发式规则,给出了一种高效、准确的类间测试序确定算法ICTO。该算法具有递归次数少、能降低测试桩(存根)的生成代价以及稳定性好等优点。
     面向对象技术为构件的实现提供了基本技术支持,对构件软件的测试可以看作是面向对象程序测试的扩展和延伸。由于对构件内部结构及其变更信息缺乏了解,使得构件使用者测试构件软件系统异常困难,对回归测试来讲则更为突出。其主要原因是难以选择出与变更相关的用例用于测试由新版构件构建的系统。分析已有回归测试技术的不足,基于方便构件使用者获取构件结构及其变更信息的思路,提出了两种改进的构件软件回归测试策略:一种是基于增强的构件版本变更信息的方法;另一种则是基于内建式测试设计的方法。通过对几个实例程序的实验分析,证实了所提出的方法在实际应用中的可行性与有效性。
     软件测试应是“理论+技术+辅助工具+管理”的结合体,辅助测试工具在其中起着举足轻重的作用。以目前普遍使用的C/C++程序作为测试对象,实现了一个能进行方法级、类(簇)级和系统级三个级别测试的原型系统CppTest:基于程序CFG图分析、探针插装和I/O重定向等技术,实现方法级结构性测试;按照需求规约运用EFSM对类的状态转换行为进行建模,并依此自动生成测试用例集,实现基于状态的类测试;在系统级别上,运用等价类划分、边界值分析等常规策略进行黑盒测试。此外,运用聚类技术对失效执行进行聚类分析,并从中抽样出典型的测试执行用例用于指导程序的进一步诊断。CppTest具备多级别测试、测试项目化管理、自动化/可视化程度高、扩展性好等优点。
During the whole lifecycle of software development, software testing is one of the key steps to ensure the high quality of software. The introduction of Object-Oriented methodology into software engineering greatly facilitates the processes of software design, development and maintenance, but some characters of Object-Oriented programs, such as encapsulation, inheritance, polymorphism, and exception handling mechanism, bring some new challenging problems to software testing. Some traditional testing strategies and methods can be adjusted or improved for testing the OO programs. On the other hand, exploiting a new system of testing theory and technology for these new specialties is essentially important.
     Object-Oriented software testing can be classified into four different levels: method level, class level, cluster level, and system level. There is no significant difference between the methods in class and the procedures (or functions) in traditional program, thus the common structural testing methods, such as control flow or data flow testing, can be applied into intra-/inter-method testing in class, and the branch coverage criterion has been proved to be the best cost performance of its all criteria. Based on analyzing the dependency of program constructs and properties of Decision-to-Decision graph, which is a representation of program’s control flow, an approximate algorithm (called Find_ SemiUE) for solving the set of unconstrained edges (i.e., UE) is proposed, which is simple, quick and very suitable for the large-scale programs. Under the direction of UE, a simplified algorithm named Generate_PathSet can generate the test path cases with low time and space cost via forward (backward) breadth (depth) traversal of DD graph.
     Statistical testing approach has been proved to be with stronger fault revealing power than deterministic testing method in practice. With its remarkable characters of simplicity, convenience, and lower cost, it has been diffusely adopted in software testing activities. Aiming at OO program’s specialties and different comprehension perspectives, the statistical testing in method level and object level can be employed on class programs respectively. The statistical structural testing in method level is suitable to detect the logical errors in statements. On the other hand, the statistical functional testing in object level can expose the incorrect implementations which will lead to failure state transitions. Furthermore, a mixed statistical testing framework can be constructed by combining the above two approaches in different levels.
     Determining inter-class test order is one of the most difficult tasks in cluster level testing. The concept of extended/weighted object relation diagram (EORD/WORD) is presented by extending the traditional object relation diagram (ORD). While generating the inter-class test order based on WORD, minimizing the number of realistic stubs (not the number of classes to be stubbed) is regarded as optimization objective. Some heuristic rules, such as association intensity, cycling weight and direction factor of edge, are treated as important criteria to cut association edges to break cycles. An improved algorithm ICTO is proposed via analyzing some principles of the existing methods and overcoming some of their drawbacks. This algorithm has some merits such as the fewer number recursion times, lower cost of generating class stubs, and excellent stability.
     Object-Oriented technology provides an essential support for component realization, so component generally retains the basic Object-Oriented characters, and component- based software’s testing can be viewed as the continuation and extension of OO program testing. Due to lack of the detailed internal constructs and change information of the externally-developed components, system testers (i.e., component users) generally can’t perform effective testing (especially regression testing), on their component-based systems. The ultimate reason is that they are unable to select the proper test cases to retest the affected parts caused by the modifications in component. Through analyzing the drawbacks of existing regression testing techniques for component-based systems, two improved strategies are proposed: one is based on the enhanced representation of change information of component version, and the other is implemented via the component built-in test design. Preliminary experiment results show that the above two strategies of regression test case selection are fairly feasible and cost-effective in practice.
     Software testing is a practical activity combined with theory, technology, tool, and management. Among these four important facets, assistant tool for testing plays an outstanding role in software development in practice, and should not be neglected. In order to facilely perform testing on C or C++ programs, a prototype tool called CppTest is designed and implemented. It can employ three levels’testing, namely (1) structural testing in method level by analyzing program’s constructs, instrumenting probes, redirecting I/O stream, etc., (2) state-based class level testing through modeling state transition behaviors using an extended finite state machine (EFSM) from the class specifications, and (3) system level black-box testing with some traditional strategies such as equivalence partitioning and boundary-value analysis. In addition, the tool can employ clustering analysis on the failure executions and then sample fairly few representative test executions to direct program diagnosis. Multi-levels’testing capability, test project management, high automation, visualization and scalability are the remarkable merits of the prototype system.
引文
[1] 朱鸿, 金凌紫著. 软件质量保障与测试. 北京: 科学出版社, 1997. 15~95
    [2] J. M. Jazequel, B. Meyer. Put It in the Contract: The Lessons of Ariane. Computer, 1997, 30(1): 129~130
    [3] Research Triangle Institute, NIST Planning Report 02-3: The Economic Impacts of Inadequate Infrastructure for Software Testing, March 5, 2003, http://www.nist.gov/ director/progofc/report02-3.pdf
    [4] ANSI/IEEE Std 1042-1987. IEEE Guide to Software Configuration Management. New York: IEEE Press, Sept. 1988, 1042~1987
    [5] E. W. Dijkstra. Structured Programming. In: J. N. Buxton and B. Randell eds. Software Engineering Techniques. Brussels, Belgium: NATO Science Committee, 1969, 88~93
    [6] E. M. Clarke, O. Grumberg, D. Peled. Model Checking. Cambridge, MA: The MIT Press, 1999.
    [7] 单锦辉, 姜瑛, 孙萍. 软件测试研究进展. 北京大学学报(自然科学版), 2005, 41(1): 134~145
    [8] M. Brooks. Determining Correctness by Testing. [Ph D dissertation], Stanford, CA: Stanford University, 1980.
    [9] J. B. Goodenough, S. L. Gerhart. Toward a Theory of Test Data Selection. IEEE Transactions on Software Engineering, 1975, 23(6): 156~173
    [10] E. J. Weyuker. The Evaluation of Program-based Software Test Data Aadequacy Criteria. Communications of the ACM, 1988, 31(6): 668~675
    [11] D. E. Perry, G. E. Kaiser. Adequate Testing and Object-Oriented Programming. Journal of Object-Oriented Programming, 1990, 2(5): 13~19
    [12] M. D. Smith, D. J. Robson. Object-Oriented Programming -- The Problems of Validation. In: Proc. of the 6th Int'l Conf. on Software Maintenance (ICSM'90). San Diego, CA, USA. Nov 26-29, 1990. Los Alamitos, CA: IEEE Computer Society Press, 1990. 272~281
    [13] N. Wilde, R. Huitt. Maintenance Support for Object-Oriented Programs. IEEE Trans. on Software Eng., 1992, 18(12): 1038~1044
    [14] D. Kung, J. Gao, P. Hsia, and et al. Developing an Object-Oriented Software Testing and Maintenance Environment. Communications of the ACM, 1995, 38(10): 75~87
    [15] M. D. Smith, D. J. Robson. A Framework for Testing Object-Oriented Programs. Journal of Object-Oriented Programming, 1992, 5(3): 45~53
    [16] Parrish, S. Allen, B. B. Richard, and et al. Automated Flow Graph-based Testing of Object-Oriented Software Modules. Journal of Systems and Software, 1993, 23(2): 95~109
    [17] M. J. Harrold, G. Rothermel. Performing Data Flow Testing on Classes. In: D. S. Wile ed. Proc. of the 2nd ACM SIGSOFT Symp. on Foundations of Software Engineering (FSE). New Orleans, Louisiana, USA. Dec 6-9, 1994. New York: ACM Press, 1994. 154~163
    [18] B. Y. Tsai, S. Stobart, N. Parrington. Employing Data Flow Testing on Object-Oriented Classes. IEE Proc. of Software, 2001, 148(2): 56~64
    [19] C. D. Turner, D. J. Robson. The State-based Testing of Object-oriented Programs. In: D. N. Card ed. Proc. of ICSM'93. Montréal, Quebec, Canada. Sept 1993. Los Alamitos, CA: IEEE Computer Society Press, 1993. 302~310
    [20] D. Kung, N. Suchak, J. Gao, and et al. On Object State Testing. In: D. H. Bae ed. Proc. of the IEEE 18th Annual Int'l Computer Software and Applications Conference (COMPSAC'94). Taipei. Nov 9-11, 1994. Los Alamitos, CA: IEEE Computer Society Press, 1994. 222~227
    [21] D. Hoffman, P. Strooper. ClassBench: A Framework for Automated Class Testing. Software Practice and Experience, 1997, 27(5): 573~597
    [22] 李留英, 王戟, 齐治昌. UML statecharts 的测试用例生成方法. 计算机研究与发展, 2001, 38(6): 691~697
    [23] O. Bosman, H. Schmidt. Object Test Coverage using Finite State Machines. Australian National University, Technical Report, TR-CS-95-06, Sept. 1995.
    [24] C. J. Wang, M. T. Liu. Generating Test Cases for EFSM with Given Fault Model, In: Proc. of IEEE Conf. on Computer Communications (INFOCOM'93). San Francisco,CA, USA. Mar 28 - Apr 1, 1993. Los Alamitos, CA: IEEE Computer Society Press, 1993. 774~781
    [25] A. Gargantini, E. Riccobene. ASM-based Testing: Coverage Criteria and Automatic Test Sequence Generation. Journal of Universal Computer Science, 2001, 7(11): 1050~1067
    [26] H. S. Hong, Y. R. Kwon, S. D. Cha. Testing of Object-Oriented Programs Based on Finite State Machines. In: R. S. Sipple ed. Proc. of the 2nd Asia-Pacific Software Engineering Conference (APSEC'95). Brisbane, Queensland, Australia. Dec 6-9, 1995. Los Alamitos, CA: IEEE Computer Society Press, 1995. 234~241
    [27] R. K. Doong, P. G. Frankl. The ASTOOT Approach to Testing Object-Oriented Programs. ACM Trans. on Software Eng. and Meth., 1994, 3(2): 101~130
    [28] T. H. Tse, F.T. Chan, H.Y. Chen. An Axiom-based Test Case Selection Strategy for Object-Oriented Programs. Software Quality and Productivity, 1994, 107~114
    [29] 兰毓华, 毛法尧, 曹化工. 基于 Z 规格说明的软件测试用例自动生成. 计算机学报, 1999, 22(9): 963~969
    [30] J. McDonald, P. Strooper, D.Hoffman. Tool Support for Generating Passive C++ Test Oracles from Object-Z Specifications. In: D. Azada ed. Proc. of APSEC'03. Chiang Mai, Thailand. Dec 10-12, 2003. Los Alamitos, CA: IEEE Computer Society Press, 2003. 322~331
    [31] H. Kim, C. Wu. A Class Testing Technique Based on Data Bindings. In: R. S. Sipple ed. Proc. of APSEC'96. Seoul, Korea. Dec 4-7, 1996. Los Alamitos, CA: IEEE Computer Society Press, 1996. 104~109
    [32] I. S. Chung, M. Munro, W. K. Lee, and et al. Applying Conventional Testing Techniques for Class Testing. In: P. Storms ed. Proc. of COMPSAC'96, Seoul, Korea. Aug 19-23, 1996. Los Alamitos, CA: IEEE Computer Society Press, 1996. 447~454
    [33] S. Beydeda, V. Gruhn. Integration White- and Black-box Techniques for Class-level Regression Testing. In: Proc. of the 4th IASTED Int'l Conf. on Software Engineering and Applications (SEA 2000). Las Vegas, USA. Nov. 06-09, 2000. Calgary, Canada: ACTA Press, 2000. 23~28
    [34] M. J. Harrold, J. D. McGregor, K. J. Fitzpatrick. Incremental Testing ofObject-Oriented Class Structures. In: T. Montgomery ed. Proc. of 14th Int'l Conf. on Software Engineering (ICSE'92). Melbourne, Australia. May 11-15, 1992. New York: ACM Press, 1992. 68~80
    [35] D. Kung, J. Gao, P. Hsia, and et al. On Regression Testing of Object-Oriented Programs. Journal of Systems and Software, 1996, 32(1): 21~40
    [36] Jiun-Liang Chen, Feng-Jian Wang. Flow Analysis of Class Relationships for Object-Oriented Programs. Journals of Information Science and Engineering, 2000, 16: 619~647
    [37] H. Y. Chen, T. H. Tse, F. T. Chan, and et al. In Black and White: An Integrated Approach to Class Level Testing of Object-Oriented Programs, ACM Trans. on Software Eng. and Meth., 1998, 7(3): 250~295
    [38] H. Y. Chen, T. H. Tse, T. Y. Chen. TACCLE: A Methodology for Object-Oriented Software Testing at the Class and Cluster Levels. ACM Trans. on Software Eng. and Meth., 2001, 10(1): 56~109
    [39] R. Bodik, R. Gupta, M. L. Soffa. Refining Data Flow Information using Infeasible Paths. In: M. Jazayeri and H. Schauer eds. Proc. of FSE'97, Lecture Notes in Computer Science, vol. 1999. Zurich, Switzerland. Sept 22-25, 1997. Berlin: Springer-Verlag, 1997. 361~377
    [40] S. Sinha, M. J. Harrold, G. Rothermal. Interprocedural Control Dependence. ACM Trans. on Software Eng. and Meth., 2000, 10(2): 1~38
    [41] V. Martena, A. Orso, M. Pezze. Interclass Testing of Object Oriented Software. In: D. C. Martin ed. Proc. of the 8th IEEE Int'l Conf. on Engineering of Complex Computer Systems (ICECCS'02). Greenbelt, MD, USA. Dec 2-4, 2002. Los Alamitos, CA: IEEE Computer Society Press, 2002. 135~144
    [42] Y. Kim, C. R. Carlson. Scenario Based Integration Testing for Object-Oriented Software Development. In: Proc. of the 8th Asian Test Symposium (ATS'99). Shanghai, China. Nov 16-18, 1999. Los Alamitos, CA: IEEE Computer Society Press, 1999. 283~288
    [43] Y. L. Traon, T. Jeron, J. M. Jezequel, and et al. Efficient Object-Oriented Integration and Regression Testing. IEEE Trans. on Reliability, 2000, 49(1): 12~25
    [44] I. Forgacs, A. Hajnal, E. Takacs. Regression Slicing and Its Use in RegressionTesting. In: K. Kelly ed. Proc. of COMPSAC'98. Vienna, Austria. Aug 19-21, 1998. Los Alamitos, CA: IEEE Computer Society Press, 1998. 464~469
    [45] D. Kung, J. Gao, P. Hsia, and et al. Change Impact Identification in Object Oriented Software Maintenance. In: Proc. of ICSM'94. Victoria, CA. Sept 19-23, 1994. Los Alamitos, CA: IEEE Computer Society Press, 1994. 202~211
    [46] G. Rothermel, M. J. Harrold. Selecting Regression Tests for Object-Oriented Software. In: Proc. of ICSM'94. Victoria, CA. Sept 19-23, 1994. Los Alamitos, CA: IEEE Computer Society Press, 1994. 14~25
    [47] P. Hsia, X. Li, D. C. Kung, and et al. A Technique for the Selective Revalidation of OO Software. Journal of Software Maintenance: Research and Practice, 1997, 9(4): 217~233
    [48] B. Korel, L. H. Tahat, B. Vaysburg. Model Based Regression Test Reduction using Dependence Analysis. In: B. Werner ed. Proc. of ICSM'02. Montreal, Quebec, Canada. Oct 3-6, 2002. Los Alamitos, CA: IEEE Computer Society Press, 2002. 214~223
    [49] L. C. Briand, Y. Labiche, G. Soccar. Automating Impact Analysis and Regression Test Selection Based on UML Designs. In: B. Werner ed. Proc. of ICSM'02. Montreal, Quebec, Canada. Oct 3-6, 2002. Los Alamitos, CA: IEEE Computer Society Press, 2002. 252~261
    [50] R. T. Alexander, A. J. Offutt. Analysis Techniques for Testing Polymorphic Relationships. In: D. Firesmith, R. Riehle, G. Pour, and et al. eds. Proc. of Technology of Object-Oriented Languages and Systems (TOOLS). Santa Barbara, California. Aug 1-5, 1999. Los Alamitos, CA: IEEE Computer Society Press, 1999. 104~114
    [51] Z. J. Jin, A. J. Offutt. Coupling-based Criteria for Integration Testing. The Journal of Software Testing, Verification, and Reliability, 1998, 8(3): 133~154
    [52] S. Sinha, M. J. Harrold. Analysis and Testing of Programs with Exception Hhandling Constructs. IEEE Trans. on Software Eng., 2000, 26(9): 849~871
    [53] J. W. Jo, B. M. Chang. Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow. In: A. Laganà, M. L. Gavrilova, and V Kumar eds. Proc. of Int'l Conf. on Computational Science and Its Applications (ICCSA2004), LNCS 3043. Assisi, Italy. May 14-17, 2004. Berlin: Springer-Verlag, 2004. 106~113
    [54] A. M. Memon, M. E. Pollack, M. L. Sofia. Using a Goal-driven Approach to Generate Test Cases for GUIs. In: B. Boehm ed. Proc. of ICSE'99. Los Angeles, CA USA. May 16-22, 1999. New York: ACM Press, 1999. 257~266
    [55] M. L. Hammontree, J. J. Hendrickson, B. W. Hensley. Integrated Data Capture and Analysis Tools for Research and Testing a Graphical User Interface. In: Proc. of the Conference on Human Factors in Computing Systems, Monterey. CA, USA. May 3-7, 1992. New York: ACM Press, 1992. 431~432
    [56] R. K. Shehady, D. P. Siewiorek. A Method to Automate User Interface Testing using Variable Finite State Machines. In: P. Storms ed. Proc. of IEEE 27th Int'l Symp. Fault-Tolerant Computing (FTCS-27). June 24-27, 1997. Los Alamitos, CA: IEEE Computer Society Press, 1997. 80~88
    [57] G. Pour. Component-based Software Development Approach: New Opportunities and Challenges. In: R. Ege, M. Singh, and B. Meyer eds. Proc. of TOOLS'98. Santa Barbara, California. August 3-7, 1998. Los Alamitos, CA: IEEE Computer Society Press, 1998. 375~383
    [58] A. Bertolino, A. Polini. A Framework for Component Deployment Testing. In: A. Jacobs and F. Titsworth eds. Proc. of ICSE'03. Portland, Oregon USA. May 3-10, 2003. Los Alamitos, CA: IEEE Computer Society Press, 2003. 221~231
    [59] J. M. Zaha, M. Geisenberger, M. Groth. Compatibility Test and Adapter Generation for Interfaces of Software Components. In: R. K. Ghosh and H. Mohanty eds. Proc. of the 1st Int'l Conf. Distributed Computing and Internet Technology (ICDCIT 2004), LNCS 3347. Bhubaneswar, India. Dec. 22-24, 2004. Berlin: Springer-Verlag, 2004. 318~328
    [60] Y. Wu, J. Offutt. Maintaining Evolving Component-based Software with UML. In: D. C. Martin ed. Proc. of the 7th European Conf. on Software Maintenance and Reengineering (CSRM'03). Benevento, Italy. Mar 26-28, 2003. Los Alamitos, CA: IEEE Computer Society Press, 2003. 133~142
    [61] A. S. M. Sajeev, B. Wibowo. Regression Test Selection Based on Version Changes of Components. In: D. Azada ed. Proc. of APSEC'03. Chiang Mai, Thailand. Dec10-12, 2003. Los Alamitos, CA: IEEE Computer Society Press, 2003. 78~85
    [62] A. Orso, M. J. Harrold, D. Rosenblum, and et al. Using Component Metacontent to Support the Regression Testing of Component-based Software. In: B. Werner ed. Proc. of ICSM'01. Nov 7-9, 2001. Florence, Italy. Los Alamitos, CA: IEEE Computer Society Press, 2001. 716~725
    [63] L. Mariani. Behavior Capture and Test for Verifying Evolving Component-based Systems. In: F. Titsworth ed. Proc. of ICSE'04. Edinburgh, UK. May 23-28, 2004. Los Alamitos, CA: IEEE Computer Society Press, 2004. 78~80
    [64] M. J. Harrold. Testing: A Roadmap. In: A. Finkelstein ed. Proc. of the Future of Software Engineering (Special Volume of the Proc. of ICSE). Limerick, Ireland. June 4-11, 2000. New York: ACM Press, 2000. 63~72
    [65] Y. Labiche, P. Thevenod-Fosse, H. Waeselynck, and et al. Testing Levels for Object-Oriented Software. In: C. Ghezzi, M. Jazayeri and A. L. Wolf eds. Proc. of ICSE'00. Limerick, Ireland. June 4-11, 2000. New York: ACM Press, 2000. 136~145
    [66] I. S. Alkadi, D. L. Carver. A Testing Assistant for Object-Oriented Programs. In: R. P. Wright ed. Proc. of IEEE Aerospace Conference (Volume 4). Mar 21-28, 1998. Los Alamitos, CA: IEEE Computer Society Press, 1998. 149~158
    [67] Software Testing Online Resources (STORM), http://www.mtsu.edu/~storm/
    [68] Liang Shi, Baowen Xu, Lin Chen, Xiaoyu Zhou, SQAS: A Platform for Software Analysis and Testing, Journal of Electronics & Computer Science, 2005, 7(1): 37~46
    [69] 裴玉, 徐启文, 李宣东, 郑国梁. QRDChecker: 一个 QRDC 模型检验工具. 软件学报, 2005, 16(3): 355~364
    [70] 陈振强. 基于依赖性分析的程序切片技术研究: [博士学位论文]. 保存地点: 东南大学图书馆, 2003.
    [71] 李必信, 刘小东, 郑滔, 李宣东, 郑国梁. 一种面向对象程序的分层切片方法. 软件学报, 2001, 12(12): 1810~1817
    [72] 肖庆, 万琳, 宫云战. 结构测试中的路径产生. 计算机工程, 2003(2): 115~117
    [73] Kai-Yuan Cai, T. Y. Chen, Yong-Chao Li, and et al. Adaptive testing of software components. In: H. Haddad, L. M. Liebrock, A. Omicini, and et al. eds. Proc. of the ACM Symp. on Applied Computing (SAC'05). Santa Fe, New Mexico, USA. Mar13-17, 2005. New York: ACM Press, 2005. 1463~1469
    [74] Kai-Yuan Cai, T. Y. Chen, T. H. Tse. Towards Research on Software Cybernetics. In: A. Jacobs ed. Proc. of the 7th IEEE Int'l Symp. on High Assurance Systems Engineering (HASE'02). Tokyo, Japan. Oct 23-25, 2002. Los Alamitos, CA: IEEE Computer Society Press, 2002. 240~242
    [75] 张涌, 钱乐秋, 王渊峰. 基于扩展有限状态机测试中测试输入数据自动选取的研究. 计算机学报, 2003, 26(10): 1295~1030
    [76] J. H. Shan, J. Wang, Z. C. Qi, J. P. Wu. Improved Method to Generated Path-wise Test Data. Journal of Computer Science and Technology, 2003, 18(2): 235~240
    [77] 赵瑞莲, 闵应骅. 一种基于规范和程序域分析的软件测试方法. 计算机研究与发展, 2003, 40(6): 846~855
    [78] 李心科, 刘宗田, 何允如. 一个面向对象软件测试工具实现及其实验研究. 小型微型计算机系统, 2002, 23(5): 592~595
    [79] 孙玉霞, 陈火炎. 面向对象软件簇级的一种动态测试工具的设计与实现. 小型微型计算机系统, 2003, 24(3): 376~379
    [80] P. C. Jorgensen, C. Erickson. Object-oriented Integration Testing. Communications of the ACM, 1994, 37(9): 30~38
    [81] J. Voas, L. Morell, K. Miller. Predicting Where Faults Can Hide from Testing. IEEE Software, 1991, 8(2): 41~48
    [82] P. C. Jorgensen. Software Testing: A Craftsman’s Approach (2nd Edition). Florida, USA: CRC Press LLC, 2002. 1~168
    [83] S. C. Ntafos. A Comparison of Some Structural Testing Strategies. IEEE Trans. on Software Eng., 1988,14(6): 868~874
    [84] D. F. Yates, N. Malevris. Reducing the Effects of Infeasible Paths in Branch Testing. ACM SIGSOFT Soft. Eng. Notes, 1989,14(8): 48~54
    [85] A. Bertolino, R. Mirandola, E. Peciola. A Case Study in Branch Testing Automation. Journal of Systems and Software, 1997, 38(1): 47~59
    [86] P. Malacaria, C. Hankin. A New Approach to Control Flow Analysis. In: K. Koskimies ed. Proc. of the 7th Int'l Conf. on Compiler Construction (CC'98), LNCS1575. Amsterdam, NL. Mar 22-28, 1999. Berlin: Springer-Verlag, 1999. 95~108
    [87] H. R. Nielson, F. Nielson. Flow Logic: A Multi-paradigmatic Approach to Static Analysis. In: T. E. Mogensen, D.A. Schmidt and I. H. Sudborough eds. The Essence of Computation, Complexity, Analysis, Transformation, LNCS 2566. Berlin: Springer-Verlag, 2000. 223~244
    [88] W. A. Landi, B. G. Ryder. A Safe Approximate Algorithm for Interprocedural Pointer Aliasing. ACM SIGPLAN Notices, 2004, 39(4): 473~489
    [89] Chengying Mao, Yansheng Lu. Improving the Robustness and Reliability of Object-Oriented Programs through Exception Analysis and Testing. In: S. Kawada ed. Proc. of ICECCS'05. Shanghai, China. June 16-20, 2005. Los Alamitos, CA: IEEE Computer Society Press, 2005. 432~439
    [90] A. Bertolino, M. Marré. Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs. IEEE Trans. on Software Eng., 1994, 20(12): 885~899
    [91] J. Ferrante, K. J. Ottenstein, J. D. Warren. The Program Dependence Graph and Its Use in Optimization. ACM Trans. Program. Lang. Syst. 1987, 9(3): 319~349
    [92] A. Podgurski, L.A. Clarke. A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance. IEEE Trans. on Software Eng. 1990, 16(9): 965~979
    [93] G. Bilardi, K. Pingali. A Framework for Generalized Control Dependence. ACM SIGPLAN Notices, 1996, 31(5): 291~300
    [94] S. Sinha, M. J. Harrold, G. Rothermel. Interprocedural Control Dependence. ACM Trans. on Soft. Eng. and Meth. 2001, 10(2): 209~254
    [95] P. W. Purdom, E.F. Moore. Algorithm 430: Immediate Predominators in a Directed Graph. Communications of the ACM, 1972, 15(8): 777~778
    [96] T. Lengauer, R. E. Tarjan. A Fast Algorithm for Finding Dominators in a Flowgraph. ACM Trans. on Programming Language and Systems, 1979, 1(1): 121~141
    [97] F. Tip. A Survey of Program Slicing Techniques. Journal of Programming Languages, 1995, 3(3): 121~189
    [98] Baowen Xu, Ju Qian, Xiaofang Zhang, et al. A Brief Survey Of Program Slicing, ACM SIGSOFT Software Engineering Notes, 2005, 30(2): 1~36
    [99] Hong Zhu. A Formal Analysis of the Subsume Relation between Software Test Adequacy Criteria. IEEE Trans. on Software Eng., 1996, 22(4): 248~255
    [100] D. Binkley. Reducing the Cost of Regression Testing by Semantics Guided Test Case Selection. In: Proc. of ICSM'95. Oct 17-20, 1995. Opio (Nice), France. Los Alamitos, CA: IEEE Computer Society Press, 1995. 251~260
    [101] D. F. Yates, N Malevris. Reducing the Effects of Infeasible Paths in Branch Testing. ACM SIGSOFT Software Engineering Notes, 1989, 14(8): 48~54
    [102] E. J. Weyuker. The Applicability of Program Schema Results to Programs. International Journal of Computer Information Science, 1979, 8(5): 387~403
    [103] 单锦辉, 王戟, 齐治昌. 面向路径的测试数据自动生成方法述评. 电子学报, 2004, 32(1): 109~113
    [104] T. Y. Chen, T. H. Tse, Z. Q. Zhou. Fault-based Testing without the Need of Oracles. Information and Software Technology, 2003, 45(1): 1~9
    [105] J. Zhang, X. Wang. A Constraint Solver and Its Application to Path Feasibility Analysis. International Journal of Software Engineering & Knowledge Engineering, 2001, 11(2): 139~156
    [106] 王志言, 刘椿年. 区间算术在软件测试中的应用. 软件学报, 1998, 9(6): 438~443
    [107] N. Gupta, A. P. Mathur, M. L. Soffa. Automated Test Data Generation using an Iterative Relaxation Method. ACM SIGSOFT Software Engineering Notes, 1998, 23(6): 231~244
    [108] P. McMinn. Search-based Software Test Data Generation: A Survey. Software Testing, Verification and Reliability, 2004, 14(2): 105~156
    [109] P. Chevalley, P. Thévenod-Fosse. Automated Generation of Statistical Test Cases from UML State Diagrams. In: A. D. Williams ed. Proc. of COMPSAC'01. Chicago, IL, USA. Oct 8-12, 2001. CA: IEEE Computer Society Press, 2001. 205~214
    [110] P. Thévenod-Fosse, H. Waeselynck, Y. Crouzet. An Experimental Study on Software Structural Testing: Deterministic versus Random Input Generation. In: Proc. of FTCS-21. Montreal, Canada. June 25-27, 1991. Los Alamitos, CA: IEEE Computer Society Press, 1991. 410~417
    [111] 赵瑞莲. 软件测试方法研究: [博士学位论文]. 保存地点: 中国科学院计算技术研究所, 2001.
    [112] E. J. Weyuker. Axiomatizing Software Test Data Adequacy. IEEE Trans. on Software Eng., 1986, 12(12): 1128~1138
    [113] B. Y. Tsai, S. Stobart, N. Parrington, et al. Automated Class Testing using Threaded Multi-way Trees to Represent the Behavior of State Machines. Annals of Software Engineering, 1999, 8: 203~221
    [114] G. Rothermel, R. H. Untch, C. Chu, et al. Prioritizing Test Cases For Regression Testing. IEEE Trans. on Software Eng., 2001, 27(10): 929~948
    [115] C. D. Yang, L. L. Pollock. Towards a Structural Load Testing Tool. ACM SIGSOFT Software Engineering Notes, 1996, 21(3): 201~208
    [116] H. Agrawal, R. DeMillo, R. Hathaway, et al. Design of Mutant Operators for the C Programming Language. Technical Report SERC-TR-41-P, Software Engineering Research Center, Purdue University, 1989.
    [117] S. W. Kim, J. A. Clark, J. A. McDermid. Investigating the Effectiveness of Object-Oriented Testing Strategies Using the Mutation Method. Software Testing, Verification and Reliability, 2001, 11(4): 207~225
    [118] H. Y. Chen, T. H. Tse, Y. Y. Deng. ROCS: An Object-Oriented Class-level Testing System Based on the Relevant Observable Contexts Technique, Information and Software technology, 2000, 42(10): 677~686
    [119] S. Beydeda, V. Gruhn, M. Stachorski. A Graphical Class Representation for Integrated Black- and White-Box Testing. In: B. Werner ed. Proc. of ICSM'01. Nov 7-9, 2001. Florence, Italy. Los Alamitos, CA: IEEE Computer Society Press, 2001. 706~715
    [120] L. C. Briand, Y. Labiche, Y. Wang. Toward a Comprehensive and Systematic Methodology for Class Integration Testing. Carleton University, TR SCE-03-02, March 2003. 1~74
    [121] Cheng-ying Mao, Yan-sheng Lu. Testing and Evaluation for Web Usability Based on Extended Markov Chain Model. Wuhan University Journal of Natural Sciences, 2004, 9(5): 687~693
    [122] D. Kung, J. Gao, P. Hsia, et al. Class Firewall, Test Order, and Regression Testing ofObject-oriented Programs. Journal of Object-Oriented Programming, 1995, 8(2):51~65
    [123] K. C. Tai, F. J. Daniels. Test Order for Inter-class Integration Testing of Object- oriented Software. In: P. Storms ed. Proc. of COMPSAC'97. Washington, D. C. Aug 13-15 1997. Los Alamitos, CA: IEEE Computer Society Press, 1997. 602~607
    [124] L. C. Briand, Y. Labiche, Yihong Wang. Revisiting Strategies for Ordering Class Integration Testing in the Presence of Dependency Cycles. In: F. M. Titsworth ed. Proc. of the 12th Int'l Symp. on Software Reliability Engineering (ISSRE 2001). HK, China. Nov, 27-30 2001. CA: IEEE Computer Society Press, 2001. 287~296
    [125] 杨芙清, 梅宏, 李克勤. 软件复用与软件构件技术. 电子学报, 1999, 27(2): 68~75
    [126] 杨芙清. 软件工程技术发展思索. 软件学报, 2005, 16(1): 1~7
    [127] Y. Pan, D. Pan, M. H. Chen. Slicing Component-based Systems. In: S. Kawada ed. Proc. of ICECCS'05. Shanghai, China. June 16-20 2005. Los Alamitos, CA: IEEE Computer Society Press, 2005. 155~164
    [128] A. Orso, M. J. Harrold, D. Rosenblum. Component Metadata for Software Engineering Tasks. In: W. Emmerich and S. Tai eds. Proc. of Int'l Workshop on Engineering Distributed Objects (EDO), LNCS 1999. Davis, CA, USA. Nov 2000. Berlin: Springer-Verlag, 2001. 129~144
    [129] A. S. M. Sajeev, B. Wibowo. UML Modeling for Regression Testing of Component Based Systems. Electronic Notes in Theoretical Computer Science, 2003, 82(6): 1~9
    [130] L. Mariani, M. Pezze. A Technique for Verifying Component-based Software. Electronic Notes in Theoretical Computer Science, 2005, 116(1): 17~30
    [131] Y. Wu, D. Pan, M. H. Chen. Techniques for Testing Component-based software. In: S. F. Andler, M. G. Hinchey and J. Offutt eds. Proc. of ICECCS'01. Sk?vde, Sweden. June 11-13, 2001. Los Alamitos, CA: IEEE Computer Society Press, 2001. 222~232
    [132] 景涛, 白成刚, 胡庆培等. 构件软件的测试问题综述. 计算机工程与应用, 2002, 24: 1~6
    [133] S. Beydeda, V. Gruhn. State of the Art in Testing Components. In: F. Titsworth ed. Proc. of the 3rd Int'l Conf. on Quality Software (QSIC'03). Dallas, Texas, USA. Nov6-7, 2003. Los Alamitos, CA: IEEE Computer Society Press, 2003. 146~153
    [134] Y. Wu. Black-box Testing for Evolving COTS-based Software. In: A. Egyed and D. E. Perry eds. Proc. of the 1st Int'l Workshop on Incorporating COTS Software into Software Systems (IWICSS 2004), in conjunction with ICCBSS 2004. California, USA. Feb 1, 2004. Berlin: Springer-Verlag, 2004. 39~45
    [135] Extensible Markup Language (XML), http://www.w3. org/XML/, 2005
    [136] C. Liu, D. Richardson. Software Components with Retrospectors. In: D. J. Richardson, P. Inverardi and A. Bertolino eds. Proc. of Int'l Workshop on the Role of Software Architecture in Testing and Analysis (ROSATEA). Marsala, Sicily, Italy. July 17, 1998. 63~68
    [137] A. Bertolino, A. Polini. WCT: A Wrapper for Component Testing. In: N. Guelfi, E. Astesiano and G. Reggio eds. Proc. of Int'l Workshop on Scientific Engineering for Distributed Java Applications (FIDJI 2002), LNCS 2604. Luxembourg. Nov 28-29, 2002. Berlin: Springer-Verlag, 2003. 165~174
    [138] S. Beydeda. Research in Testing COTS Components-built in Testing Approaches. In: H. E. Rewini B. Minton and M. Dunham eds. Proc. of the 3rd ACS/IEEE Int'l Conf. on Computer Systems and Applications (AICCSA 2005). Cairo, Egypt. Jan 2005. Los Alamitos, CA: IEEE Computer Society Press, 2005. 101~104
    [139] 卢炎生, 查虎平, 徐丽萍. PCCM: 具有性能约束的构件模型. 计算机科学, 2004, 31(5): 89~92
    [140] T. Y. Chen, T. H. Tse, Y. T. Yu. Proportional Sampling Strategy: A Compendium and Some Insights. The Journal of Systems and Software, 2001, 58(1): 65~81
    [141] T.Y. Chen, G. Eddy, R. Merkel, and et al. Adaptive Random Testing Through Dynamic Partitioning. In: D. Azada ed. Proc. of QSIC'04. Braunschweig, Germany. Sept 8-9, 2004. Los Alamitos, CA: IEEE Computer Society Press, 2004. 79~86
    [142] J. A. Jones, M. J. Harrold, J. Stasko. Visualization of Test Information to Assist Fault Localization. In: W. Tracz ed. Proc. of ICSE'02. Orlando, Florida. May 2002. New York: ACM Press, 2002. 467~477
    [143] W. E. Wong, Y. Qi. An Execution Slice and Inter-Block Data Dependency-based Approach for Fault Localization. In: B. Werner ed. Proc. of APSEC'04. Busan,Korea. Nov 30 - Dec 3, 2004. CA: IEEE Computer Society Press, 2004. 366~373
    [144] Chengying Mao, Yansheng Lu. Extracting the Representative Failure Executions via Clustering Analysis Based on Markov Profile Model. In: X. Li, S. Wang and Z. Y. Dong eds. Proc. of the 1st Int'l Conf. on Advanced Data Mining and Applications (ADMA'05), Lecture Notes in Artificial Intelligence (LNAI), vol. 3584. Wuhan, China. July 22-24, 2005. Berlin: Springer-Verlag, 2005. 217~224
    [145] J. F. Bowring, J. M. Rehg, M. J. Harrold. Active Learning for Automatic Classification of Software Behavior. ACM SIGSOFT Software Engineering Notes, 2004, 29(4):195~205

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

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

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