Posted by quocbao on February 26th, 2008
Ngồi làm xong assignment của Software Testing. Tiện tay … post lên luôn :”)
1. Tại sao không thể kiểm chứng phần mềm hoàn toàn ?
Việc kiểm chứng phần mềm hoàn toàn là điều không thể vì các lý do sau đây :
- Không thể kiểm tra hoàn toàn 100% giá trị đầu vào của chương trình vì để thực hiện công việc đó tốn rất nhiều thời gian hay không thể thực hiện được (miền giá trị là vô tận).
- Không thể kiểm tra được toàn bộ các trường hợp của chương trình. Tức là không thể tiên đoán và mô phỏng được tất cả cách người dùng sử dụng chương trình.
- Không thể kiểm tra được toàn bộ môi trường hoạt động của chương trình.
- Lỗi do giao diện chương trình hay yêu cầu sai.
- Không thể kiểm tra được sự đụng độ của chương trình với các chương trình khác 100% dẫn đến chương trình hoạt động không chính xác.
- Không thể kiểm tra được lỗi gây ra do phần cứng.
- Không thể kiểm tra được các lỗi sẽ xuất hiện trong tương lai do sự không tương thích hay do sai lệch trong tính toán.
- Không thể ngăn được người dùng cố tình gây lỗi cho chương trình , hoặc là việc người dùng xem đó là lỗi trong khi mình thì không.
Một vấn đề khác nảy sinh khi kiểm chứng phần mềm là có vá các lỗi phát hiện ra hay không. Khi đó ta cần đánh giá lỗi đó (về cường độ xuất hiện, độ nghiêm trọng, thời gian vá …) xem cần phải vá hay không. Vì khi ta vá sẽ có một xác suất là chúng ta sẽ làm phát sinh ra các lỗi mới (cho nên sự cần thiết của Regression Testing) và cần phải kiểm chứng lại.Một lý do để ta không cần phải kiếm chứng phần mềm hoàn toàn là do áp lực thị trường hay timeline của dự án. Ta cần đưa ra một phiên bản vào thời điểm đó nếu cứ xa đà vào việc kiểm chứng và vá lỗi thì sẽ làm ta chậm tiến độ dự án, vì vậy có thể chấp nhận không kiểm chứng hoàn toàn và phát hành ra ngoài và để … khách hàng thực hiện tiếp công việc kiểm chứng này .
Tham khảo :
- Object Oriented Design : Testing (Charles Wallace)
- Impossibility of Complete Testing (Cem Kaner)
Read the rest of this entry »
Posted by Nguyễn Hùng Cường on February 23rd, 2008
Đơn giản bằng cách chèn đoạn code sau vào sự kiện Page_Load

Dòng code check là đây:
Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect","window.location.href='default.aspx?JScript=1';", true);
Nó hoạt động như sau :
- Lần đầu load thì Session["JSChecked"] sẽ là null (dòng 15) nên ta sẽ vào đoạn code trong hàm if thứ nhất. Vào trong hàm if thì gán lại Session["JSChecked"] = “Checked” (dòng 16) để báo là đã check rồi (bạn có thể dùng bất cứ giá trị nào cũng được). Sau đó ta “đăng kí” một đoạn javascript window.location.href …. nhằm mục đích load lại trang này một lần nữa (dòng 19,20)
- Ở đây nếu javascript ko enabled thì bạn sẽ không đăng kí được đoạn script này nên khi QueryString["JScript"] (dòng 23) thì nó sẽ trả về null và kết thúc luôn. Kết quả sẽ là “Javascript is not enabled” (dòng 24).
- Ngược lại, nếu javascript đc enabled thì đoạn script đó sẽ được đăng kí. Lúc này khi QueryString["JScript"] (dòng 23) vẫn có giá trị null. Lúc này kết quả (tạm thời) của bạn sẽ là “Javascript is not enabled” (dòng 24). Tuy nhiên, bạn nên nhớ là đoạn js đó nhằm mục đích load lại trang lần thứ hai nên sự kiện Page_Load được gọi lại lần nữa. Lúc này Session["JSChecked"] (dòng 15) đương nhiên là khác null nên nó sẽ chạy xuống đoạn check if phía dưới (dòng 23):
Đến đây thì QueryString["JScript"] sẽ khác null ! Do đó kết quả cuối cùng là “Javascript is enabled” (dòng 26).
(nhc tổng hợp từ bài viết trên codeproject và một số thông tin tham khảo tại w3schools, msdn, beansoftware)
Posted by Nguyễn Hùng Cường on February 22nd, 2008
Nhờ sự trợ giúp của CodeBlock, hiện giờ blog đã có được giao diện comment rất kool
Mọi người test thử xem thế nào
Đây là hình trước kia

Và đây là hình sau này

Posted by Nguyễn Hùng Cường on February 18th, 2008

- Telerik is a leading vendor of User Interface (UI) components for ASP.NET and Windows Forms, and .NET Reporting solutions. Building on our expertise in interface development and Microsoft technologies, Telerik helps customers build applications with unparalleled richness, responsiveness and interactivity. Created with passion, Telerik products help thousands of developers every day to be more productive and deliver reliable applications under budget and on time.
Read the rest of this entry »
Posted by quocbao on February 18th, 2008
Một vấn đề nan giải khi chuyển từ Mysql sang Mssql là câu query quen thuộc
SELECT * FROM t ORDER BY c LIMIT o,n
Dĩ nhiên nếu ném vào MS SQL Server thì nó “chữi” cho mà nghe .__.
Sau một hồi tìm tòi cuối cùng cũng tìm ra một cách
Cách này rất là đơn giản, đơn giản đến độ mình ko nghĩ ra được :))
1. MsSql có keyword TOP để chọn n dòng đầu
2. Mình đang muốn chọn n dòng đầu bắt đầu từ vị trí o
Nó đưa ra một giải pháp khá đơn giản như sau .__.
SELECT * FROM (
SELECT TOP o * FROM (
SELECT TOP o+n FROM t
ORDER BY c ASC
) AS tmp1 ORDER BY c DESC
) AS tmp2 ORDER BY c ASC
Tức là sao,đầu tiên chọn n+o dòng xếp theo thứ tự tăng. Sau đó chọn lại o dòng xếp theo thứ tự giảm (tức là chọn từ dưới lên), sau đó xếp lại thành thứ tự tăng => LIMIT o,n
Một cái dở là luôn phải tồn tại cột để order mới xếp đc và dữ liệu bị “nhào nặn” tùm lum chứ ko simple như Mysql. Không biết thật sự performance thì sao nhỉ
Để bửa nào test thử.
Recent Comments