Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Xin hỏi về Test Tools trong Visual Studio.

  1. #1
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Mặc định Xin hỏi về Test Tools trong Visual Studio.

    trong Visual Studio có một Tools "test", mở VS ra là thấy bên cạnh tools "Data" cái này hình như dùng để test phần mềm, mình đang tìm hiểu nhưng tài liệu hạn chế quá, tiện thể muốn hỏi mọi người ai đã dùng hay làm về thằng này chưa, nếu có thể hướng dẫn mình chút, cảm ơn trước.

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    12

    Cái này là để tạo unittest đó bạn. Tức là bạn code để kiểm tra lại tính đúng đắn của một method nào đó. Input đầu vào và kết quả mong đợi. Nếu pass --> cái method kia đúng.

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    xin hỏi bạn đã tìm hiểu nhiều về bộ tools này chưa vậy ? và quan trọng hơn là bạn đã sử dụng nó cho việc "test" chưa vậy ?, mình hỏi vậy vì mình cũng đã tìm hiểu qua rồi, hiện tại là ở mức tổng quan thôi, nếu bạn cũng đang muốn tìm hiểu về nó thì mình và bạn có thể cùng trao đổi.
    rất cám ơn câu trả lời của bạn, thân !

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    12

    Lâu không vào forum, hnay mới trả lời câu của bạn. Cái này mình làm thường xuyên. Cứ mỗi lần viết 1 public method thì mình đều dùng cái này để kiểm tra lại.

    Bạn có thể dùng template có sẵn trong VS để tạo testclass, hoặc cũng có thể tạo 1 class bình thường sử dụng Microsoft.VisualStudio.TestTools.UnitTesting.

    Nếu bạn chưa biết thì tốt nhất là dùng template.

    Khi tạo template, bạn sẽ thấy class được đánh dấu là [TestClass], và có một phương thức được đánh dấu là [TestMethod].

    Trong test method tùy theo tính chất của public method bạn viết mà sử dụng các method như Assert.AreEqual, Assert.IsTrue ...

    Ví dụ khi bạn viết 1 hàm Fill để fill data từ db vào một datatable.

    Giả sử theo mong muốn của bạn là nó phải ra 1 row. thì bạn viết:
    Assert.AreEqual(1, Fill("DataTableName"));

    sau khi viết test xong, mở tab test ra nó sẽ hiện ra tên method vừa viết.
    Run --> nếu pass thì ok, Fail --> có vấn đề. Nôm na là như thế

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    ok, theo mình biết thì cách mà bạn nói ở trên là "Unit Test", test có nhiều kiểu, trong đó thì kiểu "Load Test" có lẽ mình thấy là khó nhất, "Load Test" là kiểu test trong nhóm, và cái khó nhất của nó là Test trên máy khác bạn có thể nói và code demo 1 application được không.
    thân.

  6. #6
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Mặc định Xin hỏi về Test Tools trong Visual Studio.

    Nhìn thấy cái topic này lâu lắm rồi.
    Hix, đọc xong không hiểu gì luôn
    Bác nào giới thiệu cho zkday về các công nghệ test được không? (nếu có được 1 bài tut về các công nghệ test thì tốt quá .)

    Ví dụ khi bạn viết 1 hàm Fill để fill data từ db vào một datatable.

    Giả sử theo mong muốn của bạn là nó phải ra 1 row. thì bạn viết:
    Assert.AreEqual(1, Fill("DataTableName"));

    sau khi viết test xong, mở tab test ra nó sẽ hiện ra tên method vừa viết.
    Run --> nếu pass thì ok, Fail --> có vấn đề. Nôm na là như thế
    Ai giải thích giùm zkday cái này với . tức bên code chổ nào cần test thì mình làm như thế này phải không ạ? Mình code 1 lớp mới vậy khi run thì mình gọi nó thế nào ạ?

    Hix, quả thực cái này thì zkday mù tịt.

    P/s: sorry vì nhảy vào giữa.

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi huongit1984 Xem bài viết
    ok, theo mình biết thì cách mà bạn nói ở trên là "Unit Test", test có nhiều kiểu, trong đó thì kiểu "Load Test" có lẽ mình thấy là khó nhất, "Load Test" là kiểu test trong nhóm, và cái khó nhất của nó là Test trên máy khác bạn có thể nói và code demo 1 application được không.
    thân.
    Mình không hiểu ý bạn nói test trên máy khác là thế nào. Bạn có thể nói rõ ra không?
    Còn mình đang viết 1 cái tutarial ngắn ngắn về sử dụng Unit Test.

  8. #8
    Ngày gia nhập
    11 2008
    Bài viết
    12

    -- Lấy dữ liệu từ db pubs
    Code:
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Text;
    
    namespace UnitTestSample
    {
       public class Authors
       {
          public static int FillByAuthorId(DataSet dataSet)
          {
             SqlConnection sqlConnection = new SqlConnection("Data Source=LOCALHOST\\SQLEXPRESS;Initial Catalog=pubs;Integrated Security=True");
             SqlCommand sqlCommand = new SqlCommand("SELECT * FROM Authors WHERE au_id = '238-95-7766'", sqlConnection);
             
             sqlConnection.Open();
    
             SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
    
             int effectedRow = sqlDataAdapter.Fill(dataSet);
    
             sqlConnection.Close();
             sqlConnection.Dispose();
    
             return effectedRow;
          }
       }
    }
    -- Viết test:
    Right click vào Solution --> Add --> New Project --> Test Projects
    Trong Templates chọn Test Project và đặt tên cho project. Giả sử là SampleTestProject --> OK

    Trong project mới tạo ra ta thấy có 1 assembly được add là
    Microsoft.VisualStudio.QualityTools.UnitTestFramew ork
    Và 1 lớp UnitTest1 được tạo sẵn ra như sau:

    Code:
    using System;
    using System.Text;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    
    namespace SampleTestProject
    {
       /// <summary>
       /// Summary description for UnitTest1
       /// </summary>
       [TestClass]
       public class UnitTest1
       {
          public UnitTest1()
          {
             //
             // TODO: Add constructor logic here
             //
          }
    
          #region Additional test attributes
          //
          // You can use the following additional attributes as you write your tests:
          //
          // Use ClassInitialize to run code before running the first test in the class
          // [ClassInitialize()]
          // public static void MyClassInitialize(TestContext testContext) { }
          //
          // Use ClassCleanup to run code after all tests in a class have run
          // [ClassCleanup()]
          // public static void MyClassCleanup() { }
          //
          // Use TestInitialize to run code before running each test 
          // [TestInitialize()]
          // public void MyTestInitialize() { }
          //
          // Use TestCleanup to run code after each test has run
          // [TestCleanup()]
          // public void MyTestCleanup() { }
          //
          #endregion
    
          [TestMethod]
          public void TestMethod1()
          {
             //
             // TODO: Add test logic	here
             //
          }
       }
    }
    Add assembly UnitTestSample. rồi using

    Code:
    using System;
    using System.Data;
    using System.Text;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using UnitTestSample;
    
    namespace SampleTestProject
    {
       /// <summary>
       /// Summary description for UnitTest1
       /// </summary>
       [TestClass]
       public class UnitTest1
       {
          public UnitTest1()
          {
             //
             // TODO: Add constructor logic here
             //
          }      
    
          [TestMethod]
          public void FillByAuthorId()
          {
             //
             // TODO: Add test logic	here
             //
             DataSet dataSet = new DataSet();
             Assert.AreEqual(1, Authors.FillByAuthorId(dataSet));
          }
       }
    }
    Vào menu Test --> Windows --> mở Test Views và TestResult.
    2 tab mới hiện ra.
    Vào tab Test Views, right click tên test method FillByAuthorId --> Run

    Trong test view sẽ hiện ra kết quả test.

    Unit Test thường được sử dụng khi mà bạn có một bộ dữ liệu chuẩn để test cùng với các điều kiện lọc chuẩn. Nghĩa là với bộ dữ liệu đó, và điều kiện lọc cụ thể, người ta biết chắc chắn có bao nhiêu kết quả trả về và những kết quả đó là gì. Đó chính là kết quả mong đợi

    Sau khi viết unittest người ta thấy được kết quả trả về của phương thức mình viết có = với kết quả mong đợi hay không. Nếu test pass với dữ liệu chuẩn --> đương nhiên sẽ pass với các dữ liệu thật và đúng khác.

    Trong thực tế, đối với những dữ liệu khổng lồ và những quan hệ phức tạp, người ta không thể kiểm soát được liệu việc người ta lấy dữ liệu ra là có đủ và đúng không, vì vậy người ta xây dựng những bộ dữ liệu nhỏ và chuẩn. Thông thường sẽ bao hết tất cả các trường hợp. Sau đó chạy test trên bộ dữ liệu đó.
    Đã được chỉnh sửa lần cuối bởi dangkyall : 21-12-2008 lúc 02:18 PM.

  9. #9
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi dangkyall Xem bài viết
    Mình không hiểu ý bạn nói test trên máy khác là thế nào. Bạn có thể nói rõ ra không?
    Còn mình đang viết 1 cái tutarial ngắn ngắn về sử dụng Unit Test.
    ừ, ý mình nói ở đây là khi làm dự án, đương nhiên là bạn phải làm việc theo nhóm, ví như thể này, trong nhóm đó bạn được phân công test code cho các thành viên trong nhóm, và bạn sẽ ngồi trên máy mình mà test code trên máy member khác trong nhóm, test hỗ trợ kiểu test này là "Load Test", cơ chế của thăng này rất khó mặc dù mình cũng đọc qua rồi nhưng hiện tại chưa hiểu rõ lắm
    ...tiện thể hỏi bạn có quyển Wrox.Professional.Software.Testing.with.Visual.Stu dio.2008.Team.System.Sep.2007.pdf
    send mình cái nhé

  10. #10
    Ngày gia nhập
    11 2008
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi huongit1984 Xem bài viết
    ừ, ý mình nói ở đây là khi làm dự án, đương nhiên là bạn phải làm việc theo nhóm, ví như thể này, trong nhóm đó bạn được phân công test code cho các thành viên trong nhóm, và bạn sẽ ngồi trên máy mình mà test code trên máy member khác trong nhóm, test hỗ trợ kiểu test này là "Load Test", cơ chế của thăng này rất khó mặc dù mình cũng đọc qua rồi nhưng hiện tại chưa hiểu rõ lắm
    ...tiện thể hỏi bạn có quyển Wrox.Professional.Software.Testing.with.Visual.Stu dio.2008.Team.System.Sep.2007.pdf
    send mình cái nhé
    Bạn đã bao giờ dùng SourceSafe chưa? Nếu làm nhóm mà ko dùng cái đó thì mình không bàn ở đây.

    Còn nếu nói về test thì thường người ta chia làm nhiều giai đoạn.
    UnitTest, CombineTest, SystemTest... v.v.

    Có nhiều khái niệm về test nhưng tùy theo từng cty mà sẽ sử dụng khái niệm nào.
    Thông thường UnitTest do dev làm luôn. Còn muốn làm các phần test khác thì cần viết specs một cách có hệ thống.
    Đã được chỉnh sửa lần cuối bởi dangkyall : 22-12-2008 lúc 12:57 PM.

Các đề tài tương tự

  1. Lỗi Visual Studio 2010 không tạo project được trong Visual C++
    Gửi bởi lekhanhduy_lkd trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 21-02-2012, 10:39 PM
  2. Trả lời: 3
    Bài viết cuối: 13-12-2011, 08:00 PM
  3. Test Tools trong Visual Studio Team System sử dụng như thế nào?
    Gửi bởi tinhspt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-08-2010, 07:28 PM
  4. Unit Test On Microsoft Visual Studio 2008
    Gửi bởi kavo trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 08-05-2010, 08:53 AM
  5. MZ-Tools 6.0 for Visual Studio .NET
    Gửi bởi jetli8x trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 5
    Bài viết cuối: 20-12-2007, 11:49 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn