KIỂM THỬ ỨNG DỤNG WEBSITE TRÊN THIẾT BỊ DI ĐỘNG HỆ ĐIỀU HÀNH ANDROID Như chúng ta đã biết lĩnh vực web rất có tiềm năng mang lại lợi nhuận cao trong các dự án kinh doanh. Tuy nhiên, thách thức chính mà chúng ta gặp phải đó chính là nắm bắt các công nghệ liên quan để làm chủ môi trường tốt hơn. Mục tiêu đề tài • Nắm được lý thuyết về kiểm thử website như các phương pháp, kỹ thuật, các vấn đề cần chú ý khi kiểm thử website. • Tìm hiểu được lý thuyết liên quan đến kiểm thử ứng dụng trên thiết bị di động, kiểm thử ứng dụng website trên thiết bị di động. • Trình bày được điểm khác biệt khi kiểm thử ứng dụng website trên máy tính và trên thiết bị di động hệ điều hành Android. • Ứng dụng kiểm thử website trên thiết bị di động hệ điều hành Android. • Xây dựng hệ thống tài liệu liên quan đến kiểm thử các ứng dụng website trên thiết bị di động và áp dụng kiểm thử trên hệ điều hành Android.
Trang 3HƯNG YÊN - 2014
Trang 4MỤC LỤ
Trang 5DANH SÁCH HÌNH VẼ 5
DANH SÁCH BẢNG BIỂU 7
DANH SÁCH TỪ VIẾT TẮT 8
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 9
1.1 Lý do chọn đề tài 9
1.2 Mục tiêu đề tài 10
1.3 Giới hạn và phạm vi đề tài 10
1.4 Nội dung thực hiện 10
1.5 Phương pháp tiếp cận 11
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 12
2.1 Tổng quan về kiểm thử website 12
2.1.1 Khái quát 12
2.1.2 Mục đích của kiểm thử website 12
2.1.3 Các phương pháp kỹ thuật khi kiểm thử ứng dụng website 13
2.1.4 Các kỹ thuật kiểm thử trên Website 17
2.1.5 Những vấn đề cần chú ý khi test website 20
2.2 Tổng quan về hệ điều hành Android 30
2.2.1 Khái niệm hệ điều hành Android 30
2.2.2 Lịch sử phát triển của hệ điều hành Android 31
2.2.3 Cấu trúc của hệ điều hành Android 32
2.2.4 Những vấn đề cần quan tâm khi kiểm thử ứng dụng Android 34
CHƯƠNG 3: NỘI DUNG THỰC HIỆN 48
Trang 63.1 Kiểm thử ứng dụng website trên thiết bị di động hệ điều hành
Android 48
3.1.1 Sự cần thiết của website phiên bản di động 48
3.1.2 Phân biệt kiểm thử ứng dụng website trên thiết bị di động hệ điều hành Android và trên máy tính 49
3.1.3 Một số công cụ hỗ trợ test website trên thiết bị di động 52
3.1.4 Cách thức kiểm thử website phiên bản di động 56
3.2 Giới thiệu về ứng dụng kiểm thử 57
3.2.1 Giới thiệu về website bán hàng shoptretho 57
3.2.2 Các chức năng của website đối với người dùng 59
3.2.3 Đặc tả yêu cầu kiểm thử ứng dụng website bán hàng shoptretho.63 3.2.4 Áp dụng kiểm thử cho website bán hàng shoptretho 66
CHƯƠNG 4: KẾT LUẬN 77
4.1 Kết quả đạt được 77
4.2 Hạn chế của đề tài 77
4.3 Hướng phát triển của đề tài 77
TÀI LIỆU THAM KHẢO 78
DANH SÁCH HÌNH V
Trang 7Hình 2-1: Kiểm tra luồng điều khiển 18
Hình 2-2: Các loại vòng lặp 19
Hình 2-3: Kiến trúc của hệ điều hành Android 32
Hình 2-4: Mức độ phổ biến của điện thoại di động 36
Hình 2-5: Một số ứng dụng trên di động, trang web 37
Hình 2-6: Lựa chọn phiên bản JDK phù hợp 41
Hình 2-7: Lựa chọn ổ đĩa cài đặt JDK 41
Hình 2-8: Hoàn tất quá trình cài đặt 42
Hình 2-9: Hướng dẫn download SDK 43
Hình 2-10: Cửa sổ cài đặt 44
Hình 2-11: Cài đặt tools cho Android SDK 44
Hình 2-12: Chọn phiên bản Android cần dùng 45
Hình 2-13: Tạo máy ảo Android 45
Hình 2-14: Thiết lập các thông số cho máy ảo 46
Hình 2-15: Màn hình máy ảo Android sau khi cài thành công 47
Hình 3-1: Công cụ W3C mobileOK checker 52
Hình 3-2: Công cụ IPhoney 53
Hình 3-3: Công cụ Google Mobilizer 53
Hình 3-4: Công cụ IPad Peek 54
Hình 3-5: Công cụ Gomez 54
Hình 3-6: Công cụ MobiReady 55
Hình 3-7: Công cụ dotMobi Emulator 56
Trang 8Hình 3-8: Trang chủ website bán hàng shoptretho 58
Hình 3-9: Giao diện trang chủ dành cho khách hàng 60
Hình 3-10: Kết quả kiểm thử chức năng 67
Hình 3-11: Kết quả kiểm thử giao diện 67
Hình 3-12: Công cụ DDMS 68
Hình 3-13: Công cụ DDMS trong Android SDK 68
Hình 3-14: Các ứng dụng chạy trong máy ảo 69
Hình 3-15: Thời gian thực hiện các phương thức trên máy ảo 69
Hình 3-16: Kết quả kiểm thử hiệu năng 69
Hình 3-17: Máy ảo đang chạy ứng dụng website 70
Hình 3-18: Chạy ứng dụng DDMS trong Eclipse 70
Hình 3-19: Chọn máy ảo cần giả lập và nhập số điện thoại 71
Hình 3-20: Cuộc gọi đến máy ảo 71
Hình 3-21: Tin nhắn tới máy ảo khi truy cập ứng dung website 72
Hình 3-22: Màn hình máy ảo khi thực hiện xoay ngang 73
Hình 3-23: Kết quả kiểm thử gián đoạn 73
Hình 3-24: Công cụ MobiReady 74
Hình 3-25: Kết quả kiểm thử với công cụ MobiReady 75
Trang 9DANH SÁCH BẢNG BIỂ
Trang 10Bảng 3-1: Chức năng của khách hàng 62
Trang 11DANH SÁCH TỪ VIẾT TẮT
SDK Software Development Kit Bộ công cụ phát triển phần mềm
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Như chúng ta đã biết lĩnh vực web rất có tiềm năng mang lại lợi nhuận caotrong các dự án kinh doanh Tuy nhiên, thách thức chính mà chúng ta gặp phải đóchính là nắm bắt các công nghệ liên quan để làm chủ môi trường tốt hơn
Sự phát triển mạnh mẽ của các ứng dụng di động trên toàn thế giới cho thấynhu cầu của người dùng ngày càng cao, tính tiện ích của di động ngày càng đượcchú trọng Trên cơ sở đó, việc kiểm thử ứng dụng di động phải được thực hiện chặtchẽ trước khi phát hành cho khách hàng Tháng 7/2008 Apple ra mắt kho ứng dụng
di dộng trực tuyến đầu tiên với 500 ứng dụng cho các sản phẩm iPhone, iPad Khi
đó thị trường ứng dụng mobile hầu như chưa hề tồn tại Đến nay, App Store đã cóhơn 400,000 ứng dụng với 10 tỷ lượt tải về, dẫn đầu ngành về dịch vụ ứng dụng cho
di động Sau thành công của Apple các hãng di động nhận thấy tiềm năng của thịtrường Mobile Apps đã liên tiếp cho ra mắt kho ứng dụng của mình Tiêu biểu làOvi Store của Nokia (55,000 ứng dụng, 760 triệu download), Android Market củaGoogle (200,000 ứng dụng, 4,5 tỷ download), Góp vào tổng doanh thu hàng nămngành lên tới 7 tỷ USD, dự báosẽ đạt 30 tỷ USD trong 3 năm tới Tại Việt Nam,một số doanh nghiệp đã xây dựng kho ứng dụng di động riêngnhư F-Store của FPT,mStore của Tổng công ty Viễn thông Quân đội Viettel, LG Application Mobile của
LG hay Nokia Ovi với phiên bản dành cho thị trường Việt Nam VTC Mobile, mộttrong các đơn vị dẫn đầu thị phần dịch vụ giá trị gia tăng trên di động giai đoạn2006-2010 tại Việt nam cũng đã hợp tácvới Q-mobile để xây dựng Q-Store, cungcấp các ứng dụng do Việt Nam xâydựng tới hàng triệu người sử dụng Q Mobile.Andoird-Hệ điều hành mạnh mẽ và phát triển với tốc độ chóng mặt của Google,Android là xu hướng và nền tảng của mobile trong tương lai Điện thoại Android cónhiều ưu thế bởi nó thân thiện, hợp túi tiền, tùy biến cao, nhiều ứng dụng…hoặc chỉđơn giản vì nó đang thống lĩnh trên thị trường.Nhưng ưu thế nổi bật nhất phải kểđến của Android là hệ mã nguồn mở
Trang 13Xuất phát từ nhu cầu và thực trạng trên, em lựa chọn đề tài “Kiểm thử ứng dụng website trên thiết bị di động hệ điều hành Android” nhằm mục đích giới
thiệu cơ bản về kiểm thử Website và kiểm thử Website trên thiết bị di động
Ứng dụng kiểm thử website trên thiết bị di động hệ điều hành Android
Xây dựng hệ thống tài liệu liên quan đến kiểm thử các ứng dụng website trên thiết bị di động và áp dụng kiểm thử trên hệ điều hành Android
1.3 Giới hạn và phạm vi đề tài
Đề tài tập trung nghiên cứu kiểm thử ứng dụng website, thực hiện kiểm thửmột ứng dụng website thực tế trên thiết bị di động hệ điều hành Android
1.4 Nội dung thực hiện
Tìm hiểu tổng quan lý thuyết về kiểm thử website
Tìm hiểu quy trình, các phương pháp, các kỹ thuật kiểm thử dự ánwebsite
Áp dụng các phương pháp, kỹ thuật kiểm thử website vào kiểm thử ứngdụng website thực tế
Lập được bản testcase mô tả về các trường hợp gây lỗi của dự ánwebsite, đưa ra các kết quả mong đợi và các kết quả thực tế đã thu đượctrong quá trình kiểm thử
Thực hiện kiểm thử theo bản testcase đã lập
Thống kê, báo cáo các lỗi website đã kiểm thử được
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về kiểm thử website
2.1.1 Khái quát
Các ứng dụng web đã được phát triển và trở thành một nền tảng kết nốithông tin thiết yếu trong nhiều doanh nghiệp Các ứng dụng web đóng vai trò quyếtđịnh của thương mại điện tử, trao đổi thông tin
Để có thể đạt được điều này, các ứng dụng web cần phải có hiệu năng cao,đáng tin cậy Việc đưa ra một ứng dụng web hoàn hảo cho những người đang và sẽ
sử dụng ứng dụng đã trở thành một thách thức chính trong đảm bảo chất lượng.Kiểm thử là một trong những công việc quan trọng để có thể đánh giá chất lượngcủa một sản phẩm và đương nhiên là các ứng dụng web cũng sẽ không phải là ngoại
lệ Các phương pháp kiểm thử thông thường và các kỹ thuật sẽ tập trung vào đánhgiá các chức năng yêu cầu của ứng dụng Tuy nhiên, không thể nào tập trung đượcvào hết tất cả các chức năng yêu cầu, bởi có rất nhiều chức năng quan trọng chongười sử dụng ứng dụng như đó là tính hiệu năng, tính dễ sử dụng, độ tin cậy vàtính bảo mật cần phải được xem xét Những yêu cầu và mong đợi của người sửdụng, những vấn đề về nền tảng cấu hình, mô hình nghiệp vụ, sự phát triển và chiphí cho việc kiểm thử là những vấn đề thường hay gặp phải và thay đổi liên tục đổixuyên suốt chu trình của một ứng dụng web Vì thế, cần thiết phải phát triển mộtchiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổng thểrộng lớn của những yêu cầu, chức năng cho một ứng dụng web qua đó có thể giúpcho việc cài đặt, hoàn thành ứng dụng cũng như tránh được các rủi ro có thể gặp
2.1.2 Mục đích của kiểm thử website
Các ứng dụng web đưa ra những thách thức mới trong việc đánh giá và kiểmthử Các ứng dụng web bao gồm nhiều thành phần khách nhau có thể được cung cấpbởi những nhà phát triển khác nhau Chất lượng của một ứng dụng web về cơ bảnphụ thuộc vào các thành phần kể trên và khả năng tương tác giữa chúng Kiểm thử
Trang 16là một trong những công cụ quan trọng nhất trong quá trình phát triển một ứng dụngweb để tạo ra những sản phẩm với chất lượng cao đáp ứng được mong đợi củangười dùng Việc kiểm thử một cách có phương pháp và hệ thống các ứng dụngweb là một điều quan trọng và chúng nên được quan tâm xứng đáng trong quy trìnhtạo ra một sản phẩm web Kiểm thử là một biện pháp nhắm vào việc tìm ra các lỗi,thiếu sót trong ứng dụng dưới góc độ kỹ thuật Hiện nay có rất nhiều phương pháp
và kỹ thuật tiên tiến, hiệu quả để kiểm thử những hệ thống phần mềm Tuy nhiên,chúng ta không thể áp dụng một cách cứng nhắc những phương pháp hay kỹ thuật
áp dụng cho phần mềm truyền thống lên những ứng dụng web Vậy vấn đề đặt ra ởđây là chúng ta cần phải linh hoạt khi áp dụng làm cho những phương pháp này phùhợp, thích ứng với việc kiểm thử các ứng dụng web
Kiểm thử các ứng dụng web đã vượt qua giới hạn của kiểm thử những hệthống phần mềm truyền thống Như chúng ta đã biết, một ứng dụng web thường córất nhiều nhóm người sử dụng với rất nhiều những nền tảng khác nhau (hệ điềuhành, trình duyệt…), điều này dẫn tới việc kiểm thử một ứng dụng web cần phải cónhững phương pháp đặc biệt khác với phần mềm truyền thống Thông thường, rấtkhó để có thể đoán trước được số lượng người sẽ sử dụng một ứng dụng web là baonhiêu Thời gian hồi đáp lại yêu cầu của người sẽ sử dụng một ứng dụng web là baonhiêu Thời gian hồi đáp lại yêu cầu của người sử dụng là một yếu tố then chốttrong số những yếu tố quyết định thành công của một ứng dụng web trên internet và
nó cần được quan tâm và kiểm thử sớm Những yếu tố còn lại như khả năng - giá trị
sử dụng, tính bảo mật, tính tương thích với các trình duyệt, hiệu năng cũng rất quantrọng và cần được quan tâm đến sớm trong công việc kiểm thử
2.1.3 Các phương pháp kỹ thuật khi kiểm thử ứng dụng website
a) Thử nghiệm liên kết (Link)
Liên kết bên trong một cấu trúc siêu văn bản mà điểm đến không tồn tại mộtnút (các trang web, hình ảnh…) được gọi là liên kết hỏng và đại diện nổi tiếng vàthường xuyên xảy ra sai sót trong các ứng dụng web
Trang 17Khi chạy một thói quen kiểm tra liên kết, người ta thường thấy các liên kếtkhông chỉ là điểm đến không tồn tại trang, nhưng cũng có các trang không đượcinterlinked với những người khác hoặc cái gọi là các trang mồ côi Những trang mồcôi có thể được đạt đến thông qua một liên kết nhưng không có một liên kết đến cấutrúc siêu văn bản Để đơn giản cho người sử dụng nó không rõ ràng nơi để đi tới, để
họ rời bỏ trang web Các trang là thiết kế lý tưởng để họ kết thúc bằng một đề nghịcủa nơi người đọc có thể đi tiếp theo
Ngoài ra, khi vượt qua các liên kết, người ta thường có thể tìm thấy dữ liệu
bổ sung để cung cấp chỉ dẫn tiềm năng lỗi, ví dụđộ sâu và bề rộng của các cơ cấuchuyển hướng, khoảng cách giữa hai trang liên quan đến các trang, được đo bằng sốlượng các liên kết hoặc lần tải của các trang
b) Thử nghiệm trình duyệt
Một số lượng lớn các trình duyệt web khác nhau có thể được sử dụng như làcác khách hàng cho các ứng dụng web Tùy thuộc vào nhà sản xuất (ví dụ:Microsoft, Mozilla, Netscape, Opera) hoặc phiên bản (ví dụ: trình duyệt internetExplorer cho Windows XP/2000, Windows 98/ME/NT, hoặc Macintosh), hoặc cácthiết bị phần cứng (ví dụ như màn hình có độ phân giải và độ sâu màu), hoặc cấuhình (ví dụ: kích hoạt các cookie, script ngôn ngữ, Stylesheet), mỗi trình duyệt webcho thấy một hành vi khác nhau Tiêu chuẩn như những quy định của W3C thườngkhông thực hiện đầy đủ và “nâng cao” do không tương thích nhà cung cấp, mở rộng
số liệu thống kê cụ thể và trình duyệt web và cài đặt có sẵn trên mạng
Thử nghiệm trình duyệt cố gắng để tìm ra lỗi trong ứng dụng web do khôngtương thích khác nhau giữa các trình duyệt web Nhằm mục đích này, người tathường định nghĩa cốt lõi của một ứng dụng web chức năng, thiết kế trường hợp thửnghiệm phù hợp, và chạy các thử nghiệm trên các hệ thống khác nhau với nhữngphiên bản trình duyệt khác nhau Trong những thử nghiệm này, cần hỏi một trongnhững câu sau đây:
Trang 18- Một trang web có thể được đánh dấu trong một giao dịch, và có thểngười dùng sẽ trở lại trang đó sau này mà không cần phải nhập tênngười dùng và mật khẩu để đăng nhập?
- Người sử dụng có thể sử dụng các ứng dụng web để mở đồng thờinhiều cửa sổ trong trình duyệt?
- Các ứng dụng web phản ứng như thế nào khi trình duyệt có cookiehoặc tập lệnh ngôn ngữ ngừng hoạt động?
Để hạn chế số lượng kết hợp có thể có của các trình duyệt, nền tảng, cài đặt,
và nhiều yếu tố ảnh hưởng đến một tập thể quản lý các trường hợp kiểm tra, các cấuhình của hiện tại hoặc tiềm năng người dùng cần phải phân tích, ví dụ bằng cáchđánh giá các tệp tin sổ ghi và tư vấn thống kê của trình duyệt, để tìm các kết hợpphổ biến
c) Kiểm thử khả năng sử dụng
Kiểm tra đánh giá khả năng sử dụng của các vấn đề của sử dụng các mẫuthiết kế web khác nhau, bố trí tổng thể và sự điều hướng của một ứng dụng webbằng một tập các đại diện người sử dụng, trọng tâm là sự xuất hiện và khả năng sửdụng Một thử nghiệm khả năng sử dụng chính thức thường được tiến hành trongphòng thí nghiệm thiết lập, sử dụng các phòng kính trang bị máy quay video và mộttrạm thu âm Cả hai dữ liệu định hướng và định tính được thu thập
Loại thứ hai của việc đánh giá khả năng sử dụng là một đánh giá xem xét.Một đánh giá xem xét bao gồm một hoặc nhiều chuyên gia giao diện khách áp dụngmột bộ các hướng dẫn để đo khả năng sử dụng của một giải pháp, xác định các khuvực để khắc phục, và cung cấp các khuyến nghị cho thay đổi thiết kế Hệ thốngđánh giá khả năng sử dụng các nguyên tắc sử dụng đó phải được theo sau bởi tất cảcác nhà thiết kế giao diện người dùng chẳng hạn như công tác phòng chống lỗi,cung cấp thông tin phản hồi và nhất quán…
Trong bối cảnh khả năng sử dụng thử nghiệm các vấn đề làm việc có thể truycập web cho người dùng bị khuyết tật đã được điều chỉnh Khả năng tiếp cận có
Trang 19nghĩa là người khuyết tật (ví dụ như thị giác, thính giác hoặc nhận thức) có thể nhậnthức, hiểu, điều hướng và tương tác với web.
WAI (The Web Accessibility Initiative) của W3C đã phát triển phương pháptiếp cận để đánh giá trang web cho khả năng tiếp cận, mà cũng có liên quan đến thửnghiệm các ứng dụng web
d) Load, Stress và kiểm thử tính liên tục
Kiểm thử khả năng chịu tải, áp lực và kiểm thử liên tục được dựa trên các thủtục tương tự Một số yêu cầu được gửi đến các ứng dụng web nhỏ hơn đồng thờikiểm tra bởi người dùng mô phỏng để đo lường phản ứng lần và thông qua Các yêucầu sử dụng trong các thử nghiệm này được tạo ra bởi một hoặc một vài “máy tải”.Một ứng dụng kiểm soát phân phối với các tập lệnh kiểm tra trên máy tải, nó cũngđồng bộ hóa các hoạt động thử nghiệm và thu thập các kết quả thử nghiệm
Tuy nhiên, kiểm thử khả năng chịu tải, áp lực và kiểm thử tính liên tục có cácmục tiêu kiểm thử khác nhau:
- Một kiểm thử khả năng chịu tải xác minh hay không hệ thống sẽ đápứng đúng thời gian đáp ứng yêu cầu và các yêu cầu thông qua
- Kiểm tra xác minh sự căng thẳng, áp lực hay không hệ thống phảnứng một cách kiểm soát trong “những tình huống căng thẳng” Tìnhhuống căng thẳng được mô phỏng bằng cách áp dụng điều kiện khắcnghiệt, chẳng hạn như không thực tế quá tải, hoặc rất nhiều biến độngnạp
- Kiểm thử tính liên tục có nghĩa là hệ thống được thực hiện trong mộtkhoảng thời gian dài để khám phá những lỗi tinh vi, khó phát hiện
e) Kiểm tra tính bảo mật
Tiêu chí quan trọng nhất cho 1 ứng dụng web có lẽ là tính bảo mật Sự cầnthiết phải quản lý truy cập thông tin, để xác minh danh tính người dùng và để mãhóa thông tin bí mật là quan trọng tối thượng Kiểm tra bảo mật là một lĩnh vực
Trang 20rộng, nó không đại diện cho một kỹ thuật thử nghiệm theo nghĩa đen Nó liên quanđến các vấn đề mang tính chất “bảo mật”:
- Bảo mật: Ai có thể truy cập dữ liệu? Ai có thể sửa đổi và xóa dữ liệu?
- Quyền hạn: Làm thế nào và ở đâu thì có quyền truy cập quản lý? Tất
cả dữ liệu phải được mã hóa? Dữ liệu đã được mật mã như thế nào?
- Thẩm định quyền hạn: Làm thế nào để người dùng hoặc máy chủ xácđịnh chính mình?
- Trách nhiệm: Đăng nhập như thế nào?
- Tính toàn vẹn: Thông tin được bảo vệ như thế nào để khỏi bị thay đổitrong quá trình truyền?
f) Test- hướng phát triển
Test hướng phát triển nổi lên từ thử nghiệm đầu tiên tiếp cận được sử dụngtrong Extreme lập trình, nhưng nó không nhất thiết phải cách tiếp cận dự án mộtcách nhanh nhẹn Điều này có nghĩa rằng chúng ta có thể sử dụng kỹ thuật này,ngay cả trong các dự án thường
Như tên của nó, kiểm tra hướng phát triển là thử nghiệm mà được tạo ra mãhóa trước khi làm việc Mã mới được viết, nếu một thử nghiệm trước đó tạo rakhông thành công, các nhà phát triển phải viết bài kiểm tra trước khi họ tiến hành đểthực hiện Trong cách này, việc phát triển các thiết kế và tất cả các đơn vị đã thửnghiệm đơn vị của nó Thiết kế tự nhiên bao gồm rất nhiều cố kết và cùng các thànhphần lỏng lẻo, tạo điều kiện cho các thử nghiệm
Sau khi thử nghiệm không thành, phát triển thực hiện những gì là tuyệt đốicần thiết để thành công chạy kiểm tra càng nhanh càng tốt, mặc dù điều này cónghĩa là vi phạm một vài nguyên tắc
2.1.4 Các kỹ thuật kiểm thử trên Website
a) Phân chia lớp tương đương (Equivalence class partitioning)
Trang 21- Là kỹ thuật chia vùng thông tin nhập vào các chương trình thành các lớpthông tin Lớp thông tin biểu diễn thành một tập các giá trị hợp lệ vàkhông hợp lệ.
- Là quá tình giảm số lượng các test case nhưng vẫn đảm bảo được hiệuquả tương đương như khi kiểm thử với số lượng test case cũ
- Lớp tương đương là một tập các test case kiểm tra những trường hợptương tự nhau để khám phá những lỗi tương tự nhau
b) Kiểm tra luồng điều khiển (Control flow testing)
Hình 2-1: Kiểm tra luồng điều khiển c) Kiểm tra luồng dữ liệu (Data flow testing)
- Kỹ thuật lựa chọn một số đường diễn tiến của chương trình dựa vào việccấp phát, định nghĩa và sử dụng những biến trong chương trình
- Kiểm thử có thể bao trùm tất cả các nhánh của chương trình
d) Kiểm tra giao dịch (Transsaction testing)
- Kiểm tra các giao dịch tại thời điểm bắt đầu, kết thúc của từng xử lý
- Ví dụ web đặt hàng qua mạng, sẽ phải xử lý giao dịch nào trước như chọnhàng trước khi đặt hàng
e) Kiểm tra miền (Domain testing)
Trang 22- Test lựa chọn một số trường hợp kiểm thử tại các giá trị biên(trên, dưới)của miền dữ liệu được nhập và ứng dụng website.
- Nguyên tắc của phân tích giá trị biên:
Nếu điều kiện đầu vào xác định một phạm vi được chỉ định bởi 2 giátrị a và b, những trường hợp kiểm thử sẽ được thiết kế tại các giá trịbiên a và b, và trên a và dưới b
Nếu điều kiện đầu vào xác định một phạm vi được chỉ định bởi tậphợp nhiều giá trị, những trường hợp kiểm thử sẽ được thiết kế tại cácgiá trị biên min và max của tập hợp đó, các giá trị lớn hơn max và nhỏhơn min cũng được kiểm thử
Áp dụng hai nguyên tắc trên cho giá trị trả về
f) Kiểm tra lặp (Loop testing)
Hình 2-2: Các loại vòng lặp
- Kiểm tra vòng lặp trong code web
- Kiểm tra vòng lặp khi test hành vi toàn hệ thống
g) Kiểm tra cú pháp (Syntax testing)
Trang 23Test định dạng: ngày, tháng, năm, số, text…theo một định dạng xác địnhtrước.
h) Kiểm tra trạng thái (State machine testing)
- Kiểm tra trạng thái khi có sự chuyển đổi trạng thái của các đối tượng
- Ví dụ: khi có tài khoản đăng nhập và Web thì sẽ được download nhữngtiện ích, tài liệu của web, khi không có tài khoản chỉ có thể giới hạn việcxem thông tin trên web mà không có nhiều sự tương tác với ứng dụngweb
2.1.5 Những vấn đề cần chú ý khi test website
Các trang web là các ứng dụng client/server (các máy chủ web và “trìnhduyệt” của khách hàng) cơ bản Cần xem xét đến sự tương tác giữa các trangHTML, dịch vụ web, thông tin liên lạc đã được mã hóa, kết nối Internet, tường lửa,các ứng dụng chạy trong các trang web (như javascript, flash, plug-in các ứngdụng), nhiều ứng dụng có thể chạy ở phía máy chủ… Ngoài ra, có rất nhiều loạimáy chủ và các trình duyệt, các phiên bản khác nhau nhưng đôi khi sự khác biệtgiữa chúng, các biến đổi trong tốc độ kết nối, công nghệ thay đổi nhanh chóng, cáctiêu chuẩn và giao thức Kết quả cuối cùng là kiểm thử các trang web có thể trởthành một nỗ lực lớn đang diễn ra Những điều cần xem xét khác có thể bao gồm:
- Tải mong muốn trên máy chủ là gì (ví dụ: số lượt truy cập trên mộtđơn vị thời gian?) loại hiệu năng yêu cầu là gì (như thời gian đáp ứngcủa máy chủ web, thời gian đáp ứng của truy vấn cơ sở dữ liệu).Những loại công cụ cần thiết để thử nghiệm hiệu năng (ví dụ như loadtesting tool, các công cụ có sẵn khác có thể điều chỉnh, thiết bị tạotải…)?
- Đối tượng mục tiêu là ai? Loại và phiên bản nào của trình duyệt sẽđược họ sử dụng, và mức độ bao quát sẽ kiểm thử cho các thay đổinày? Loại kết nối nào sẽ được họ sử dụng? Họ nằm trong nội bộ củamột tổ chức (nếu như vậy, thì tốc độ kết nối có khả năng cao và các
Trang 24trình duyệt tương tự nhau) hoặc bên ngoài internet (nếu như vậy, thì
có nhiều tốc độ kết nối và các loại trình duyệt khác nhau)?
- Những hiệu năng nào mong muốn trên phía máy khách (ví dụ: trangweb sẽ xuất hiện nhanh như thế nào, flash sẽ nhanh như thế nào, cácứng dụng applet… thời gian tải và chạy)?
- Thời gian nghỉ cho server và việc bảo trì/nâng cấp nội dung sẽ chophép hay không? Bao nhiêu?
- Loại bảo mật nào (firewalls, encryption, passwords, functionality…)
sẽ được yêu cầu và mong muốn sẽ làm gì? Có thể kiểm thử như thếnào?
- Các yêu cầu quốc tế hóa/nội địa hóa/ngôn ngữ có yêu cầu hay không,
và làm thế nào để kiểm tra các điều này?
- Mức độ tin cậy kết nối Internet của trang web sẽ được yêu cầu như thếnào? Và ảnh hưởng đến hệ thống dự phòng hoặc các yêu cầu kết nối
dự phòng và kiểm thử như thế nào?
- Quy trình sẽ được yêu cầu để quản lý cập nhật nội dung trang web, vàcác yêu cầu cho việc bảo trì, theo dõi và điều khiển nội dung, đồ họa,link… của trang web là gì?
- HTML và mô tả chi tiết (spec) liên quan nào sẽ được sử dụng? Mức
độ chặt chẽ thế nào? Các thay đổi dự định sẽ được phép đối với cáctrình duyệt?
- Liệu có bất kỳ tiêu chuẩn hoặc yêu cầu đối với sự giao diện và/hoặc
đồ họa của một phần hoặc một trang web?
- Liệu có bất kỳ quá trình phát triển thực tế/tiêu chuẩn sử dụng cho cácthành phần và nhận dạng của trang web (components và identifiers),
nó có thể tác động đáng kể đến việc kiểm thử tự động
- Liên kết nội bộ và bên ngoài sẽ được xác nhận và cập nhật như thếnào? Mức độ thường xuyên ra sao?
Trang 25- Cả hệ thống sản phẩm có thể được kiểm thử hết, hoặc sẽ tách riêngmột phần hệ thống để kiểm thử? Trình duyệt caching (lưu bộ nhớđệm) như thế nào, thay đổi thiết lập tùy chọn trong trình duyệt, thayđổi kết nối, và vấn đề "tắc nghẽn giao thông" của Internet trong thếgiới thực sẽ được tính toán cho vào kiểm thử?
- Làm thế nào mở rộng hay tùy biến nhật ký (log) của máy chủ và cácyêu cầu báo cáo; chúng có được coi là một phần của hệ thống vàchúng có được yêu cầu thử nghiệm không?
- Các thành phần như flash, applet, javascript, ActiveX component… sẽđược bảo trì, theo dõi, điều khiển, test như thế nào?
a) Kiểm thử chức năng
Test tất cả các links trong trang web, kết nối cơ sở dữ liệu, định dạng được
sử dụng trong các trang web để gửi/nhận những thông tin cần thiết từ người dùng,kiểm tra cookie
Kiểm tra tất cả các liên kết(links):
- Kiểm tra các links liên kết ngoài trang web
- Kiểm tra tất cả các links nội bộ
- Kiểm tra tra các links tới các vị trí trong cùng trang
- Kiểm tra các links sử dụng để gửi mail tới admin hoặc người dùngkhác từ trang web
- Kiểm tra xem có trang trống nào không
- Kiểm tra các links bên trong tất cả các links nói trên
Kiểm tra form của tất cả các trang:
Form là phần cơ bản của bất kỳ trang web nào Form được sử dụng để nhậnthông tin từ người dùng và tương tác với họ Vậy những gì cần phải được kiểm tratrong form?
- Kiểm tra tất cả trường bắt buộc
Trang 26- Kiểm tra các giá trị mặc định của các trường
- Các đầu vào sai cho các trường
- Kiểm tra các form bất kỳ: xóa, xem, sửa
Kiểm thử cookie:
Cookies là các file nhỏ được lưu trong máy người dùng Đây là cách cơ bản
để duy trì các phiên làm việc, đặc biệt là các phiên đăng nhập Kiểm tra ứng dụngbằng cách chọn “cho phép lưu” (enable) hoặc “không cho phép lưu” (disable)cookies từ trình duyệt của bạn Kiểm tra các cookies có được mã hóa trước khi ghivào máy người dùng? Nếu bạn đang kiểm thử cookies (ví dụ cookies hết hạn saukhi kết thúc phiên làm việc), hãy kiểm tra các phiên đăng nhập và trạng thái củangười dùng sau khi phiên làm việc kết thúc Kiểm tra bảo mật ứng dụng bằng cáchxóa các cookies
Xác minh HTML/CSS:
Nếu bạn đang tối ưu hóa trang web của bạn cho các công cụ tìm kiếm(Search engines) thì việc xác minh HTML/SCC rất quan trọng Việc xác minh chủyếu là các lỗi cú pháp HTML Kiểm tra xem trang web có được nhận diện với cáccông cụ tìm kiếm khác nhau hay không?
Kiểm thử cơ sở dữ liệu:
Sự nhất quán về dữ liệu rất quan trọng trong ứng dụng web Kiểm tra tínhtoàn vẹn của dữ liệu và các lỗi khi bạn tạo/sửa/xóa các forms hoặc thực hiện bất kỳchức năng nào có liên quan tới CSDL
Kiểm tra tất cả các truy vấn CSDL có được thực thi chính xác không? Dữliệu có được lấy và cập nhật chính xác không?
b) Kiểm thử tính khả dụng
Kiểm thử cho chuyển hướng:
Trang 27Chuyển hướng nghĩa là cách thức người dùng lướt web (xem các trangwebs), sử dụng các điều khiển khác nhau như các nút bấm, các hộp (textbox,listbox…) hay cách người dùng sử dụng các đường links trong các trang để lướtweb.
Kiểm thử tính khả dụng:
Trang web phải dễ sử dụng Cung cấp các hướng dẫn rõ ràng, rành mạch.Kiểm thử xem các hướng dẫn đó có đúng như những gì nó phải đáp ứng không?
Mỗi trang đều cần có menu chính và menu này phải nhất quán
Kiểm thử nội dung:
Nội dung trang web phải hợp lý và dễ hiểu Kiểm tra các lỗi chính tả, cácmàu tối sẽ gây phiền phức cho người dùng và do đó không nên được sử dụng, cóthể theo một vài chuẩn nào đó được sử dụng cho việc xây dựng nội dung web Đây
là những chuẩn được chấp nhận phổ biến như đã chú ý ở trên, về màu sắc, fonts,frames…
Nội dung cần phải đầy đủ ý nghĩa Tất cả các đường links được gán phải làmviệc tốt Các tranh ảnh phải được đặt đúng chỗ với đúng kích thước, có một vàichuẩn cơ bản nên theo khi phát triển ứng dụng web
Các thông tin hỗ trợ người dùng:
Như lựa chọn tìm kiếm, sơ đồ trang web, các file hỗ trợ…Sơ đồ trang webcần có trong tất cả các links trong trang web với cây thư mục để hỗ trợ chuyểnhướng Kiểm tra tất cả cá links trong sơ đồ
Tùy chọn “Tìm kiếm trong trang web” sẽ giúp người dùng tìm kiếm cáctrang nội dung một cách dễ dàng và nhanh chóng, tất cả các mục cần được phô bày
và phải được xác minh
c) Kiểm tra giao diện
Các giao diện chính:
Trang 28- Giao diện web server và server ứng dụng
- Giao diện server ứng dụng và giao diện server cơ sở dữ liệu
Kiểm tra tất cả các tương tác giữa các servers có được thực thi đúng không?Các lỗi phải được nắm bắt chính xác, nếu server CSDL hoặc web server trả lại bất
kỳ thông điệp lỗi nào cho bất kỳ truy vấn nào từ server ứng dụng thì server ứngdụng phải bắt được và hiển thị thông điệp cảnh báo đó cho người sử dụng ngay lậptức Kiểm tra điều gì sẽ xảy ra nếu người dùng ngắt giao dịch đột ngột? Kiểm trađiều gì xảy ra nếu kết nối tới web server bị khởi động lại?
Danh sách các mục cần kiểm tra giao diện
Kiểm tra về tính thẩm mỹ của giao diện (Aesthetic check):
- Kiểm tra tra màu nền chung của toàn bộ màn hình có được set đúngtheo yêu cầu không?
- Kiểm tra tra màu chữ, font, font size của tất cả các textbox, label cóset đúng theo yêu cầu không?
- Kiểm tra background (màu nền) của tất cả các textbox, label có setđúng theo yêu cầu không?
- Kiểm tra tra màu chữ và màu nền của các textbox trong chế độ only có được set đúng theo yêu cầu hay không?
read Kiểm tra tất cả các control trên màn hình có được canh đều haykhông? (Label, textbox, checkbox, list…)
- Kiểm tra tra mặc định tất cả các ký tự chữ và ký tự số Ngoại trừtrường hợp có yêu cầu cụ thể
- Kiểm tra mặc định tất cả các số đều canh phải Ngoại trừ trường hợp
Trang 29- Kiểm tra tất cả các textbox có yêu cầu set border hay không?
- Kiểm tra độ phân giải của màn hình có được set theo đúng chuẩn yêucầu hay không? Ví dụ: độ phân giải tối thiểu là 800x600
Kiểm tra tính hợp lệ (Validation check)
Datatype varcher, nvarchar, ntext
- Kiểm tra maxlength
- Phân biệt chữ hoa/thường
- Phân biệt ký tự unicode
- Cho phép null hay không
- Cho phép nhập ký tự đặc biệt hay không?
Datatype (int, tinyint, float):
- Kiểm tra maxlength
- Kiểm tra giá trị max, min
- Có cho phép nhập ký tự chữ hay không?
- Cho phép nhập ký tự đặc biệt hay không?
- Có cho phép nhập ký tự số 2 byte hay không?
- Cho phép null hay không?
- Không được phép nhập blank ở vị trí đầu tiên của field số
- Không được phép nhập blank ở vị trí cuối cùng của field số
- Kiểm tra lỗi chia cho 0
- Kiểm tra giá trị 0 cho tất cả các tính toán
- Kiểm tra giá trị trong giới hạn max, min
- Kiểm tra giá trị bằng giá trị max, min
Datatype (datetime):
- Kiểm tra maxlength
- Kiểm tra ngày hợp lệ
- Có cho phép nhập chữ hay không?
- Có cho phép nhập ký tự đặc biệt hay không?
Trang 30- Có cho phép nhập ký tự số 2 byte hay không?
- Kiểm tra format theo kiểu nào?
- Kiểm tra đối với trường hợp năm nhuần có được tính đúng không?
- Kiểm tra giá trị 00 và 13 đối với tháng
- Kiểm tra giá trị 00 và 32 đối với ngày
- Kiểm tra giá trị 28 , 29, 30 -Feb có được tính đúng không?
Datatype (bit):
- Chỉ được phép nhập 0 hoặc 1
- Có cho phép null hay không?
- Kiểm tra nhập ký tự số 2 byte 0 hoặc 1
Kiểm tra tính thân thiện của chương trình (Usability check):
- Tất cả các danh sách có được sort hay không? Mặc định là sort theoalphabel Ngoại trừ trường hợp có yêu cầu sort cụ thể
- Tất cả các giá trị ngày tháng có được format theo đúng yêu cầu haykhông?
- Tất cả các button trên màn hình có được gán với phím tắt tương ứnghay không?
- Tất cả các phím tắt được gán có họat động đúng hay không?
- Thứ tự Tab có theo đúng trình tự Top left bottom right hay không?Ngọai trừ trường hợp có yêu cầu set thứ tự riêng biệt
- Kiểm tra tất cả các field read-only đều không có thứ tự tab
- Kiểm tra tất cả các field disable đều không có thứ tự tab
- Kiểm tra vị trí focus có được đặt ngay field đầu tiên hay control đầutiên khi load màn hình hay không? Ngọai trừ có trường hợp yêu cầuset vị trí focus cụ thể
- Trong trường hợp lỗi input, Khi hiển thị msg lỗi, có focus về vị trí lỗisau khi đóng cửa sổ thông báo hay không?
- Trong trường hợp lỗi thao tác, khi hiển thị msg lỗi, có focus về vị trí
Trang 31- Trong trường hợp gọi cửa sổ popup , sau khi đóng của sổ có focus về
vị trí trước đó hay không?
- Trong trường hợp chưa đóng cửa sổ popup, thì không được phépfocus xuống trang đang xử lý data
Kiểm tra tính ràng buộc dữ liệu (data integrity conditions)
- Data có được lưu khi đóng cửa sổ hay không?
- Kiểm tra chiều dài tối đa của tất cả các field, và đảm bảo các ký tựđều không bị cắt
- Kiểm tra giá trị max/min đối với ký tự số
d) Kiểm thử khả năng tương thích
Kiểm thử khả năng tương thích của trang web là một phần rất quantrọng
Trong đó ta thực hiện các việc sau:
- Kiểm thử sự tương thích với trình duyệt
- Kiểm thử sự tương thích với hệ điều hành
- Kiểm thử sự tương thích với thiết bị di động
- Kiểm thử sự tương thích với tùy chọn các thiết bị ngoại vi (máy in…)
Tương thích với trình duyệt:
Một vài ứng dụng phụ thuộc rất nhiều vào trình duyệt Các trình duyệt khácnhau có các cấu hình khác nhau và trang web của bạn cần tương thích với nó Trangweb của bạn phải được lập trình đáp ứng tương thích với các platform của trìnhduyệt Nếu bạn sử dụng Javascript, AJAX để xây dựng các chức năng giao diệnngười dùng, kiểm thử bảo mật hay xác minh, hãy kiểm tra tải trên trình duyệt choứng dụng của mình
Kiểm thử các ứng dụng web trên các trình duyệt khác nhau như IE, Firefox,Netscape, AOL, Safari, Opera với các phiên bản khác nhau
Tương thích với hệ điều hành:
Trang 32Một vài chức năng trong ứng dụng web của bạn có thể không tương thích vớitất cả các hệ điều hành Tất cả các công nghệ mới được sử dụng trong phát triểnweb như thiết kế đồ họa, giao diện được gọi như các API khác có thể không có sẵntrong mọi hệ điều hành.
Hãy kiểm thử các ứng dụng web của mình trên các hệ điều hành khác nhaunhư Windows, Unix, MAC, Linux, Solaris…
Trình duyệt trên thiết bị di động:
Nếu nhận được tùy chọn “in trang” thì phải đảm bảo tính chính xác của fonts,liên kết trang, đồ họa…Các trang phải được khớp với cỡ giấy
e) Kiểm thử hiệu năng
Ứng dụng web phải được duy trì với tải lớn
Kiểm thử hiệu năng bao gồm:
- Kiểm thử tải
- Kiểm thử áp lực
Kiểm thử hiệu năng ứng dụng với các tốc độ kết nối mạng khác nhau.Trong kiểm thử tải phải kiểm tra xem khi có nhiều người dùng cùng truy cậphoặc cùng yêu cầu một trang thì sao? Hệ thống có thể duy trì hoạt động trong giờbận được không? Trang web phải nắm bắt được nhiều yêu cầu đồng thời của ngườidùng, dữ liệu đầu vào lớn từ các người dùng, kết nối đồng bộ với DB, tải lớn trêncác trang đặc biệt…
Kiểm thử chịu tải: Thông thường stress test có nghĩa là đẩy hệ thống vượt rangoài giới hạn của nó Kiểm thử chịu tải một trang web là làm gián đoạn trang web
đó bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thống phản ứng lại vớitừng mức tải cụ thể đó như thế nào? Hệ thống phục hồi lại như thế nào?
Trang 33Trong kiểm thử hiệu năng website, các chức năng của trang website trên các
hệ điều hành, các nền tảng phần cứng khác nhau phải được kiểm tra để tìm ra cáclỗi phần mềm, thất thoát bộ nhớ…
f) Kiểm thử bảo mật
Một vài test case cho việc kiểm thử bảo mật web:
- Kiểm thử bằng cách gõ trực tiếp URL vào thanh địa chỉ của trìnhduyệt mà không qua đăng nhập Các trang nội bộ phải không đượcmở
- Nếu đã đăng nhập với username và password, và mở các trang nội bộ,hãy thử thay đổi URL trực tiếp Ví dụ, nếu kiểm tra một vài thống kêtrang với ID = 123, hãy thay đổi trực tiếp tham số ID của trang tớitrang thuộc quyền người dùng đã đăng nhập Truy cập phải bị từ chốibởi người dùng này bởi không cho phép xem số liệu thống kê củangười dùng khác
- Thử các giá trị đầu vào không hợp lệ trong các trường nhập nhưpassword, username…vào các textboxes Kiểm tra phản ứng của hệthống trước các đầu vào không hợp lệ này
- Các thư mục web hay các tệp tin không được truy nhập trực tiếp màkhông có tùy chọn “download”
- Kiểm tra CAPTCHA cho các đăng nhập tự động
- Kiểm tra SSL có được sử dụng cho đo mức bảo mật? Các thông điệp
có được hiển thị khi người dùng chuyển từ các trang không bảo mậtsang các trang có bảo mật và ngược lại
- Tất cả các phiên giao dịch, các thông điệp lỗi, các hành vi cố gắngxâm phạm an ninh phải được ghi trong các tệp nhật ký (log) và lưu tạiweb server
Trang 342.2 Tổng quan về hệ điều hành Android
2.2.1 Khái niệm hệ điều hành Android
Android là hệ điều hành thiết kế chủ yếu dành cho các thiết bị di động dựatrên nền tảng Linux như smartphones, tablet được phát triển bởi Google Ban đầuAndroid được phát triển bởi Android Inc sau đó Google mua lại năm 2005 Năm
2007, Android được công bố
Android là một hệ điều hành mã nguồn mở và các ứng dụng của Android dựatrên ngôn ngữ Java
Ứng dụng đầu tiên của Android được bán ra trong tháng 10 năm 2008 Đếncuối năm 2010, Google Android trở thành nền tảng cho smart phone hàng đầu thếgiới
2.2.2 Lịch sử phát triển của hệ điều hành Android
Tháng 10/2003, Android được thành lập tại Palo Alto, California bởi AndyRubin (đồng sáng lập của Danger), Rich Miner (đồng sáng lập của WildfireCommunications, Inc), Nick Sears (từng là phó chủ tịch của T - Mobile) và ChrisWhite (trưởng nhóm thiết kế và phát triển giao diện tại WebTV) Ban đầu, AndroidInc hoạt động bí mật và rất ít thông tin về các công việc của Android, ngoại trừ việc
họ đang phát triển phần mềm dành cho điện thoại di động
Tháng 7 năm 2005, Google mua lại Android Inc Các nhà sáng lập raAndroid do Rubin đứng đầu chuyển sang làm việc cho Google Họ đã phát triểnmột nền tảng thiết bị di động dựa trên Linux
Tháng 12 năm 2006, ngày càng có nhiều suy đoán rằng Google sẽ tham giathị trường điện thoại di động và họ đang nỗ lực thực hiện điều này
Tháng 9 năm 2007, InformationWeek đăng tải một nghiên cứu củaEvalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnhvực điện thoại di động
Trang 35Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở rộng (OpenHandset Alliance) được thành lập Trong ngày này, Liên minh thiết bị cầm tay mởrộng đã giới thiệu sản phẩm đầu tiên của họ, Android một nền tảng thiết bị di độngđược xây dụng dựa trên Linux 2.6.
Tháng 10 năm 2008, Google mở toàn bộ mã nguồn thông qua giấy phép củaApache
Ngày 9 tháng 12 năm 2008, có thêm 14 thành viên mới gia nhập dự ánAndroid được công bố
Cuối năm 2010, Android trở thành hệ điều hành hàng đầu dành chosmartphone
Tháng 9 năm 2012, đã có 675.000 ứng dụng có sẵn cho Android và ước tínhcác ứng dụng tải về từ Google Play là 25 tỷ đồng
2.2.3 Cấu trúc của hệ điều hành Android
Cấu trúc của Android được ví như cấu trúc của một ngôi nhà gồm 5 phòng
Đó là: Applications, Application Framework, Libraries, Android Runtime vàLinux Kernel
Trang 36Hình 2-3: Kiến trúc của hệ điều hành Android
Applications
Đây là tầng bao gồm tất cả các ứng dụng có trong thiết bị chạy Android như:phone, contact, game, browwer,…và một số ứng dụng chạy ngầm Người dùng cóquyền gỡ bỏ hay cài đặt các ứng dụng tùy thích ở tầng này
The Application Framework
Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứngdụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng
vô cùng sáng tạo và phong phú Các nhà phát triển ứng dụng được tự do sử dụngcác tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng
Trang 37chạy dịch vụ dưới nền, thiết lập đồng hồ báo thức, them notification vào status bar
cỏ màn hình thiết bị
Libraries
Libraries bao gồm một số các thư viện C/C++ được sử dụng bởi các thànhphần khác nhau của hệ thống Android, một số thư viện cơ bản như: System CLibrary, SQLite, Media Libraries, 3D Libraries,…
Android Runtime
Mỗi ứng dụng Android chạy trên một tiến trình riêng của máy ảo Dalvik(vitural machine).Dalvik được viết để chạy nhiều máy ảo cùng một lúc một cáchhiệu quả trên thiết bị di động.Hệ điều hành Android tích hợp sẵn một tập hợp cácthư viện cốt lõi cung cấphầu hết các chức năng có sẵn trong các thư viện lõi củangôn ngữ lập trình Java
Mọi ứng dụng của Android chạy trên một tiến trình của riêng nó cùng vớimột thể hiện của máy ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảoJava được sửa đổi, bổ sung các công nghệ đặt trong của thiết bị di động, nó đượcxây dựng với mục đích làm cho các thiết bị di động có thể chạy nhiều máy ảo mộtcách hiệu quả Trước khi thực thi, bất kì ứng dụng Android nào cũng được convertthành file thực thi với định dạng nén Dalvik Executable (.dex), định dạng này đượcthiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý Ngoài
ra máy ảo Dalvik sử dụng bộ nhân Linux để cung cấp các tính năng như: thread,low-level memory management
Linux Kernel
Đây là nhân của hệ điều hành Android.Mọi xử lý các hệ thống đều phảithông qua tầng này Linux Kernel cung cấp các trình điều khiển thiết bị phần cứngnhư: camera, USB, Bluetooth,…Kernel hoạt động như một lớp trừu tượng giữaphần cứng và phần mềm còn lại của hệ thống
Trang 382.2.4 Những vấn đề cần quan tâm khi kiểm thử ứng dụng Android
a) Những vấn đề chung
Thiết bị cầm tay và các nhà cung cấp:
Số lượng các nhà sản xuất thiết bị cầm tay và các hãng tham gia trong thếgiới Android ngày càng gia tăng
Theo trang web chính thức của Android, các thiết bị Android đều có sẵn tại
25 quốc gia Trên thế giới, 23 nhà sản xuất sản xuất điện thoại Android Trên toàncầu, có khoảng 250 chính thức công nhận điện thoại di động Android hiện có trênthị trường Thu hẹp phạm vi, Hoa Kỳ và vẫn còn có khoảng 100 thiết bị khác nhauđược sản xuất bởi 15 nhà sản xuất và được hỗ trợ bởi bảy nhà cung cấp Gần 20thiết bị này bao gồm một bàn phím vật lý, trong khi phần còn lại là màn hình cảmứng và đừng quên Samsung Galaxy Lưu ý, không chỉ có một kích thước màn hìnhduy nhất, nhưng cũng có một bút stylus (không giống như bất kỳ thiết bị Androidkhác), bởi vì mỗi thiết bị có thông số kỹ thuật riêng của mình - bao gồm thiết kế vật
lý và các thuộc tính giao diện người dùng tùy chỉnh thử nghiệm bảo hiểm nên baogồm các thiết bị càng nhiều càng tốt
Kích cỡ màn hình và độ phân giải:
Android phân loại tất cả các thiết bị một trong bốn kích cỡ màn hình và mộttrong bốn độ phân giải sau:
- Màn hình kích thước: nhỏ, bình thường, lớn, lớn hơn
- Độ phân giải: độ phân giải thấp, độ phân giải trung bình, độ phân giảicao, độ phân giải cao hơn
Có thể thấy các thiết bị phổ biến nhất là trong phạm vi kích thước màn hìnhtrung bình, mật độ phân giải cao hoặc trung bình Thông tin này được cập nhật kháthường xuyên trên trang web phát triển Android, vì vậy hãy kiểm tra nó thườngxuyên như các thiết bị tung ra thị trường
Phiên bản nền tảng:
Trang 39Android hỗ trợ và theo dõi 10 nền tảng / phiên bản khác nhau, từ
"Cupcake" 1,5 "Ice Cream Sandwich" 4.2 (tại thời điểm công bố) Không phải tất cảcác thiết bị hỗ trợ tất cả các phiên bản nền tảng và phiên bản mới được phát hànhcho tất cả các nhà sản xuất thiết bị cầm tay cùng một lúc, thay vào đó phiên bản mớiđược phát ra nhỏ giọt thường khiến người dùng háo hức chờ đợi
Bằng cách thử nghiệm một ứng dụng độc quyền trên phiên bản mới nhất,người sử dụng sẽ cô lập một số lượng rất cao khách hàng Ngược lại, nếu người sửdụng không cập nhật một ứng dụng để làm việc nhất quán trên các phiên bản mớihơn, có thể bị mất những người dùng hiện tại khi họ nâng cấp
b) Các chiến lược của kiểm thử ứng dụng trên thiết bị di động hệ điều hành
Android
Các ứng dụng mà doanh nghiệp cung cấp trên các thiết bị di động đang mởrông trên nhiều nơi làm việc Nhiều ứng dụng triển khai trên máy tính để bàn ngàynay cũng được chuyển đến thiết bị di động và điện thoại di động, ứng dụng đangđược xây dựng như các ứng dụng trên máy tính linh hoạt và đáng tin cậy Sau đây lànhững thách thức riêng của các ứng dụng điện thoại di động: công cụ điện thoại diđộng, cách tiếp cận và sử dụng, các chức năng, kiểm thử tự động và kiểm thử hiệunăng ứng dụng di động
Sự phát triển của điện thoại di động
Có thể nói rằng việc sử dụng các ứng dụng di động đang bùng nổ Trong năm
2010 các cửa hàng ứng dụng di động ước tính tổng doanh thu lên tới 6.2 tỷ USD,trong đó 4.5 tỷ USD tải ứng dụng Đến năm 2013, một số nhà phân tích mong đợidoanh thu của ứng dụng di động vượt quá 21 tỷ USD Như hình sau cho thấy cácthiết bị di động đã phổ biến nhất
Trang 40Hình 2-4: Mức độ phổ biến của điện thoại di động
Hình 2-5: Một số ứng dụng trên di động, trang web
Những thách thức chính trong kiểm thử ứng dụng di động