Chương 1: Tổng quan về đề tài – giới thiệu tổng quan về TMA và dự án Control Manager cùng các báo cáo về tình hình kiểm thử tại nhóm Control Manager, mục tiêu nghiên cứu, nội dung và phạm vi nghiên cứu được trình bày trong chương này. Chương 2: Cơ sở lý thuyết – chương này trình bày cơ sở lý thuyết về thực trạng của quy trình phát triển và kiểm thử phần mềm hiện tại đang được sử dụng phổ biến trong lĩnh vực công nghệ phần mềm cùng các nghiên cứu liên quan đến việc nâng cao chất lượng phần mềm nói chung và kiểm thử nói riêng. Và sơ lược về quy trình đánh giá sử dụng trong bài luận văn sẽ được đề cập ở cuối chương. Chương 3: Đề xuất cải tiến và đánh giá quy trình cải tiến – trình bày chi tiết quy trình quản lý dự án của tổ chức PMI và mô hình nghiệp vụ BPMN.
Chương này cũng sẽ đề cập về quy trình kiểm thử hiện tại đang được ứng dụng tại nhóm Control Manager cùng các ưu điểm và nhược điểm được tìm thấy. Tiếp theo, sẽ trình bày về quy trình kiểm thử đề xuất và phương pháp đánh giá quy trình mới. Chương 4: Kết quả đánh giá quy trình cải tiến: trình bày các kết quả nghiên cứu về định tính và định lượng, phân tích các kết quả thu được. Chương 5: Kết luận và kiến nghị - tóm tắt nội dung nghiên cứu và kết quả đạt được, đưa ra kết luận và kiến nghị dựa trên các kết quả nghiên cứu.
Các hạn chế và hướng nghiên cứu tiếp theo cũng được đề cập trong chương này. 9 CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN Chương 2 nhằm mục đích giới thiệu tổng quan về các mô hình phát triển phần mềm phổ biến trong lĩnh vực công nghệ phần mềm hiện nay, tiếp theo là các nghiên cứu liên quan đến sự cải tiến về chất lượng phần mềm và quy trình để đánh giá quy trình kiểm thử được trình bày ở cuối chương.1 THỰC TRẠNG VỀ CÁC QUY TRÌNH PHÁT TRIỂN PHẦN MỀM VÀ KIỂM THỬ HIỆN TẠI Hiện nay, trong nền công nghiệp phần mềm đã tồn tại những mô hình phát triển phần mềm khá phổ biến như: Mô hình CMMI Mô hình Waterfall Mô hình Agile Mô hình phát triển Extreme Mô hình kiểm thử ISTQB Trong đó, mô hình CMMI và Waterfall là việc kiểm thử được thực hiện bởi một nhóm Tester độc lập sau khi các chức năng được phát triển, trước khi được chuyển giao cho khách hàng. Hoạt động này thường đưa đến kết quả là giai đoạn kiểm thử được sử dụng như một dự án đệm để bù đắp khi trễ dự án, do đó ảnh hưởng đến thời gian dành cho việc kiểm thử. Mô hình phát triển Agile và Extreme dựa theo mô hình "phát triển phần mềm test-driven".
Trong qui trình này, unit test được viết đầu tiên bởi DEV (thường là lập trình song song trong phương pháp lập trình extreme – cực biên). Ban đầu dĩ nhiên là các test này sẽ thất bại như là mong muốn của họ. Sau khi code được viết xong thì phần lớn test suite sẽ từng bước tăng lên. Test suite là các bản cập nhật liên tục các điều kiện thất bại mới và các trường hợp tiềm ẩn vừa được phát hiện thêm, và chúng được tích hợp vào test hồi qui.
Unit test thường được duy trì với công cụ chứa source code phần mềm (ví dụ như Eclipse, Jdeveloper, VS .v… Code của unit test được lưu trữ chung với code của chương trình) và được tích hợp chung với qui trình build phần mềm (với các phần test tương tác sẽ được bỏ riêng ra khỏi qui trình chấp nhận build thủ công từng phần). Mục đích cuối cùng của qui trình test này là đạt được việc triển khai liên tục, phần mềm được cập nhật có thể công bố ra công chúng thường xuyên. 10 Đối với quy trình kiểm thử ISTQB là bao gồm các best practices từ các chuyên gia phần mềm nêu ra, cung cấp các hiểu biết từ căn bản nhất của kiểm thử phần mềm cho đến chuyên sâu, định nghĩa các hoạt động cần thiết cho việc kiểm thử nhằm đảm bảo chất lượng của sản phẩm phần mềm. Mỗi quy trình phát triển phần mềm đều có những đặc tính và yêu cầu khác nhau, và phải được sử dụng cho mỗi sản phẩm phần mềm tương ứng với từng thời kỳ phát triển.
Trong đó, kiểm thử phần mềm được xem như là một phần của quy trình phát triển phần mềm, có ảnh hưởng đến thời gian hoàn thành sản phẩm như làm dừng, làm chậm quá trình chuyển giao phần mềm cho khách hàng trong trường hợp các tiêu chí chất lượng chưa được đảm bảo. Như vậy, với mỗi quy trình phát triển phần mềm cần đảm bảo một quy trình kiểm thử tương ứng nhằm giảm thiểu rủi ro về các vấn đề gặp phải trong suốt quá trình hoạt động và đóng góp vào việc đảm bảo chất lượng của sản phẩm khi đến tay người sử dụng.2 CÁC NGHIÊN CỨU LIÊN QUAN Theo Joachim Wegener [17], việc nâng cao hiệu quả và chất lượng kiểm thử trong lĩnh vực phát triển hệ thống nhúng được bắt nguồn từ yêu cầu an toàn của các thành phần điện tử được sử dụng trong các hệ thống nhúng, ví dụ như Công nghệ vũ trụ, Công nghệ đường sắt và xe máy, Quy trình và công nghệ tự động hóa, Công nghệ truyền thông, cũng như trong điện tử quốc phòng. Khi có sự xuất hiện của sự cố/lỗi trong các hệ thống này sẽ gây thiệt hại lớn đến con người hoặc gây nên tổn thất lớn về chi phí. Chính vì vậy, việc phát triển các hệ thống nhúng này cần phải tuân theo các yêu cầu và tiêu chuẩn chất lượng cao nhất.
Và sự đảm bảo chất lượng phân tích là điều quan trọng hàng đầu để đạt được sự phát triển chất lượng cao của các hệ thống nhúng. Theo bài nghiên cứu, trong thực tế, biện pháp kiểm tra chất lượng phân tích quan trọng nhất là kiểm thử động và việc kiểm tra kỹ lưỡng các hệ thống đã phát triển là cần thiết cho chất lượng sản phẩm. Mục đích của việc kiểm tra là phát hiện các lỗi trong hệ thống đang được thử nghiệm và mang lại sự tin cậy đối với các hoạt động của hệ thống và không có sai sót trong quá trình kiểm thử. Và để nâng cao sự hiệu quả của kiểm thử và để giảm chi phí tổng thể cho các hệ thống nhúng, một chiến lược kiểm thử cần mang tính hệ thống và có khả năng tự động hoá.
Và kiểm thử cải tiến được ứng dụng để kiểm tra hành vi tạm thời của các hệ thống, có thể được dùng để tạo các trường hợp kiểm thử cho kiểm thử cấu trúc và cho phép tự động hoá kiểm thử an toàn. Để thực hiện kiểm thử cải tiến, việc thiết kế trường hợp thử nghiệm phải được chuyển thành một vấn đề tối ưu hóa mà lần lượt được giải quyết bằng các kỹ thuật tìm kiếm meta-heuristic. Kiểm thử cải tiến dựa trên ý tưởng tìm kiếm 11 các trường hợp thử nghiệm có liên quan trong vùng giá trị đầu vào của hệ thống được thử nghiệm với sự trợ giúp của thuật toán tiến hóa. Kiểm thử cải tiến cho phép hoàn chỉnh thiết kế trường hợp thử nghiệm một cách tự động.
Nhờ sự tự động hoá đầy đủ của kiểm thử cải tiến, mức độ hiệu quả của quá trình kiểm tra có thể được cải thiện rõ ràng hơn trong tất cả các lĩnh vực ứng dụng. Hệ thống có thể được kiểm tra với một số lượng lớn các tình huống đầu vào khác nhau để kiểm tra hành vi tạm thời và các kiểm tra an toàn. Trong hầu hết các trường hợp, hơn một vài nghìn dữ liệu thử nghiệm được tạo ra và thực thi trong vòng vài phút. Các kiểm thử cải tiến sẽ góp phần cải thiện chất lượng cũng như giảm chi phí phát triển cho các hệ thống nhúng.
Bài nghiên cứu nêu ra các thuật toán cải tiến trong kiểm thử, đó là các kỹ thuật tìm kiếm thích nghi. Và kết quả đạt được khẳng định kiểm thử cải tiến là một cách tiếp cận đầy hứa hẹn để tự động hoá thiết kế các trường hợp kiểm thử cho các phương pháp và mục tiêu kiểm thử khác nhau. Và để nâng cao tính hiệu quả của kiểm thử và cũng để giảm tổng chi phí phát triển của một hệ thống, thì đòi hỏi phải có tính hệ thống và khả năng tự động hoá. Theo Maria Khalid [18], chất lượng của một sản phẩm phụ thuộc vào mức độ hài lòng của khách hàng và chất lượng đó được đánh giá thông qua các tiêu chuẩn đã được quy định sẵn.
Và bài nghiên cứu này là một tổng hợp về các tiêu chuẩn được tuân theo trong lĩnh vực công nghệ thông tin để đảm bảo chất lượng sản phẩm phần mềm tương ứng. Các chuẩn chất lượng cụ thể như ISO – International Organization for Standardization, CMMI – Capability Maturity Model Integration, PMI – Project Management Institute, ASME – American Society Mechanical Engineers, ANSI – American National Standard Institue,. Một số tham khảo về các tiêu chuẩn chất lượng trong lĩnh vực công nghệ thông tin bao gồm các nghiên cứu về: - Đánh giá chất lượng cho các phương thức mô hình hoá Web (Model-Driven Web Engineering), F.J Dominguez-Mayo 2012 - Đánh giá các nhân tố đảm bảo chất lượng trong Agile (Evaluation of Quality Assurance Factors in Agile Methodologies, M.Sirshar 2012 - Làm thế nào để cải thiện việc đảm bảo chất lượng phần mềm tại các nước đang phát triển (How to improve software Quality Assurance in developing countries), A.Javed 2012 - Các tiêu chuẩn chất lượng và đặc tính cho việc xây dựng Soft-Scape tại Malaysia (Quality standards and specification for Soft-Scape construction in Malaysia), J.Sani 2012) 12 - Đảm bảo chất lượng phần mềm, một nghiên cứu dựa trên nền công nghiệp phần mềm tại Pakistan (Software Quality Assurance A Study based on Pakistan’s Software Industry), A.Iftikhar 2011 - Thực thi và cấu hình mô hình quản lý cho việc nâng cao chất lượng trong giáo dục bậc cao (Implementation and Configuration Management Model for Quality Enhancement in Higher Education), M.Malik 2010 - Các phương thức đảm bảo chất lượng cho phát triển dựa trên mô hình: một khảo sát và đánh giá (Quality Assurance Methods for Model-based development: A Survey and Assessment), I.Fey 2007 - Cải tiến chất lượng phần mềm – một định hướng đánh giá (Improving Software Quality – a benchmarking approach), A.Imam 2007 - Kiểm thử phần mềm và đảm bảo chất lượng dự phòng trong Đo Lường (Software testing and preventive Quality Assurance for Metrology), N.Greif 2006 Maria Khalid tập trung phân tích các tham số tiêu chuẩn trong đảm bảo chất lượng đối với các nghiên cứu nêu trên.