4. Cài đặt và kiểm thử hệ thống:
1. Chụp ảnh một số màn hình của ứng dụng và các đoạn mã nguồn chính kèm theo giải thích bằng lời:
- Giao diện trang chủ
Hình 4.1.a: Một phần giao diện trang chủ
Một phần đoạn mã giao diện Trang chủ
<p class="lead text-white">Đọc sách ^^!<br><br>Đọc sách mang lại cho ta rất nhiều tri thức mới, đưa ta đến với văn hóa từ các nơi trên thế giới, nhưng kiến thức uyên sâu mà ông cha ta đã để lại, nhưng vẻ đẹp kì vĩ của thiên nhiên, ...<br><br>Không chỉ mang đến lợi ích
từ việc đọc sách, việc đọc sách song ngữ có thể giúp trau dồi thêm khả năng về ngôn ngữ của nước ngoài, lại mở rộng hơn về văn hóa và lỗi sống của họ. <br><br>Với mục đích đó, những mẩu truyện được sưu tầm giúp chúng ta có thể vừa tiếp
thu thêm kiến thức, vừa trau dồi vốn từ vựng và ngữ pháp, lại vừa có thể thư giãn sau một ngày làm việc căng thẳng <br><br>Nào chúng ta cùng đọc sách nào! </p>
</div>
- Giao diện truyện mới cập nhập
Hình 4.1.b: Giao diện truyện mới cập nhập
Một phần đoạn mã giao diện Truyện mới cập nhập
<% @truyens.each do |t|%>
<div class="section">
<div class="container">
<div class="row">
<div class="col-md-4">
<a href="<%=truyen_path(t)%>" title="<%= truncate t.content_vn, length: 400 %>"><img src="<%=t.image%>"
class="img-responsive"></a>
</div>
<div class="col-md-3">
<h1 align="center"><a href="<%=truyen_path(t)%>" title="<%= truncate t.content_vn, length: 400 %>"><%= t.name_vn %></a></h1>
<p><%= truncate t.content_vn, length: 200 %></p>
</div>
<div class="col-md-3">
<h1 align="center"><a href="<%=truyen_path(t)%>" title="<%= truncate t.content_vn, length: 400 %>"><%= t.name_en %></a></h1>
<p><%= truncate t.content_en, length: 200 %></p>
</div>
def show
@theloais=Theloai.all
@truyens=Truyen.order("updated_at DESC")
# CODE LAY DU LIEU RATE TUNG TRUYEN ( CODE NAY DI KEM CODE TRONG view)
@average_rate=0
@Is_average_rate_int=true
@count=0
end
- Giao diện đọc truyện với phần bình luận
Hình 4.1.b: Giao diện đọc truyện với phần bình luận
Một phần đoạn mã giao diện Đọc truyện
<!--BINH LUAN-->
<div class="py-5">
<div class="container bg-faded">
<div class="row">
<div class="col-md-12">
<strong class=""><%="#{@binhluan_num} bình luận"%></strong>
<% if current_user %>
<%= form_for (@binhluan) do |f| %>
<%= f.text_area :content ,class: "form-control"%>
<%= f.hidden_field :truyen_id, :value => @truyen.id %>
<%= f.hidden_field :user_id, :value => "#{current_user.try(:first_name)} #{current_user.try(:last_name)}"%>
<br>
<%= f.submit "Gửi bình luận",class: "btn btn-outline-danger" %>
<%end%>
<%else%>
<textarea class= "form-control"></textarea>
<br>
<a href="<%=login_path%>" class="btn btn-outline-danger">Đăng nhập để bình luận</a>
<%end%>
</div>
</div>
<br>
<% @binhluans.each do |t|%>
<div class="row bg-faded">
<div class="col-md-1"><img src="https://pingendo.com/assets/photos/user_placeholder.png" class="center-block rounded-circle img-fluid my-3"></div>
<div class="col-md-11 my-4" style="word-wrap: break-word;">
<strong><%=t.user_id%></strong>
<p class="lead"><%=" đã bình luận | #{time_ago_in_words(t.created_at.in_time_zone(7))} ago :"%></p>
<p><%= simple_format(t.content)%></p>
</div>
</div>
<%end%>
</div>
</div>
2. Kiểm thử đơn vị, kiểm thử chấp thuận tự động được xây dựng như thế nào, thống kê số lượng ca kiểm thử, kết quả chạy thử bao phủ được bao nhiêu phần trăm tổng số dòng mã nguồn:
- Kiểm thử đơn vị:
Kiểm tra thanh bar:
Given /^I am on home page$/ do
visit root_path
end
Given(/^I am on the login page$/) do
visit login_path
end
Then(/^I should see "([^"]*)"$/) do |arg1|
page.should have_content(arg1)
end
When(/^I click "([^"]*)"$/) do |arg1|
click_on(arg1, match: :first)
end
When(/^I fill in "([^"]*)" with "([^"]*)"$/) do |arg1, arg2|
fill_in(arg1.gsub(' ', '_'), :with => arg2)
end
Then /^I should be on home page$/ do
current_path.should == home_path
end
Then(/^I should be on my own session$/) do
current_path.should == login_path
end
Then(/^I can see "([^"]*)"$/) do |arg1|
page.should have_content(arg1)
end
And(/^I should see "([^"]*)" page$/) do |arg|
page.should have_content(arg)
end
Then(/^I should see "([^"]*)" option$/) do |arg|
page.should have_content(arg)
end
Kiểm tra phần thể loại:
Given(/^I am on "([^"]*)" page$/) do |arg|
if arg == "Truyện Ngắn"
visit theloai_path(1)
elsif arg == "Truyện Ngụ Ngôn"
visit theloai_path(2)
elsif arg == "Truyện Cổ Tích"
visit theloai_path(3)
end
end
Then(/^I should see content of "([^"]*)"$/) do |arg|
page.should have_content(arg)
end
Then(/^I should on "([^"]*)" story's content page$/) do |arg|
page.should have_content(arg)
end
When(/^I click on the "([^"]*)"$/) do |arg|
if arg == "1. Truyện Ngắn"
arg = "Truyện Ngắn"
elsif arg == "2. Truyện Ngụ Ngôn"
arg = "Truyện Ngụ Ngôn"
elsif arg == "3. Truyện Cổ Tích"
arg = "Truyện Cổ Tích"
end
click_on(arg, match: :first)
end
Kiểm tra phần truyện:
Then(/^I should see "([^"]*)" story's information$/) do |arg|
visit truyen_path(7)
end
And(/^I should see "([^"]*)" story's content in VietNamese$/) do |arg|
visit truyen_path(7)
end
And(/^I should see "([^"]*)" story's content in English$/) do |arg|
visit truyen_path(7)
end
Kiểm tra trang chủ:
Then(/^I should be on "([^"]*)" page$/) do |arg|
if arg == "Truyện ngắn"
current_path == theloai_path(1)
elsif arg == "Truyện ngụ ngôn"
current_path == theloai_path(2)
else current_path == theloai_path(3)
end
end
3. Kiểm thử bằng tay, kịch bản, báo cáo kiểm thử:
- Kiểm tra đăng nhập hệ thống của người dùng bằng cách tạo các tài khoản người dùng khác nhau
- Kiểm tra hiển thị giao diện bằng cách vào các trang giao diện cần xét
- Kiểm tra tính năng bình luận bằng cách thử bình luận lên trang web