DI ĐỘNG VÀ PHƯƠNG PHÁP PHÁT TRIỂN LINH HOẠT
3.2. Kỹ thuật sinh ca kiểm thử và dữ liệu dựa trên yêu cầu người dùng và điều kiện chấp
3.2.2.2. Bài toán thực nghiệm cho phương pháp đề xuất
Ứng dụng được dùng trong nghiên cứu này là dự án ACM (Academic Conferrence Management – phiên bản di động iOS và Android). Ứng dụng này sẽ cung cấp một giải pháp cho các hội nghị, hội thảo của một trường đại học hoặc một tổ chức. Ứng dụng sẽ cung cấp cho người tham dự sự kiện dễ dàng chia sẻ hoạt động của họ, theo dõi lịch biểu của họ, ghi chú nhanh, gửi tin nhắn thời gian thực cũng như nhiều tính năng khác.
Các bước thực hiện:
Bước 1: Xác định các US của ứng dụng
Là một người tham dự (attendee), họ muốn xem thông tin về các hội nghị, quản lý hồ sơ và lịch biểu của họ. Trong một cuộc họp, người tham dự muốn kết nối với mọi người bằng cách theo dõi họ và gửi một tin nhắn. Người tham dự cũng có thể chụp ảnh, viết một cái gì đó về các hoạt động và sau đó chia sẻ với những người tham dự khác để họ có thể xem, thích và nhận xét về bài viết.
Hình 3.6 Giao diện của ứng dụng ACM
Hơn nữa, ứng dụng phải thơng báo về các tương tác như ai đó thích hoặc nhận xét về bài viết của mình, đặc biệt là trước khi bất kỳ hoạt động nào được bắt đầu 30 phút.
Ban tổ chức nên cho phép người tham dự xếp hạng diễn giả và hoạt động vì bất kỳ hoạt động nào được hồn thành, người tham dự cũng có thể gửi đánh giá cho họ để họ biết hội nghị của họ là tốt hay khơng; do đó, họ có thể cải thiện cho các hội nghị khác trong tương lai.
Bên cạnh đó, nếu người tham dự muốn biết thêm thơng tin và có bất kỳ vấn đề gì với các hội nghị đó, người tham dự có thể gửi câu hỏi cho ban tổ chức để nhờ họ giúp đỡ. Các yêu cầu này được viết lại theo đúng cú pháp “As a < user >, I want < action
> so that I can < benefit >”. Ứng dụng này được phát triển bằng tiếng Anh, nên các dữ liệu về dự án được phép để nguyên bản ở trong luận án.
Bảng 3.7. Danh sách các user stories của ứng dụng ACM
Story Tên tính User stories- Câu chuyện
năng của Mơ tả
No. người dùng
sản phẩm
As an attendee, I want to Attendee can register to join in US01 Register register to join the conference They have a valid account
conference to use the apps in the conference As an attendee, I want to
receive a ticket which is Get a ticket (represented as
US02 Ticket-box provided by organizers, so a QR code) from the organizer after that I can use it to check- successful register and paid (if yes) in.
As an attendee, I want to Allow attendees to post photos, feeling of activities which they have attended News post my photos or
US03 (limited 140 characters). They can take posting feeling of activities
a photo by using a smartphone and which I have attended
directly post on the News- feed.
As an attendee, I want to The notification will be displayed when: receive notification
+ Someone likes or comments an when someone likes or
US04 Notification attendee’s activities. comments on my posts
+ Before 15 - 30 minutes to remind and remind me before
each activity is started. each activity is started.
Show list of people and it will be As an attendee, I want to arranged by Alphabet. People able to US05 People List view a list of people, find filter by speakers, participants or who
and follow them. have top points. Allow attendees to find people and follow them.
Story Tên tính User stories- Câu chuyện
năng của Mô tả
No. sản phẩm người dùng
Show schedule of all activities which As an attendee, I want to will be occurred for each day (detail of view the conference’s schedule). The activities will be filtered US06 Agenda schedule, choose any by tags. The attendees can view, choose activities to attend or activities which they want to attend, or cancel. cancel the activities. The schedules will
be sorted by date.
As an attendee, I want to Allow an attendee to send message to US07 Messenger send a message to one or
one or more people more person.
As an attendee, I want to Show activities of people in the view posts of people,
US08 News Feed conference. Allow attendees to like and like and comment on
comment. each post.
As an attendee, I want to The schedule of each activity chosen by US09 Personal view the schedule of attendees will be added or cancelled
Agenda each activity which I automatically to personal schedule. The have added to attend. schedule will be sorted by date.
Show the detail of each activity such as: Conference As an attendee, I want to - title - date (dd/mm/yyyy), hour (from US10 view detail of the to) - sitemap (floor, room) =¿
Detail
conference. represented as a photo - description - organizer
As an attendee, I want to
Attendee have a profile since I Includes basic information US11 have invited to attend a about an attendee and they can also
Profile
conference so that I can update their profile. connect with the others.
Document As an attendee, I want to Allow attendees to down load: US12 download photos, videos presentation, photos, and
Downloader
or speeches. videos.
Conference As an attendee, I want to Allow attendees to send feed back to
US13 send feedback to an
Feedback the organizer.
organizer.
As an attendee, I want to Show a popup after the activities are Activities rate and comment on the
US14 finished for attendees to rate and
Rating activities I have
comment. attended.
US15 Question As an attendee, I want to Allow attendees to send questions
Story Tên tính User stories- Câu chuyện
năng của Mô tả
No. sản phẩm người dùng
and ask questions during an during an activity. Answer activity.
Speakers As an attendee, I want to Allow attendees to rate the speakers US16 after a speech is finished, if a speech is
Rating rate the speakers.
still not presented, they cannot rate. As an attendee, I want to Allow attendees to send questions to Help and receive support from the
the organizer if they have any problems US17 Live conference’s staffs if I
or want to know more information Support need more information
about the conference. or have any problems.
As an attendee, I want to Allow users to view where the
US18 Map know the location of the conferences are on the map (supported conference. by google map)
Activity As an attendee, I want to Show information about an activity US19 includes: - Title - Time (date, start -
Detail view detail of an activity.
end) - Description – Place (room...)
Bước 2: Xác định các điều kiện chấp nhận AC
Dựa trên đặc tả US ở bảng trên, PO và kỹ sư kiểm thử sẽ tiến hành xác định các điều kiện chấp nhận AC cho từng US của sản phẩm. Cú pháp đặt tả AC: When I < input > X and < process > Y, I will check for < outcome >Z as the result. Vì dữ liệu đặc tả cho từng US nhiều, ở đây chỉ minh hoạ cho một US01- Register của ACM.
Bảng 3.8. Đặc tả điều kiện chấp nhận cho chức năng Register (US01)
AC ID. Input Process Output
AC1 Valid Pre-condition: fieldname.length > 0; // All Register Username, fields are not null successfully First name, Condition: Username is at least 4 characters
Lastname, and less than 16 characters and no special Email, characters.
Password, Email is valid format.
Institution, The password is at least 8 characters. Detail-Info The password contains a character from
Numbers Special Characters (!,@,#,$,%,ˆ,and,*)
AC2 Invalid (Username.length > 0 and Username.length Register failed Username < 4) or Username.length > 16 or User-
AC ID. Input Process Output
ˆ name.contains( !%$#@ and ?/()*+-=)
AC3 Invalid Password.length < 8 OR NOT Register Password Password.contains(!,@,#,$,%,ˆ,and,*) OR failed
NOT Password.contains(0,1,2,3,4,5,6,7,8,9)
AC4 Invalid Email Invalid email address Register failed AC5 Invalid First-name, Last-name, Instituion do not Register
Firstname, left blank; other fields are valid failed Lastname, Firstname.length< =0 OR Lastname.length Institution <=0 OR Institution.length <=0
Bước 3: Đặc tả yêu cầu sang ngôn ngữ myDSL
Ở giai đoạn này, người kỹ sư kiểm thử xác định lại các yêu cầu và tiêu chí chấp nhận trong ngôn ngữ đặc tả đã được đề xuất trong giải pháp. Trên thực tế, đây chỉ là khởi đầu của quy trình tạo kịch bản kiểm thử, dữ liệu kiểm thử trong mơ hình đề xuất.
Các bước 1 và bước 2 được thực hiện bởi PO hoặc kỹ sư kiểm thử (đại diện cho khách hàng, sử dụng quan điểm của khách hàng để xây dựng chiến lược kiểm tra hệ thống). Tạo myDSL dựa trên tiêu chí chấp nhận cho mỗi câu chuyện của người dùng. Hình 3.7 là một ví dụ cho US Register (US01).
Bước 4 và 5: Sinh trường hợp kiểm thử và dữ liệu kiểm thử
Bước này được thực hiện tự động bao gồm 2 bước (1) dịch tệp .agt được mô tả
trong bước 3 sang Z3 SMT (tệp .smt2) và (2) gọi cơng cụ Z3 SMT để tìm mơ hình, Bảng 3.5 là trường hợp thử nghiệm / kiểm tra đầu vào được tạo ra. Kết quả dữ liệu được tạo ra để đăng ký tài khoản trong Bảng 3.5. Thực thi dữ liệu thử nghiệm bằng Cucumber Hình 3.8.
Hình 3.8 Kết quả sinh Unit test cho Register class sử dụng tính năng sinh kịch bản BDD