Kiểm thử ứng dụng di động

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG (Trang 27 - 31)

DI ĐỘNG VÀ PHƯƠNG PHÁP PHÁT TRIỂN LINH HOẠT

1.3. Kiểm thử ứng dụng di động

Kiểm thử ứng dụng di động là một quá trình mà phần mềm ứng dụng phát triển cho các thiết bị di động được thử nghiệm tính năng, khả năng sử dụng và hiệu năng. Kiểm thử ứng dụng di động có thể được thực hiện tự động hóa hoặc thủ cơng [54]. Việc kiểm thử cho ứng dụng di động đang phải phải đối mặt với rất nhiều thách thức. Những câu hỏi nghiên cứu cần được giải quyết là:

(1) Các ứng dụng di động khác biệt gì so với các ứng dụng truyền thống, có yêu cầu đặc biệt nào về các kỹ thuật kiểm thử mới để đáp ứng điều khác biệt này? (2) Những thách thức và hướng nghiên cứu kiểm thử cho ứng dụng di động là gì?

(3) Vấn đề kiểm thử thủ công và kiểm thử tự động được thực hiện như thế nào, vai trị là gì?

(4) Với xu hướng phát triển các ứng dụng theo phương pháp linh hoạt thì vai trị của kiểm thử thay đổi như thế nào cho phù hợp nhằm nâng cao chất lượng và độ tin cậy cho sản phẩm.

1.3.1. Đặc điểm của ứng dụng di động

Việc xem xét tính di động và nhận biết theo ngữ cảnh (context-aware) như là các đặc điểm đặc biệt nhất của ứng dụng di động. Dựa trên những đặc điểm này có thể định nghĩa 2 loại ứng dụng di động cụ thể và từ đó chúng ta phân tích các đặc điểm riêng biệt của ứng dụng di động dẫn đến việc nghiên cứu và đưa ra phương pháp, kỹ thuật kiểm thử phù hợp cho quá trình phát triển ứng dụng.

Một ứng dụng di động là ứng dụng chạy trên các thiết bị di động [74], [57] và nhận thông tin, dữ liệu đầu vào dựa theo thông tin ngữ cảnh [18]. Ứng dụng di động được xem xét theo 2 yếu tố sau:

o Xét theo đặc điểm điện toán di động (mobile computing): một ứng dụng được xem là ứng dụng di động nếu nó chạy được trên các thiết bị điện tử di động như mp3 reader, mobile phone, máy ảnh số... theo Satyanarayanan [96] đã đưa ra

sự khác biệt và khái niệm về điện tốn di động thơng qua 4 ràng buộc: hạn chế nguồn tài nguyên; lổ hổng và bảo mật; hiệu suất và tính biến thiên độ tin cậy; và nguồn năng lượng hữu hạn.

o Xét trên sự nhận biết theo ngữ cảnh (context–aware): một ứng dụng di động là sự nhận biết của môi trường điện tốn mà ứng dụng chạy trên đó và thích ứng/phản ứng theo tính tốn của ứng dụng, người dùng, yếu tố vật lý hoặc bối cảnh thời gian [97]. Theo Schmidt [98] đã phân loại thông tin ngữ cảnh thành yếu tố con người (người dùng, môi trường xã hội và các tác vụ) và môi trường vật lý (vị trí, cơ sở hạ tầng, và điều kiện vật lý). Các thách thức trong nhận biết ngữ cảnh được thể hiện bởi những cảm biến theo ngữ cảnh (như vị trí, thời gian, đối tượng gần đó, hướng, ngữ cảnh xã hội), sự thích ứng hay cấu hình lại, các hành động ngữ cảnh được kích hoạt và khám phá tài nguyên theo ngữ cảnh.

Dựa vào hai yếu tố, đặc điểm trên có thể phân loại ứng dụng di động theo 2 nhóm ứng dụng như sau:

o Các ứng dụng truyền thống được viết lại để chạy trên các thiết bị di động như ứng dụng web, tìm kiếm, mạng xã hội, các ứng dụng làm việc cộng tác… được

gọi là ứng dụng cho di động (Apps4Mobile).

o Và các ứng dụng di động sử dụng thông tin ngữ cảnh để sinh ra các kết quả dựa vào ngữ cảnh thì gọi là ứng dụng di động (MobileApps).

Khi ảnh hưởng trực tiếp điến việc kiểm thử, ứng dụng Apps4Mobile sẽ kế thừa những đặc tính đặc thù của ứng dụng di động như tính di động, tính đơn thể, tính kết nối… trong khi MobileApps sẽ kế thừa những thách thức liên quan đến các ứng dụng nhận biết ngữ cảnh. Từ quan điểm của kiểm thử, chúng ta xác định Apps4Mobile như là một ứng dụng mà định hướng bởi user input (đầu vào của người sử dụng), chạy trên các thiết bị di động với tài nguyên hạn hẹp. Còn MobileApps là ứng dụng đặc biệt của Apps4Mobile mà dữ liệu đầu vào từ môi trường xung quanh của thiết bị và từ hành động của người dùng để cho ra kết quả dựa vào ngữ cảnh. Do đó, các kỹ thuật kiểm thử khác nhau sẽ được yêu cầu cho từng loại ứng dụng.

1.3.2.Tính đặc thù của ứng dụng di động ảnh hưởng đến việc kiểm thử phần mềm

Có thể nhóm các ứng dụng cho di động nói chung theo đặc thù riêng của nó như Bảng 1.2.

Bảng 1.2. Phân loại ứng dụng di động theo đặc thù riêng và kiểm thử tương ứng [74]

Loại ứng Các trạng thái đặc Các loại kiểm thử được xem

dụng mobile thù/riêng biệt xét

Kết nối di động (Mobile Độ tin cậy, hiệu năng, an ninh, kiểm thử chức năng thông qua các mạng

A pp s4 M ob ile Connectivity) M ob ile App lic at ions M ob ile Ap ps khác nhau.

Tài nguyên bị giới hạn Kiểm thử hiệu năng và giám sát chức năng (*)

Sự tự trị (autonomy) Theo dõi tiêu thụ năng lượng (*) Giao diện người dùng (UI) GUI testing

Kiểm thử các chức năng mở rộng và Nhận biết bối cảnh các chức năng phụ thuộc vào ngữ cảnh

Loại ứng Các trạng thái đặc Các loại kiểm thử được xem

dụng mobile thù/riêng biệt xét

Khả năng thích ứng Kiểm thử tính chính xác của khả năng thích ứng.

Ngơn ngữ lập trình mới Kỹ thuật kiểm thử hộp trắng, hộp đen (*)

Hệ điều hành mới (O.S) Kiểm thử tính tương thích

Sự đa dạng của điện thoại Kiểm thử mức độ bao phủ tính đa dạng và hệ điều hành (*)

Touch screen- màn hình Tính dễ sử dụng và khả năng phản hồi

cảm ứng khi cảm ứng

(*) các loại kiểm thử được nghiên cứu trong luận án này

1.4. Phương pháp phát triển linh hoạt

Qui trình phát triển phần mềm truyền thống đã khơng cịn phù hợp khi các công ty đang cố gắng rút ngắn thời gian sản xuất và đưa sản phẩm thị ra trường sớm. Trong nhiều trường hợp, nhiều nghiên cứu khác nhau [23, 32, 33, 44, 103, 105, 116,117], việc kiểm sốt chất lượng thường giảm hoặc hỗn lại do thời hạn cuối bị giảm hoặc bị quá thời gian của các giai đoạn phát triển. Các công ty phát triển phần mềm cần có một qui trình phù hợp có thể đánh giá chất lượng trong từng giai đoạn phát triển sản phẩm của họ mà không cần can thiệp vào tiến độ giao hàng. Chính điều này đã buộc các cơng ty phần mềm hiện nay chuyển sang việc sử dụng các phương pháp phát triển linh hoạt (Agile Development Methodology- Agile).

Agile là triết lý phát triển phần mềm mà nhà phát triển sẽ phải thực hiện sản xuất sản phẩm với lịch trình giao hàng ngắn bằng cách tạo ra một sản phẩm với tính năng ít hơn thay vì hạ thấp các tiêu chuẩn chất lượng của các sản phẩm tương tự. Với triết lý và phương pháp phát triển phần mềm linh hoạt được cụ thể cho từng công ty riêng và thực hành tốt nhất của họ không thể dễ dàng áp dụng cho một tổ chức hay công ty khác. Hơn nữa, nhiều công ty đang gặp phải các vấn đề trong việc chuyển đổi từ cách tiếp cận truyền thống sang tiếp cận linh hoạt. Một trong những nguyên nhân của vấn đề này là các công ty đang cố tái sử dụng các kỹ thuật và cơng cụ từ q trình phát triển truyền thống mà có thể khơng được áp dụng trong phương pháp phát triển linh hoạt.

Agile khơng phải là một qui trình phát triển phần mềm theo định nghĩa mà là một triết lý dựa trên một tập hợp các nguyên tắc. Những nguyên tắc này được gọi là "Tun ngơn Agile" [35],[105].

Một số quy trình phát triển phần mềm sử dụng một số các nguyên tắc đó, như: Lập trình cực hạn (XP), Scrum, Dynamic Systems Development Method (DSDM), Feature Driven Development (FDD), ... thường đề cập đến chúng như là phương pháp phát triển phần mềm nhanh, linh hoạt.

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG (Trang 27 - 31)