-
Thông tin
-
Hỏi đáp
Hướng dẫn xác định dòng điểu khiển, chương trình, dữ liệu
Hướng dẫn xác định dòng điểu khiển, chương trình, dữ liệu
Môn: Công nghệ thông tin (CĐCD&TL)
Trường: Trường Cao đẳng Cơ giới và Thủy lợi Đồng Nai
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD|36041561 1. Thêm thể loại Mã nguồn chương trình -
public function postGenre(Request $request){ 1. $genre = new Genre;
2. $genre->genre_name = $request->genre;
3. if($genre->genre_name == " "){
4. session()->flash('error','Tên thể loại không được để trống')
5. return redirect()->back(); } 6. $genre->save();
7. session()->flash('success', 'Thêm thể loại thành công!');
8. return redirect()->back(); } 1.1.
Kiểm thử dòng điều khiển.
Xây dựng sơ đồ thị dòng điều khiển -
Xác định ca kiểm kiểm thử đối với độ đo C1 - TC Đường đi
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 TC1 1,2,3,4,5 TC2 1,2,3,6,7,8
Các ca kiểm thử v độ đo C1 - TC Đầu vào Đầu ra mong đợi Đầu ra thực tế TC1 genre_name = “ ”
Hiển thị thông báo “Tên thể
Hiển thị thông báo “Tên thể loại
loại không được để trống”.
không được để trống”. TC2 genre_name = “Hài
Hiển thị thông báo “Thêm
Hiển thị thông báo “Thêm thể kịch” thể loại thành công”. loại thành công”.
Xác định ca kiểm thử với độ đo C2 - Điểm quyết định Điều kiện Đúng Sai 3
genre->$genre_name = “ ” TC1 TC2
Các ca kiểm thử v độ đo C2 - TC Đầu vào Đầu ra mong đợi Đầu ra thực tế TC1 genre_name = “ ”
Hiển thị thông báo “Tên thể
Hiển thị thông báo “Tên thể loại
loại không được để trống”.
không được để trống”. TC2 genre_name = “Hài
Hiển thị thông báo “Thêm
Hiển thị thông báo “Thêm thể kịch” thể loại thành công”. loại thành công”. 1.2. Kiểm thử dòng dữ liệu
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 2. Thêm tài khoản. Mã nguồn chương trình: -
public function postAddUser(Request $request){
// Kiểm tra độ dài và định dạng username
1. $username = $request->username;
2. if ($user->username == "") {
3. session()->flash('error', 'Username không được để trống');
4. return redirect()->back(); }
5. if (preg_match('/[\d\s\W]/', $username)) {
6. session()->flash('error', 'Định dạng không hợp lệ.');
7. return redirect()->back(); }
8. if (strlen($username) < 6 || strlen($username) > 30) {
9. session()->flash('error', 'Username phải chứa từ 6 đến 30 kí tự.'); 10. return redirect()->back(); }
// Kiểm tra name không chứa số 11. $name = $request->name; 12.
if (preg_match('/[0-9\W]/', $name)) { 13.
session()->flash('error', 'Định dạng không hợp lệ.'); 14. return redirect()->back(); }
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561
// Kiểm tra định dạng email 15. $email = $request->email; 16.
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 17.
session()->flash('error', 'Email không đúng định dạng.'); 18. return redirect()->back(); }
// Kiểm tra định dạng phone 19.
$phoneNumber = $request->phone_number; 20.
if (!preg_match('/^[0-9]{10}$/', $phoneNumber)) { 21.
session()->flash('error', 'Số điện thoại phải gồm 10
chữ số và không được chứa ký tự khác.'); 22. return redirect()->back(); }
// Kiểm tra định dạng mật khẩu 23.
$user->password = bcrypt($request->password); 24.
if ($user->password == "") { 25.
session()->flash('error', 'Mật khẩu không được để trống'); 26. return redirect()->back(); } 27.
$password = $request->password; 28.
if (strlen($password) > 72 || preg_match('/\s/', $password)) { 29.
session()->flash('error', 'Mật khẩu phải có độ dài tối đa 35
kí tự và không được chứa khoảng trắng.'); 30. return redirect()->back(); } 31. $user = new User; 32.
$user->username = $username; 33. $user->name = $name; 34. $user->email = $email; 35.
$user->phone_number = $phoneNumber; 36.
$user->password = bcrypt($request->password); 37. $user->save(); 38.
session()->flash('success', 'Thêm tài khoản thành công!'); 39. return redirect('admin/user'); } 2.2.
Xây dựng sơ đồ thị dòng điều khiển -
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561
Xác định ca kiểm kiểm thử đối với độ đo C1 - TC Đường đi TC1 1,2,3,4 TC2 1,2,5,6,7 TC3 1,2,5,8,9,10 TC4 1,2,5,8,11,12,13,14 TC5 1,2,4,8,11,12,15,16,17,18 TC6
1,2,4,8,11,12,15,16,19,20,21,22 TC7
1,2,4,8,11,12,15,16,19,20,23,24,25,26 TC8
1,2,4,8,11,12,15,16,19,20,23,24,27,28,29,30 TC9
1,2,4,8,11,12,15,16,19,20,23,24,27,28,31,32…39 Độ đo kiểm thử C1 - TT Đầu vào Đầu ra mong đợi Đầu ra thực tế Ghi chú
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 TC1 Username= Hiển thị thông báo: Hiển thị thông báo: T Passworld = 12323 “Username không được “Username không được Name = Tien để trống”. để trống”. Phone = 0123456789 Mail=okeek@gmal.com TC2 Username=abc$$@
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 12323 “Username không đúng “Username không đúng Name = Tien định dạng”. định dạng”. Phone = 0123456789 Mail= okeze1@gmal.com TC3 Username= a
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 12323
“Username phải có độ dài “Username phải có độ Name = Tien tối thiểu 6 kí tự”.
dài từ 6 đến 30 kí tự”. Phone = 0123456789 Mail= okeeke@gmal.com TC4 Username= abc123
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 123231 “Định dạng tên không “Định dạng tên không Name = Tien123 hợp lệ”. hợp lệ”. Phone = 0123456789 Mail= keeke@gmal.com TC5 Username= abc123
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 123231
“Email không đúng định
“Email không đúng định Name = Tien dạng”. dạng”. Phone = 0123456789 Mail= okke@@gmal.com TC6 Username= abc123
Hiển thị thông báo lỗi Hiển thị thông báo T Passworld = 123231 “SĐT không hợp lệ”.
lỗi:”Số điện thoại phải Name = Tien gồm 10 chữ số và không Phone = 012345678999
được chứa ký tự khác” Mail= okeee@gmal.com TC7 Username= abc123 Hiển thị thông báo: Hiển thị thông báo: T Passworld =123..(35k.tu)
“Mật khẩu không được
“Mật khẩu không được Name = Tien123 vượt quá 35 kí tự”. vượt quá 35 kí tự và Phone = 0123456789 chứa khoảng trắng”. Mail= oeeke@gmal.com TC8 Username= abc123 Hiển thị thông báo: Hiển thị thông báo: T Passworld =
“Mật khẩu không được
“Mật khẩu không được Name = Tien để trống”. để trống”. Phone = 0123456789 Mail= okeke@gmal.com TC9 Username= abc123 1,Hiển thị thông báo: 1,Hiển thị thông báo: T Passworld = 123456 “Thêm tài khoản thành “Thêm tài khoản thành Name = Tien công”. công”. Phone = 0981234568 2,Trở về màn hình form 2,Trở về màn hình Mail= okeke@gmal.com “admin/user” form:“admin/user” Độ đo kiểm thử C2 - TT Đầu vào Đẩu ra mong đợi Đầu ra thực tế Ghi chú
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 TC1 Username= Hiển thị thông báo: Hiển thị thông báo: T Passworld = 12323 “Username không được “Username không được Name = Tien để trống”. để trống”. Phone = 0123456789 Mail=okeek@gmal.com TC2 Username=abc$$@
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 12323 “Username không đúng “Username không đúng Name = Tien định dạng”. định dạng”. Phone = 0123456789 Mail= okeze1@gmal.com TC3 Username= a
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 12323
“Username phải có độ dài “Username phải có độ Name = Tien tối thiểu 6 kí tự”.
dài từ 6 đến 30 kí tự”. Phone = 0123456789 Mail= okeeke@gmal.com TC4 Username= abc123
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 123231 “Định dạng tên không “Định dạng tên không Name = Tien123 hợp lệ”. hợp lệ”. Phone = 0123456789 Mail= okeeke@gmal.com TC5 Username= abc123
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi T Passworld = 123231
“Email không đúng định
“Email không đúng định Name = Tien dạng”. dạng”. Phone = 0123456789 Mail= okke@@gmal.com TC6 Username= abc123
Hiển thị thông báo lỗi Hiển thị thông báo T Passworld = 123231 “SĐT không hợp lệ”.
lỗi:”Số điện thoại phải Name = Tien
gồm 10 chữ số và không Phone = 012345678999
được chứa ký tự khác” Mail= okeeke@gmal.com TC7 Username= abc123
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi F Passworld = 123231 “mail không được để
“Email không đúng định Name = Tien trống”. dạng”. Phone = 0123456789 Mail= TC8 Username= abc123 Hiển thị thông báo: Hiển thị thông báo: T Passworld=123..(35k.tu)
“Mật khẩu không được
“Mật khẩu không được Name = Tien123 vượt quá 35 kí tự”. vượt quá 35 kí tự và Phone = 0123456789 chứa khoảng trắng”. Mail= oeeke@gmal.com TC9 Username= abc123 Hiển thị thông báo: Hiển thị thông báo: T Passworld = 123 23 1
“Mật khẩu không được
“Mật khẩu không được Name = Tien chứa khoảng trắng”. vượt quá 35 kí tự và Phone = 0123456789 chứa khoảng trắng”. Mail= okeeke@gmal.com TC10 Username= abc123 Hiển thị thông báo: Hiển thị thông báo: T Passworld =
“Mật khẩu không được
“Mật khẩu không được Name = Tien để trống”. để trống”. Phone = 012345678999 Mail= okeeke@gmal.com TC11 Username= abc123 Hiển thị thông báo: Hiển thị thông báo T
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 Passworld = 123456
“Số điện thoại không
lỗi:”Số điện thoại phải Name = Tien được để trống”.
gồm 10 chữ số và không Phone = được chứa ký tự khác Mail= eeke@gmal.com TC12 Username= abc123 Hiển thị thông báo:
Hiển thị thông báo lỗi F Passworld = 123456
“Tên hiển thị không được “Định dạng tên không Name = để trống”. hợp lệ”. Phone = 0123456789 Mail= okeeke@gmal.com TC13 Username= abc123
Hiển thị thông báo lỗi Hiển thị thông báo T Passworld = 123456 “SĐT không hợp lệ”.
lỗi:”Số điện thoại phải Name =
gồm 10 chữ số và không Phone = 012345A89
được chứa ký tự khác” Mail= okeeke@gmal.com Sinh đường đi - TT Đường đi Đầu vào Đầu ra mong đợi Đầu ra thực tế 1 1, 2 ,3 Username=ad
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi “username phải có độ “username phải có độ
dài tối thiểu 6 ký tự”.
dài tối thiểu 6 ký tự”. 2 1,2,5,6 Name = T13n Hiển thị thông báo: Hiển thị thông báo: “Name không được “Name không được chứa số”. chứa số”. 3 1,2,5,6,9,10 Email=o!tr0j@gmai.com
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi “Email không đúng “Email không đúng định định dạng”. dạng”. 4 1,2,5,6,9,10 Passworld = null
Hiển thị thông báo lỗi
Hiển thị thông báo lỗi 13,14 “Mật khẩu không
“Mật khẩu không được được trống”. trống”. 5 1,2,5,6,9,10 Username=admin1 Hiển thị thông báo: Hiển thị thông báo: 13,14,16…23 Passworld = 12323 “Thêm tài khoản “Thêm tài khoản thành Name = Tien1 thành công”. công”. Mail= ok ok 123@gmal.com 3. Thêm phim sắp chiếu. Mã nguồn chương trình -
public function addUpcomingMovie(Request $request) {
1. $tenPhim = $request->input('ten_phim');
2. $theLoai = $request->input('the_loai');
3. $ngayRaMat = $request->input('ngay_ra_mat');
4. $poster = $request->input('poster');
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561
5. if (empty($tenPhim) || strlen($tenPhim) > 255 ||
containsSpecialChars($tenPhim)) {
6. return redirect('/them-phim')->with('error', 'Tên phim không hợp lệ.'); } 7. if (empty($theLoai)) {
8. return redirect('/them-phim')->with('error', 'Vui lòng chọn thể loại.'); }
9. if (!isValidDate($ngayRaMat) || strtotime($ngayRaMat) <
strtotime(now()->toDateString())) { 10.
return redirect('/them-phim')->with('error', 'Ngày ra mắt không hợp lệ.'); } 11.
if (empty($poster) || !isValidPosterURL($poster)) { 12.
return redirect('/them-phim')->with('error', 'Liên
kết poster không hợp lệ.'); } 13. $movie = new UpcomingMovie; 14.
$movie->ten_phim = $tenPhim; 15.
$movie->the_loai = $theLoai; 16.
$movie->ngay_ra_mat = $ngayRaMat; 17. $movie->poster = $poster; 18. $movie->save(); 19.
return redirect('/danh-sach-phim')->with('success',
'Phim đã được thêm thành công!'); } 3.1
Xây dựng sơ đồ thị dòng điều khiển -
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 TC Đường đi TC1 1,2,3,4,5,6 TC2 1,2,3,4,5,7,8 TC3 1,2,3,4,5,7,9,10 TC4 1,2,3,4,5,7,9,11,12 TC5 1,2,3,4,5,7,,9,11,13…19
Các ca kiểm thử với độ đo C1 - TC Đầu vào Đầu ra mong đợi Đầu ra thực tế TC1 ten_phim = “”
Hiển thị thông báo:”Tên Hiển thị thông the_loai = “Hành động” phim không được để báo :”Tên phim không ngay_ra_mat = 12/12/2023 trống”. hợp lệ”.
poster = /img/upcoming/hellof.jpg TC2 ten_phim = “Hello oto ”
Hiển thị thông báo:”Vui Hiển thị thông the_loai = “” long chọn thể loại”. báo :”Vui long chọn ngay_ra_mat = 12/12/2023 thể loại”.
poster = /img/upcoming/hellof.jpg TC3 ten_phim = “”
Hiển thị thông báo:”Tên Hiển thị thông the_loai = “Hành động” phim không được để báo :”Tên phim không ngay_ra_mat = 12/12/2023 trống”. hợp lệ”.
poster = /img/upcoming/hellof.jpg TC4 ten_phim = “Hello Friend”
Hiển thị thông báo:”Liên Hiển thị thông the_loai = “Hành động” kết poster không hợp báo :”Liên kết poster ngay_ra_mat = 12/12/2023 lệ”. không hợp lệ”.
poster = /png/upcoming/hello.txt
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561 TC5 ten_phim = “Hello Friend” Hiển thị thông Hiển thị thông the_loai = “Hành động” báo :”Phim đã được báo:”Phim đã được ngay_ra_mat = 12/12/2023 thêm thành công”. thêm thành công”.
poster = /img/upcoming/hellof.jpg
Xác đinh các ca kiểm thử ứng với độ đo C2 - Điểm quyết định Điều kiện Đúng Sai 5
empty($tenPhim) || strlen($tenPhim) > 255 TC1 TC2 7 empty($theLoai) TC2 TC3 9
(!isValidDate($ngayRaMat) || strto琀椀me($ngayRaMat) TC3 TC4 11
empty($poster) || !isValidPosterURL($poster)) TC4 TC5
1 public function postMovie(Request $request){
2 $requiredFields = ['title', 'genre', 'year', 'decription',
'rating', 'duration', 'poster_image', 'director', 'country'];
3 foreach ($requiredFields as $field) {
4 if (empty($request->$field)) {
5 session()->flash('error', 'Vui lòng điền đầy đủ thông tin.');
6 return redirect()->back(); } } 7 $title = $request->title;
8 if (strlen($title) > 255) {
9 session()->flash('error', 'Tiêu đề không được dài quá 255 kí tự');
10 return redirect()->back(); }
11 $year = (int)$request->year;
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561
12 if ($year < 1900 || $year > 2023 || !is_numeric($request- >year)) {
13 session()->flash('error', 'Năm phát hành không hợp lệ.');
14 return redirect()->back(); }
15 $duration = (int)$request->duration;
16 if ($duration <= 0 || !is_numeric($request->duration)) {
17 session()->flash('error', 'Thời lượng không hợp lệ.');
18 return redirect()->back(); }
19 $director = $request->director;
20 if (preg_match('/[0-9!@#$%^&*(),.?":{}|<>]/', $director)) {
21 session()->flash('error', 'Tên đạo diễn không hợp lệ.');
22 return redirect()->back(); }
23 $country = $request->country;
24 if (preg_match('/[0-9!@#$%^&*(),.?":{}|<>]/', $country)) {
25 session()->flash('error', 'Quốc gia không hợp lệ.');
26 return redirect()->back(); }
27 $rating = (float)$request->rating;
28 if ($rating < 0 || $rating > 10 || !is_numeric($request- >rating)) {
29 session()->flash('error', 'Điểm xếp hạng không hợp lệ.');
30 return redirect()->back(); } 31 $movie = new Movie; 32 $movie->title = $title;
33 $movie->genre_id = $request->genre; 34 $movie->year = $year;
35 $movie->decription = $$request->description;
36 $movie->rating = $rating;
Downloaded by Nga T??ng (ngahuong55@gmail.com) lOMoARcPSD|36041561
37 $movie->duration = $duration;
38 $movie->poster_image = $request->posterImage;
39 $movie->director = $director;
40 $movie->country = $country; 41 $movie->save();
42 session()->flash('success', 'Thêm phim thành công!');
43 return redirect('/admin/movie'); }
1. session()->flash('success', 'Thêm tài khoản thành công!');
2. return redirect('admin/user'); $user = new User;
$user->username = $username; $user->name = $name; $user->email = $email; $user = new User;
$user->username = $username; $user->name = $name; $user->email = $email;
$user->phone_number = $phoneNumber;
$user->password = bcrypt($request->password); $user->save();
Downloaded by Nga T??ng (ngahuong55@gmail.com)