Chương 1: Luận văn trình bày về ứng dụng Android và bài toán kiểm thử ứng dụng trên thiết bị di động. Chương 2: Luận văn trình bày về phương pháp và các kỹ thuật toán tử đột biến trong kiểm thử ứng dụng Android trên thiết bị di động. Chương 3: Luận văn trình bày về mô hình, thực nghiệm áp dụng kiểm thử. ỨNG DỤNG ANDROID VÀ BÀI TOÁN KIỂM THỬ ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Trong chương này, chúng tôi giới thiệu chung về những kiến thức kiểm thử phần mềm chung nhất [10], khái niệm ứng dụng Android trên thiết bị di động, những thách thức trong kiểm thử ứng dụng trên Android, phương pháp toán tử đột biến trong kiểm thử phần mềm và ý nghĩa của bài toán.
Giới thiệu chung về kiểm thử phần mềm Kiểm thử [10] là quá trình thực hiện một sản phẩm phần mềm trên dữ liệu đầu vào mẫu và phân tích đầu ra của nó. Sản phẩm phần mềm không giống như các sản phẩm kỹ thuật khác, thường không có lỗi, hoặc có rất ít lỗi. Nhưng các sản phẩm phần mềm dễ bị lỗi, do sự tích lũy các lỗi trong tất cả các giai đoạn trong vòng đời của chúng (thông số kỹ thuật bị lỗi, thiết kế bị lỗi, thực hiện bị lỗi, v. Ngoài ra, không giống như các sản phẩm kỹ thuật khác, sản phẩm phần mềm còn có lỗi do hao mòn sản phẩm trong quá trình sử dụng.
Lỗi phát sinh trong các sản phẩm phần mềm hầu hết là lỗi thiết kế, được cung cấp cùng với sản phẩm mới. Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Kiểm thử phần mềm tạo điều kiện cho kiểm thử viên tận dụng tối đa tư duy đánh giá và sáng tạo để có thể phát hiện ra những điểm mà người khác chưa nhìn thấy. Vì mỗi kiểm thử viên ngoài các cách nhìn chung và tổng quát, từng kiểm thử viên còn có cách nhìn của riêng mình.
Điều này làm cho từng kiểm thử viên có thể phát hiện được nhiều lỗi ở các góc nhìn khác nhau. Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, và tìm một cách sớm nhất để bảo đảm rằng lỗi sẽ được sửa. Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách có hệ thống như thiết kế các trường hợp kiểm thử và đi cụ thể chi tiết từng trường hợp kiểm thử. Từ đó thực hiện nó sao cho có hiệu quả, nhưng tiết kiệm được thời gian, công sức và chi phí.
Vòng đời phát triển của phần mềm Vòng đời của phát triển phần mềm được trải qua các giai đoạn tiến hành tuần tự từ giai đoạn phân tích yêu cầu đến giai đoạn vận hành và bảo trì sản phẩm như Hình 1.1 Các giai đoạn phát triển của phần mềm Requirements (phân tích yêu cầu): Phân tích yêu cầu là quan trọng nhất trong các giai đoạn của vòng đời phát triển phần mềm. Ở giai đoạn này, người phân tích thiết kế sẽ xác định yêu cầu cụ thể của phần mềm. Từ đó cho phép người sử dụng và các lập trình viên, kiểm thử viên có cái nhìn tổng quát nhất về phần mềm. Architecture (cấu trúc phần mềm): Trong giai đoạn này người thiết kế và phân tích sẽ xác định thành phần bên trong và mô tả chi tiết các thành phần bên trong 3 z của phần mềm, cũng như cách hệ thống sẽ được triển khai, cách chia sẻ dữ liệu, v.
Design (thiết kế phần mềm): Trong giai đoạn thiết kế này người thiết kế và phân tích sẽ đưa ra các quyết định thiết kế toàn bộ hệ thống. Các thiết kế liên quan đến cấu trúc dữ liệu, hiển thị dữ liệu, các thuật toán và chia tách các chức năng phần mềm thành các đơn vị nhỏ để các lập trình viên phát triển độc lập. Programming (lập trình): Giai đoạn lập trình được thực hiện bởi các lập trình viên dựa trên yêu cầu thiết kế và kiến trúc phần mềm đã được xác định trước đó, Trong giai đoạn này, các kiểm thử viên đã có thể thiết kế các trường hợp kiểm thử đơn vị để sử dụng kiểm thử đơn vị để kiểm thử trong giai đoạn này. Integration (tích hợp): Khi tất cả các đơn vị của phần mềm đã được phát triển, các đơn vị hoặc các chức năng sẽ được tích hợp với nhau để tạo nên một phần mềm hoàn chỉnh.
Trong giai đoạn này, các kiểm thử viên sẽ thiết kế các trường hợp kiểm thử tích hợp và sử dụng kiểm thử tích hợp để kiểm thử trong giai đoạn này. Delivery (bàn giao sản phẩm) : Khi phần mềm đã trải qua kiểm thử tích hợp thì các kiểm thử viên sẽ kiểm thử chấp nhận. Kiểm thử chấp nhận là kiểm thử toàn bộ phần mềm. Kiểm thử trong giai đoạn này có thể được thiết kế các trường hợp kiểm thử với góc nhìn của người sử dụng.
Khi kiểm thử chấp nhận được hòa thành thì sản phẩm đã có thể được bàn giao. Maintenance (vận hành và bảo trì) : Giai đoạn vận hành bảo trì là giai đoạn cuối cùng trong vòng đời phát triển phần mềm. Nếu trong giai đoạn vận hành, sản phẩm phần mềm bị lỗi hoặc có yêu cầu thay đổi, thì thao tác bảo trì được bắt đầu để thay đổi. Khi hoàn thành thao tác bảo trì, hệ thống phần mềm hoạt động bảo trì có thể chỉ liên quan đến một phần giới hạn của mã nguồn hoặc chỉ tập trung vào một vài chức năng hệ thống.
Kiểm thử trong giai đoạn này được gọi là kiểm thử hồi quy. Vòng đời của kiểm thử phần mềm Hiện nay có rất nhiều mô hình được đưa ra trong phát triển phần mềm. Trong phần này sẽ trình về vòng đời của kiểm thử phần mềm cụ thể ở đây là vòng đời kiểm thử phần mềm của mô hình chữ V. Mặc dù kiểm thử thường được coi là một pha, và là pha cuối cùng của vòng đời phần mềm.
Nhưng nó thực sự được xem là hoạt động diễn 4 z ra đồng thời trong tất cả các giai đoạn của vòng đời, từ đầu đến cuối. Trong mô hình chữ V, việc minh họa bản chất của kiểm thử là một hoạt động đang diễn ra trong suốt vòng đời phần mềm và việc kiểm thử có thể được lên kế hoạch từng bước một, mỗi cặp pha được kết nối bởi một mũi tên nằm ngang trong Hình 1. 2 [10]và có mối liên hệchặt chẽ với nhau. Trong mô hình chữ V pha hiệu chỉnh bên nhánh bên phải, và cái sau kiểm tra tính hợp lệ của cái trước.2 Kiểm thử phần mềm tương ứng với mô hình chữ V Unit testing ( kiểm thử đơn vị): Unit test diễn ra trong quá trình lập trình được lập trình viên hoặc kiểm thử viên thực hiện.
Trong pha này đơn vị là phần có thể kiểm thử nhỏ nhất như hàm hoặc các thành phần đơn lẻ. 5 z Integration testing (kiểm thử tích hợp): Kiểm thử tích hợp là phương pháp tích hợp các thành phần cơ sở, sau đó bổ sung thêm các thành phần chức năng được bắt đầu từ đơn vị thấp nhất hoặc trong cùng của ứng dụng và dần dần di chuyển lên trên. Kiểm thử tích hợp được bắt đầu từ module thấp nhất và dần dần tiến tới các module cao hơn của ứng dụng. Sự tích hợp này tiếp tục cho tới khi tất cả các module được kiểm thử hoàn tất.
System testing (kiểm thử hệ thống): Kiểm thử hệ thống cho phép kiểm thử viên theo dõi và đánh giá hành vi của hệ thống, hệ thống được hoàn chỉnh và tích hợp đầy đủ các chức năng như yêu cầu chức năng đã được xác định trước. Acceptance testing (kiểm thử chấp nhận): Kiểm thử chấp nhận thường được diễn ra cuối cùng và xác nhận lại sự tin tưởng của hệ thống, các đặc tính thuộc về chức năng hoặc phi chức năng của hệ thống. Ngoài ra kiểm thử chấp nhận thường được kiểm thử viên nhìn nhận và đánh giá phần mềm dưới góc nhìn của người sử dụng. Vì vậy những lỗi phát hiện ra ở giai đoạn này thường mang ý nghĩa quan trọng.
Ứng dụng Android trên thiết bị di động và kiểm thử ứng dụng Android 1. Ứng dụng Android trên thiết bị di động Hiện nay khi các ứng dụng di động ngày càng được sử dụng rộng rãi và các nhà phát triển cho phép người dùng có thể kết nối với nhau theo nhiều cách, thì công việc của các nhà phát triển ứng dụng ngày càng trở nên quan trọng trong một nền kinh tế toàn cầu. Các ứng dụng di động mà chúng ta sử dụng hàng ngày đã thay đổi cách chúng ta tiến hành kinh doanh, giao tiếp, giải trí, làm việc và học thêm những điều mới. Các thiết bị và ứng dụng Android hiện nay đang chiếm phần lớn trên thị trường.
Đem lại nhiều tính ứng dụng cao trong đời sống và cho người sử dung. Hệ điều hành Android không chỉ là hệ điều hành trên điện thoại di động được sử dụng rộng rãi nhất, mà nhiều ứng dụng đã được phát hành và tải xuống cho Android nhiều hơn bất kỳ hệ điều hành nào khác. Android là một trong các hệ điều hành được ưa chuộng nhất hiện nay. Với ưu thế là mã nguồn mở và được đông đảo cộng đồng yêu thích, Android đã thu hút rất nhiều nhà phát triển từ khắp mọi nơi trên thế giới và đang dần khẳng định vị thế.
6 z Nhờ Android mà hàng loạt các ứng dụng games, ứng dụng di động gia tăng một cách nhanh chóng. Khi các ứng dụng di động ngày càng được sử dụng rộng rãi và cho phép người dùng có thể kết nối với nhau theo nhiều cách, thì chất lượng phần mềm lại được đặt lên hàng đầu. Vì thế để giải quyết bài toán chất lượng, thì kiểm thử phần mềm đang và đã được các nhà phát triển, các lập trình viên và các kiểm thử viên quan tâm.3 Minh họa các ứng dụng Android trên Google Play 1. Kiểm thử ứng dụng Android Các thiết bị và ứng dụng Android hiện nay đang chiếm phần lớn trên thị trường.
Đem lại nhiều tính ứng dụng cao trong đời sống và cho người sử dung. Vì vậy kiểm thử ứng dụng Android trên thiết bị di động là cần thiết. Và phân tích đột biến là một phương pháp kiểm thử phần mềm tiềm năng, đặc biệt đối với việc kiểm thử các ứng dụng trên Android. Như trong tài liệu [1-7] đã đưa ra những toán tử đột biến để kiểm thử ứng dụng Android [1].
Và dẫn đến hiệu quả của việc phân tích đột biến trong ứng dụng Android được đề cập trong [2].