19 Mar, 2021
Kiểm thử di động
Ngày nay điện thoại thông minh và máy tính bảng là “nóng”. Những thiết bị này là mới nhưng đã có trên một tỉ người dùng. Bởi vì chúng là phổ biến, chúng phải tin cậy, an ninh, và có phẩm chất cao. Khi việc dùng của chúng tăng lên thì nhu cầu về nhiều ứng dụng cũng tăng lên. Đó là lí do tại sao phát triển và kiểm thử ứng dụng di động là việc làm “nóng” trong công nghiệp công nghệ thông tin.
Điện thoại thông minh về căn bản là tổ hợp của máy tính và điện thoại cho nên nó là thiết bị phức tạp hơn laptop. Có khác biệt giữa kiểm thử ứng dụng di động và kiểm thử ứng dụng laptop. Nhiều người nghĩ “Phần mềm là phần mềm, nếu tôi có thể kiểm thử phần mềm trên laptop, tôi có thể kiểm thử phần mềm trên điện thoại thông minh.” Mặc dầu các nguyên lí kiểm thử là như nhau nhưng kĩ thuật là khác và yêu cầu nhiều tập trung hơn. Trước khi xây dựng hay kiểm thử ứng dụng di động, bạn cần biết rằng sẽ có hàng triệu người dùng nó. Đưa ra một điện thoại với nhiều lỗi có thể là thảm hoạ. Khách hàng có thể phàn nàn và công ti có thể mất hàng triệu hay hàng tỉ đô la ngay lập tức. Điều gì sẽ xảy ra nếu điện thoại không làm việc? Điều gì sẽ xảy ra nếu dữ liệu trên điện thoại biến mất? Điều gì sẽ xảy ra nếu người dùng không thể làm được cuộc gọi? Điều gì sẽ xảy ra nếu tin nhắn đi tới người sai? Điều gì sẽ xảy ra nếu an ninh của điện thoại bị phá hoại? Công nghiệp di động có lợi nhuận thấp do cạnh tranh mạnh cho nên công ti phải dựa vào số bán lớn. Do đó thương hiện là quan trọng vì công nghiệp di động rất cạnh tranh, nếu khách hàng không hài lòng, thương hiệu sẽ bị tổn hại.
Trong ứng dụng di động, kiểm thử hầu như được thực hiện bằng việc dùng bộ mô phỏng hay dịch vụ truy nhập thiết bị từ xa. Dịch vụ truy nhập thiết bị từ xa cho phép bạn kết nối qua internet tới dịch vụ thực mà được các công ti cung cấp cho việc dùng kiểm thử của bạn. Tuy nhiên, kiểm thử cuối cùng bao giờ cũng nên được thực hiện trên điện thoại thực mà khách hàng sẽ mua tại cửa hàng. Bạn cần hiểu rằng có nhiều điều xảy ra bên dưới mức ứng dụng trên điện thoại. Cho dù bạn dùng bộ mô phỏng bạn phải chú ý tới giao diện người dùng (UI), bạn sẽ thấy rằng có nhiều điều xảy ra đồng thời. Trong khi ứng dụng di động của bạn chạy, điện thoại vẫn tương tác với mạng, định vị vị trí của bạn, nhận cuộc gọi, gửi tin nhắn v.v. Có nhiều thứ mà bạn có thể không nhìn thấy. Điều gì xảy ra khi bạn chơi trò chơi trên điện thoại thông minh và nhận cuộc gọi, và một tin nhắn? Điều gì xảy ra khi bạn tải xuống video và một tin nhắn tới?
Kiến trúc điện thoại di động bao gồm vài tầng và bạn phải kiểm thử tất cả chúng. Việc kiểm thử bao gồm kiểm thử mức phần cứng nơi bạn kiểm thử tầng trình điều khiển thiết bị. Tầng này kiểm soát giao diện với bộ xử lí, màn hình, bộ nhớ và bản thân sóng vô tuyến. Đây là khu vực chuyên dụng cao và yêu cầu tri thức về phần cứng để được bắt đầu vào. Tầng tiếp là tầng giao thức nơi điện thoại di động có một số sóng vô tuyến khác nhau trong nó điều tạo khả năng cho nó nói chuyện với mạng điện thoại di động ở khu vực khác và nước khác, và cũng vậy với Bluetooth, Wi-Fi, v.v. Kiểm thử tại mức này thỉnh thoảng được gọi là kiểm thử chồng giao thức, và nghĩa là kiểm thử so với đa dạng đặc tả như 3GPP. Điều này yêu cầu tri thức về xử lí tín hiệu và kĩ nghệ sóng vô tuyến. Bạn phải định cỡ tín hiệu mạng đang thay đổi, ghi lại và phân tích kết quả, để xem liệu điện thoại có khả năng làm việc trong mọi loại môi trường tín hiệu khác nhau không. Tầng tiếp là kiểm thử các ứng dụng nơi bạn phải chắc rằng phần mềm trong điện thoại làm việc. Bạn phải hiểu cách hệ điều hành của điện thoại bạn đang kiểm thử thật rõ để cho bạn có thể thiết kế kiểm thử tương ứng với đặc tả của công ti (như, iOS, Android, Windows 8, v.v.) Bạn cũng cần kiểm thử để tuân thủ theo chứng nhận; mọi điện thoại đều được xác nhận theo chuẩn nào đó. Không đáp ứng các chuẩn này thì không thể bán được ứng dụng đặc thù cho cửa hàng apps. Phần lớn các cửa hàng ứng dụng di động đều có tiêu chí đệ trình nào đó cho nên bạn phải chắc rằng bạn đáp ứng cho nhưng yêu cầu này?
Điện thoại di động có bộ nhớ giới hạn và năng lực xử lí giới hạn, cho nên điều quan trọng là kiểm thử cách thiết bị làm việc khi nó đang đầy năng lực. Điều cũng quan trọng là nghĩ về tuổi thọ của pin liệu pin có hết chóng hơn với app của bạn chạy không và điều gì xảy ra khi pin hết? Tuổi thọ pin tốt là rất quan trọng cho người dùng, điều gì xảy ra khi người dùng cần gọi điện thoại nhưng pin chết? Bạn phải kiểm thử tính dùng được. Tính dùng được nghĩa là kiểm thử nó trên người dùng thực về cách họ tương tác với ứng dụng? Dùng ứng dụng dễ thế nào? Các ứng dụng khó dùng thường bị xoá đi một khi người dùng thấy khó dùng. Bạn cần biết cách ứng dụng khớp với màn hình nhỏ. Chữ có dễ đọc không? Cách ứng dụng của bạn trông trên màn hình nhỏ là rất quan trọng. App có chạy nhanh không? Người dùng có cảm thấy họ đang đợi quá lâu cho màn hình tải xuống hay đáp ứng được nhận lấy? Tính dùng được là rất quan trọng trong thiết bị di động vì màn hình càng nhỏ; càng khó tương tác với nó
Khi bạn biết khác biệt và sẵn lòng làm việc trên nó, có phần thưởng lớn vì nhu cầu về người phát triển và người kiểm thử app di động đang tăng lên nhanh chóng. Nếu bạn chuyển giao app tốt, nó sẽ chóng được tải xuống bởi hàng triệu người dùng và bạn có thể trở nên giầu nhanh nữa. Vài năm trước, ba người phát triển tạo ra trò chơi “Angry bird” và mong đợi vài nghìn người dùng nhưng nó đã được tải xuống gần cả tỉ lần và làm cho họ thành triệu phú. Tuy nhiên, app di động yêu cầu chất lượng cao và chính chất lượng của nó giúp cho mọi người mua điện thoại mới cho nên việc làm then chốt không phải là phát triển app mà là kiểm thử app để chắc nó làm việc tốt và đó là lí do tại sao nhiều người kiểm thử di động làm trên $120,000 đô la một năm.
—-English version—-
Mobile testing
Today smartphones and tablets are “Hot”. These devices are new but already have over billion of users. Because they are popular, they must be reliable, secure, and have high quality. As their usage increases so does the need for more apps. That is why mobile app developing and testing are the “Hot” jobs in the Information technology industry.
Smart phone is basically a combination of a computer and a phone so it is a device more complex than laptops. There is a difference between testing mobile applications and testing laptops applications. Many people think “Software is software, if I can test software on laptop, I can test software on smart phone.” Although testing principles are the same but techniques are different and require more focus. Before building or testing mobile app, you need to know that there will be millions of users to use it. Releasing a phone with many bugs could be a disaster. Customers could complain and company may lose millions or billions of dollars immediately. What will happen if the phone does not work? What will happen if the data on the phone disappear? What will happen if users cannot make a call? What will happen if the text message goes to the wrong user? What will happen if the security of the phone is compromised? The mobile industry is a low profit due to intense competition so company must rely on high volume sale. Therefore brand name is important as the mobile industry is very competitive, if customers are not happy, the brand will be damaged.
In mobile applications, testing is mostly performed using emulators or remote device access services. Remote device access services allow you to connect over the internet to real devices which are provided by companies for your testing use. However, final testing should always be performed on the real phone that the customer will buy in the shops. You need to understand that there are many things happening below the application level on a phone. Even if you use emulators you should pay attention at the user interface (UI), you will find that there are many things happening at the same time. While your mobile application runs, the phone is still interact to the network, positioning your location, receiving calls, sending texts etc. There are many things that you may not see. What happens when you play games on your smart phone and receive a call, and a text message? What happens when you download a video and a text message comes in?
Mobile phone architecture consists of several layers and you must test them all. Testing consists of hardware level testing where you test the device driver layer. This layer controls the interface to the processors, screen, memory and the radios themselves. This is a highly specialized area and requires knowledge of hardware to get started in. The next layer is the protocol layer where the mobile phone has a number of different radios in it that enable it to talk to the mobile phone networks in different areas and countries, and also for Bluetooth, Wi-Fi, etc. Testing at this level is sometimes called protocol stack testing, and means testing against various specifications such as 3GPP. This requires knowledge of signal processing and radio engineering. You must calibrate where the network signal is changing, record and analyze the results, to see if the phone is able to work in all sorts of different signal environments. The next layer is applications testing where you make sure that the software in the phone works. You must understand how the operating system of the phone you are testing well so you can design the test according to the company specifications (i.e., iOS, Android, Windows 8, etc.) You also need to test for certification compliance; all phones are certified to certain standards. Without meeting these standards then it is impossible to sell a particular application to an apps store. Most mobile applications stores have certain submission criteria so you need to make sure that you meet these requirements?
Mobile phones have limited memory and limited processing capacity, so it is important to test how the devices work when it is full of capacity. It is also important to think about battery life whether the battery run down quicker with your app running and what happens when the battery runs out? Good battery life is very important to users, what happen when user needs to make a call but the battery is dead? You must test for usability. Usability means testing it on real users on how they interact with the application? How easy is it to use the application? Difficult-to-use applications are often deleted once users find it is difficult to use. You need to know how the application fit the small screen. Is the text easy to read? How does your app look on a small screen is very important. Does the app run fast? Do users feel they are waiting too long for a screen to load or response to be received? Usability is very important in the mobile devices because screen is smaller; it’s more difficult to interact with it
As you know the difference and willing to work on it, there is great reward as the need for mobile app developers and testers is increasing fast. If you deliver good app, it soon be downloaded by millions of users and you can get rich fast too. Few years ago, three developers create “Angry bird” and expect few thousands users but it was downloaded to almost a billion times and made them millionaires. However, mobile app requires high quality and it is the quality of that helps people to buy the new phone so the key job is not develop app but testing app to make sure it works well and that is why many mobile testers make over $120,000 dollars a year.