Tổng kết chương 5

Một phần của tài liệu Nghiên cứu kỹ thuật phân tích khả năng kiểm thử phần mềm và mở rộng tính năng của công cụ SATAN, thử nghiệm ứng dụng trong môi trường Scicos và Simulink (Trang 148)

Trong chương này, chúng tôi trình bày phân tích tính khả kiểm thử của các hệ thống phản ứng dựa trên mô hình máy trạng thái hữu hạn. Chúng tôi đã đề xuất đánh giá độ đo tính khả kiểm thử dựa trên chuỗi Markov bằng cách bổ

138

sung thêm thông tin xác suất vào mô hình máy trạng thái hữu hạn. Chúng tôi đã áp dụng phương pháp cho ứng dụng công nghiệp B01_AUTOMATON và so sánh đo đo tính khả kiểm thử nhận được với chi phí kiểm thử yêu cầu bởi công cụ GATeL để sinh ra dữ liệu thử. Kết quả cho thấy mối tương quan giữa tính khả kiểm thử và chi phí sinh dữ liệu thử.

Nghiên cứu này chỉ mới bước đầu trong phân tích tính khả kiểm thử dựa trên mô hình máy trạng thái hữu hạn. Chúng tôi sẽ tiếp tục phát triển nghiên cứu này và áp dụng cho các hệ thống công nghiệp phức tạp hơn.

139

KT LUN

Kiểm thử và phân tích tính khả kiểm thử là những hoạt động nhằm nâng cao chất lượng phần mềm. Trong đề tài này, chúng tôi và nhóm nghiên cứu CTSYS của phòng thí nghiệm LCIS (Laboratoire de Conception et d’Intégration de Systèmes) đã cùng hợp tác nghiên cứu nhằm mở rộng tính năng của công cụ phân tích tính khả kiểm thử SATAN.

Kết qu đạt được

Trước hết, chúng tôi đã tập trung nghiên cứu tổng quan về tính khả kiểm thử phần mềm: các định nghĩa khác nhau về tính khả kiểm thử được tổng hợp và phân tích; nhiều phương pháp phân tích tính khả kiểm thử trình bày chi tiết. Chúng tôi đã tiếp nhận công cụ phân tích tính khả kiểm thử SATAN từ nhóm nghiên cứu CTSYS của phòng thí nghiệm LCIS. Trên cơ sở đó, chúng tôi đã đề xuất và cài đặt giải pháp mở rộng công cụ SATAN nhằm phân tích các thiết kế trong các môi trường SIMULINK và SCICOS. Chúng tôi cũng đã thử nghiệm phân tích tính khả kiểm thử trên các thiết kế được cung cấp bởi các đối tác doanh nghiệp trong lĩnh vực hàng không. Các kết quả thử nghiệm được các đối tác đánh giá mang lại những thông tin hữu ích cho người phát triển.

Ngoài ra, chúng tôi cũng đã đề xuất giải pháp phân tích tính khả kiểm thử cho các thiết kế dựa trên máy trạng thái hữu hạn, như STATEFLOW

140

trong SIMULINK. Giải pháp bước đầu đã được thử nghiệm trên một thiết kế máy trạng thái hữu hạn và so sánh với chi phí kiểm thử sử dụng công cụ GATeL. Kết quả thử nghiệm cho thấy giải pháp cho phép đánh giá được khó khăn khi kiểm thử.

Các kết quả nghiên cứu của đề tài đã được công bố trong các bài báo sau:

1. Nguyễn Thanh Bình, Chantal Robach, Testability Analysis Approach For Reactive Systems, International Journal of Computer Science Issues, Vol. 8, Issue 6, No 2, Nov. 2011.

2. Nguyễn Thanh Bình, Delaunay, Chantal Robach, Testability Metrics For Extended Finite State Machines, The Tenth IASTED International Conference on Software Engineering, Innsbruck, Austria, 2011.

3. Nguyễn Thanh Bình, Đặng Thiên Bình, Delaunay, Chantal Robach, Testability Analysis Integrated Into Scicos Development Environment, Proceedings of IEEE RIVF International Conference on Computing & Communication Technologies, Research, Innovation, and Vision for the Future, Hanoi , Vietnam, 2010.

4. Nguyễn Thanh Bình, Đặng Thiên Bình, Huy-Vu Do, Delaunay, Chantal Robach, Tự động phân tích tính khả kiểm thử các mô hình Simulink, Tạp Chí Khoa học và Công nghệ 6 Trường Đại học Kỹ thuật, đã phản biện và được chấp nhận xuất bản, 2011.

Trong khuôn khổ thực hiện đề tài, chúng tôi cũng đã tổ chức Hội thảo về chất lượng phần mềm. Hội thảo đã tập hợp được các nhà khoa học nghiên cứu về lĩnh vực kiểm thử, phân tích tính khả kiểm thử và chất lượng phần mềm tham gia trình bày và thảo luận về các công trình nghiên cứu.

Trong quá trình thực hiện đề tài, chúng tôi đã tham gia đào tạo 04 học viên Cao học và 01 Nghiên cứu sinh thực hiện các đề tài nghiên cứu liên quan như trong bảng sau:

141

Học viên

Nghiên cứu sinh

Đề tài Ghi chú

Trần Tất Thắng Survey on software testability Đại học Nice- Sophia

Đặng Thiên Bình Testability analysis of models SCICOS

Đại học Nice- Sophia

Trần Thị Diệu Linh Nghiên cứu phương pháp kiểm thử dựa trên biểu đồ trạng thái

Đại học Đà Nẵng

Nguyễn Phong Nghiên cứu ứng dụng công cụ SATAN để phân tích tính khả kiểm thử phần mềm cho các thiết kế trên môi trường SIMULINK

Đại học Đà Nẵng

Lê Thị Mỹ Hạnh Kiểm thử đột biến trong môi trường SIMULINK/Matlab

Nghiên cứu sinh, Đại học Đà Nẵng

Ngoài ra, trong định hướng hợp tác với nhóm nghiên cứu CTSYS của phòng thí nghiệm LCIS, chúng tôi đã cùng GS. Ioannis Parissis, trưởng nhóm nghiên cứu CTSYS thực hiện đồng hướng dẫn 02 Nghiên cứu sinh (Trịnh Công Duy và Lê Thanh Long) tại Đại học Đà Nẵng trong lĩnh vực kiểm thử phần mềm từ tháng 08/2011.

Hn chế

Bên cạnh những kết quả đạt được, kết quả nghiên cứu chỉ mới dừng lại ở việc chuyển giao và hợp tác với các doanh nghiệp tại Pháp và chỉ thử nghiệm tại một doanh nghiệp Việt Nam. Hiện nay, chưa có nhiều doanh nghiệp tại Việt Nam phát triển các hệ thống phần mềm công nghiệp, như các hệ thống điều khiển, hệ thống phản ứng… Công cụ SATAN cho phép phân tích các mô

142

hình thiết kế trong các môi trường SCADE, SIMULINK và SCICOS, tuy nhiên, công cụ chưa tính đến khả năng hoạt động theo chu kỳ của các hệ thống phản ứng. Ngoài ra, giải pháp phân tích tính khả kiểm thử các thiết kế dựa trên máy trạng thái hữu hạn chỉ mới bước đầu được đề xuất, giải pháp cần phải được thử nghiệm trên nhiều mô hình thiết kế khác nhau được cung cấp bởi giới công nghiệp.

Hướng phát trin

Trong các định hướng nghiên cứu tiếp theo, chúng tôi dự kiến:

− Tiếp tục mở rộng công cụ SATAN nhằm phân tích tính khả kiểm thử của các hệ thống hoạt động theo chu kỳ.

− Thử nghiệm giải pháp phân tích tính khả kiểm thử dựa trên máy trạng thái hữu hạn trên nhiều thiết kế khác và xây dựng công cụ hỗ trợ tựđộng giải pháp.

Ngoài ra, nhóm nghiên cứu DATIC tại Trường Đại học Bách Khoa, Đại học Đà Nẵng tiếp tục phát triển quan hệ hợp tác với nhóm nghiên cứu CTSYS của phòng thí nghiệm LCIS để thực hiện các dự án nghiên cứu liên quan đến lĩnh vực chất lượng phần mềm. Đặc biệt, hai bên phối hợp đồng hướng dẫn Nghiên cứu sinh nhằm đào tạo thêm đội ngũ cán bộ có năng lực nghiên cứu cho Trường Đại học Bách Khoa, Đại học Đà Nẵng.

143

TÀI LIU THAM KHO

[1] J. Bach, Principles of Software Testability, Technical report, ST Labs, 1994. [2] G. J. Myers, The Art of Software Testing, John Wiley & Sons, 1979.

[3] S. N. Mohanty, Models and Measurements for Quality Assessment of Software, Computing Surveys,vol. 11, no. 3, 1979.

[4] C. M. Clure and J. Martin, Software Maintenance: the Problem and its Solution, Prentice-Hall, 1986.

[5] IEEE Standard Glossary of Software Engineering Terminology, IEEE Computer Society, 1990.

[6] R. Bache and M. Müllerburg, Measures of Testability as a Basis for Quality Assurance, IEEE Software Engineering Journal, pp. 86--92, 1990.

[7] R. S. Freedman, Testability of Software Components, IEEE Transactions on Software Engineering, vol. 17, no. 6, pp. 553--564, 1991.

[8] J. M. Voas, PIE: A dynamic failure-based technique, IEEE Transactions on Software Engineering, vol. 18, no. 8, pp. 717--727, 1992.

[9] A. Petrenko, R. Dssouli, H. Koenig, On Evaluation of Testability of Protocol Structures, Proceedings of the Intenational Workshop on Protocol Test Systems (IFIP), Pau, France, 1993.

[10] J. M. Voas and K. W. Miller, Semantic Metrics for Software Testability, Journal of Systems and Software, vol. 20, no. 3, pp. 207--216, 1993.

[11] A. Bertolino, L. Strigini, On the Use of Testability Measures for Dependability Assessment, IEEE Transactions on Software Engineering, vol. 22, no. 2, pp. 97- 108, 1996.

144

[12] Yves Le Traon, Analyse conjointe logiciel/materiel de la testabilité de systèmes flot de données, Institut National Polytechnique de Grenoble, 1997.

[13] S. Jungmayr, Reviewing Software Artifacts for Testability, Proceedings of the EroSTAR'99, Barcelona, 1999.

[14] S. Jungmayr, Testability Measurement and Software Dependencies, Proceedings of 12th International Workshop on Software Measurement, Gemany, 2002.

[15] T. J. McCabe, A Complexity Measure, IEEE Transactions On Software Engineering, vol. SE-2, no. 4, pp. 308--320, 1976.

[16] B. A. Nejmeh, Npath: A complexity measure of execution path complexity and its applications, Communications of the ACM, vol. 31, no. 2, pp. 188--200, 1988. [17] McCabe, Thomas J., Watson, and Arthur H, Software complexity, CrossTalk:

Journal of Defense Software Engineering, 1994.

[18] Hwei Yin and James M. Bieman, Improving Software Testability with Assertion Insertion, Proceedings of the IEEE International Test Conference on TEST: The Next 25 Years, pp. 831-839, 1994.

[19] Jeffrey M. Voas and Keith W. Miller, Software testability: The new verification, IEEE Software, vol. 12, pp. 17-28, 1995.

[20] Mark Harman, Lin Hu and Robert Hierons, Joachim Wegener, Harmen Sthamer, Andre Baresel and Marc Roper, Testability Transformation, IEEE Transactions On Software Engineering, vol. 30, pp. 3-16, 2004.

[21] Matthias Muller, The Effect of Test-Driven Development on Program Code, 7th International Conference on Extreme Programming and Agile Processes in Software Engineering, XP 2006, Lecture Notes in Computer Science, Vol. 4044, 2006.

[22] K. Karoui, R. Dssouli, Testability Analysis of the Communication Protocols Modeled by Relations, Technical report, No. 1050, University of Montreal, 1996. [23] S. R. Chidamber, C.F. Kemerer, A Metrics Suite for Object Oriented Design, IEEE

Trans. Softw. Eng., vol. 20, No. 6, 1994.

[24] J. E. Payne, R. T. Alexander, and C. D. Hutchinson, Design-for-Testability for Object-Oriented Software, Object Magazine, Vol. 7, No. 5, pp. 34-43, 1997.

145

[25] Benoit Baudry, Yves Le Traon and Gerson Sunyé, Testability Analysis of a UML Class Diagram, In Proceedings of the Ninth International Software Metrics Symposium (METRICS03), 2003.

[26] Baudry, Benoit and Le-Traon, Measuring design testability of a UML class diagram, Information and Software Technology, 2005.

[27] Supaporn Kansomkeat, Jeff Offutt and Wanchai Rivepiboon, Increasing Class- Component Testability, Proceedings of the 23rd IASTED International Multi- Conference: Software Engineering, pages 156-161, February 2005, Innsbruck, Austria.

[28] Supaporn Kansomkeat, Jeff Offutt and Wanchai Rivepiboon, Class-component testability analysis, SEPADS'06: Proceedings of the 5th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems, 2006. [29] A. Dammak, Etude de Mesures de Testabilité de Systèmes Logiques, Université de

Paris-Sud, Centre d'Orsay, Jul, 1985.

[30] C. Robach and S. Guibert, Information Based Testability Measures, Proceedings of Silicon Design Conference, pp. 429-438, Wembley, GB, 1986.

[31] Y. Le Traon and C. Robach, From Hardware to Software Testability, International Test Conference, pp. 710--719, 1995.

[32] Do, Huy Vu and Delaunay, Michel and Robach, Chantal, Integrating testability into the development process of reactive systems, Proceedings of the 25th conference on IASTED International Multi-Conference, Innsbruck, Austria, ACTA Press, 2007. [33] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testability Analysis of Data-

Flow Software, Proceedings of the International Workshop on Test and Analysis of Component Based Systems (TACoS'04), Barcelona, Spain, March, 2004.

[34] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testing Criteria for Data Flow Software, Proceedings of the 10th Asia-Pacific Software Engineering Conference, 332--339, Chiang Mai, Thailand, December, 2003.

[35] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testing Strategies Using Accessibility for Data Flow Software, Proceedings of the 7th IASTED International Conference on Software Engineering and Applications, Marina del Rey, CA, USA, November, 2003.

146

[36] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testability Analysis and Its Application to Embedded Software, Proceedings of the International Conference on Software Quality, 351--358, Dallas, Texas, USA, November, 2003.

[37] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testability Analysis with Respect to Testing Criteria for Software Components, Proceedings of the 6th IASTED International Conference on Software Engineering and Applications, 558- -563, Cambridge, USA, November, 2002.

[38] Nguyen Thanh Binh, M. Delaunay and C. Robach, Testability Analysis For Software Components, Proceedings of the IEEE International Conference on Software Maintenance, 422--429, Montréal, Canada, October, 2002.

[39] C. Robach, H.V. Do, M. Delaunay, Analyse des complexité des architectures de logiciels, Rapport technique, no. E/SCS-2001-1273-A, LCIS, 2002.

[40] Stephen L. Campbell, Jean-Philippe Chancelier, Ramine Nikoukhah, Modeling and Simulation in Scilab/Scicos, Springer, 2006.

[41] http://www.scilab.org [42] http://www.scicos.org

[43] Nguyễn Phùng Quang, Matlab & Simulink dành cho kỹ sư điều khiển tự động, NXB Khoa học và kỹ thuật, 2005.

[44] http://www.mathworks.com/products/simulink

[45] Steven T. Karris, Introduction to Simulink with engineering applications, NXB Orchard Publications, 2006.

[46] Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D., The synchronous data flow programing language LUSTRE, Proceedings of the IEEE, 79(9), 1991.

[47] F. Maraninchi and Y. Rémond, Mode-automata: a new domain-specific construct for the development of safe critical systems, Science of Computer Programming, 46(3), pp. 219-254, 2003.

[48] http://www.esterel-technologies.com

[49] S. Naik and P. Tripathy, Software Testing and QualityAssurance: Theory and Practice, Wiley, 2008.

[50] K. Androutsopoulos, D. Clark, M. Harman, L. Zheng, and L. Tratt, Control dependence for extended finite state machines, In Proceedings of the 12th

147

International Conference on Fundamental Approaches to Software Engineering, 2009.

[51] J. Tretmans, Conformance testing with labelled transition systems: implementation relations and test generation, Comput. Netw. ISDN Syst., 29(1):49-79, 1996.

[52] D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming, 8:231-274, 1987.

[53] H. Hong, Y. Kim, S. Cha, D. and Bae, A test sequence selection method for statecharts, Journal Softw. Test. Verif. Reliab. STVR, 10(4), 2000.

[54] A. Wasowski, Flattening statecharts without explosions, In Proc. ACM SIGPLAN of Languages, Compilers, and Tools for Embedded Systems, 2004.

[55] J. Offutt, S. Liu, A. Abdurazik, P. Ammann, Generating test data from state-based specifications, Journal of Software Testing, Verification and Reliability, 13, 2003. [56] M. Utting, B. Legeard, Practical Model-Based Testing: A Tools Approach,

Morgan-Kaufmann, 2007.

[57] F. Belli, A. Hollmann, Test generation and minimization with basic statecharts, In Proceedings of the 2008 ACM symposium on Applied computing, 2008.

[58] C. Junke, Critères de tests pour les automates de modes et application au langage scade 6, 10es Journées Francophones Internationales sur les Approches Formelles dans l'Assistance au Développement de Logiciels, 2010.

[59] J.A. Whittaker, J.H. Poore, Markov analysis of software specifications, ACM Trans. Softw. Eng. Methodol., 2(1), 1993.

[60] K.D. Sayre, Improved Techniques for Software Testing Based on Markov Chain Usage Models, Phd thesis, The University of Tennessee, Knoxville, 1999.

[61] S.J. Prowell, Using markov chain usage models to test complex systems, In Proceedings of the 38th Annual Hawaii International Conference on System Sciences, 2005.

[62] J. Tian, Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement, Wiley-IEEE Computer Society Press, 2005.

[63] H. Walton Gwendolyn, J.H. Poore and C.J. Trammell, Statistical testing of software based on a usage model, Softw. Pract. Exper., 25(1), 1995.

[64] B. Marre and A. Arnould, Test sequences generation from luster descriptions: Gatel, 15th IEEE Int. Conf. on Automated Software Engineering, 2000.

148

PH LC I

Ngôn ng MacDot

1 Gii thiu

MacDot là ngôn ngữ được định nghĩa dựa trên ngôn ngữ DOT1. Ngôn ngữ MacDot được sử

dụng đểđịnh nghĩa các đầu vào của SATAN, cụ thể là sơđồ luồng dữ liệu hay mạng các toán tử. Như thế, mỗi sơđồ luồng dữ liệu được mô tả bởi một đồ thị.

1.1 Khái niệm toplevel

Khái niệm toplevel được sử dụng để mô tả mức cao nhất của một hệ thống cấu trúc có thứ bậc. Một hệ thống cấu trúc có thứ bậc có thể được mô tả bởi nhiều lớp, mỗi lớp được biểu diễn bởi một hoặc nhiều nút. Lớp cao nhất chỉ có một nút, được biểu diễn bởi toplevel.

Ví dụ, trong hình vẽ dưới, minh họa một sơ đồ luồng điều khiển cấu trúc có thức bậc của hệ

thống root_elevator và đồ thị biểu diễn tương ứng.

Hình I.1. Sơ đồ luồng dữ liệu hệ thống root_elevator và đồ thị tương ứng

Trong ví dụ này, nút root_evevator là nút biểu diễn lớp cao nhất, nút toplevel; nút elevator thuộc lớp thứ 2 và các nút and_iiior_iii thuộc lớp thứ 3.

1.2 Các tệp lưu trữ

Một tệp tên toplevelđược tạo ra để lưu trữ nút toplevel. Một tập hợp các tệp .dotđược tạo ra, mỗi tệp chứa mô tả một nút (hệ thống hay hệ thống con) tương ứng. Tên tệp .dot tương ứng với tên nút. Một tệp .inmac chứa các định nghĩa kiểu do người sử dụng định nghĩa được tạo ra.

1 Ngôn ngữ dùng để mô tả các đồ thị.

149

Xét ví dụ trong Hình I.1, nút root_elevatorđược xem là toplevel. Các tệp sau được tạo ra:

- Tệp toplevel chứa root_elevator.

- Tệp root_elevator.dot chứa nút hay hệ thống root_elevator.

- Tệp root_elevator_047elevator.dot chứa nút hay hệ thống con elevator.

- Tệp root_elevator_047elevator_047or_iii.dot chứa nút hay hệ thống con or_iii.

- Tệp root_elevator_047elevator_047and_iii.dot chứa nút hay hệ thống con and_iii.

2 Cú pháp ngôn ng MacDot

2.1 Mô tả tiên đề

Cú pháp

MaCDOT :

t_DIGRAPH t_CHAINE_DE_CARACTERES t_ACCOLADE_GAUCHE description_du_systeme_a_analyser

suite_de_definitions_noeuds_et_arcs t_ACCOLADE_DROITE

;

Ngữ nghĩa

MacDOT mô tảđồ thị có hướng gồm nút chính và các nút cn của nó. Tên của đồ thị là chuỗi ký tự biểu diễn tên của nút chính. Mỗi toán tử, hộp đen, đầu vào, đầu ra, biến toàn cục, hằng sốđều

Một phần của tài liệu Nghiên cứu kỹ thuật phân tích khả năng kiểm thử phần mềm và mở rộng tính năng của công cụ SATAN, thử nghiệm ứng dụng trong môi trường Scicos và Simulink (Trang 148)

Tải bản đầy đủ (PDF)

(200 trang)