This document discusses database unit testing using Visual Studio Team System (VSTS). It begins with an overview of software testing basics and unit testing principles. It then covers database unit testing terminology, principles of isolation and independence, and testable interfaces of stored procedures. The document outlines different levels of unit testing and factors to consider. It demonstrates implementing database unit testing in VSTS 2010 and new features in VSTS 2012. The goal is to show how VSTS can be used to test database code and improve quality.
Software quality assurance involves testing software to find errors and ensure correct execution. There are various types of testing like unit testing, integration testing, and system testing. Testers define test cases to verify program behaviors meet specifications. Test cases are designed using techniques like equivalence partitioning, boundary value analysis, and branch testing. The objective is to thoroughly test software and uncover defects before final deployment.
Verification and validation are processes to ensure a software system meets user needs. Verification checks that the product is being built correctly, while validation checks it is the right product. Both are life-cycle processes applying at each development stage. The goal is to discover defects and assess usability. Testing can be static like code analysis or dynamic by executing the product. Different testing types include unit, integration, system, and acceptance testing. An effective testing process involves planning test cases, executing them, and evaluating results.
The document discusses various software testing techniques for object-oriented systems, including white-box testing, black-box testing, and object-oriented specific methods. It covers topics such as unit testing, integration testing, equivalence partitioning, boundary value analysis, and fault-based versus scenario-based testing. The overall goal is to uncover errors in classes, class collaboration, and subsystem communication through different levels of testing.
An Insight into the Black Box and White Box Software Testing BugRaptors
Software testing is one of the best means to affirm the quality of an application and deliver error-free software. Over the years, software testing has developed into a separate discipline providing way to numerous different testing techniques that have been introduced, scrutinized and considered in this area. Read More Here!
Parasoft provides automated quality systems to help companies achieve FDA software compliance. It offers integrated defect prevention and detection technologies like static code analysis, dynamic analysis, code inspections, and automated unit testing. These technologies automate various software validation best practices recommended by the FDA. Parasoft's solutions can find bugs, analyze code quality, review code, generate test cases, track testing coverage, and manage the software development lifecycle to improve quality and ensure traceability.
This document discusses black box testing techniques. Black box testing involves testing software without knowledge of its internal structure or design. Key black box techniques include equivalence partitioning, which divides input into classes; boundary value analysis, which tests boundary cases; error guessing, which uses experience to generate test cases; and cause-effect graphing, which analyzes how inputs cause outputs to derive test cases. Black box testing has advantages like independence from implementation details and testing from a user perspective.
- Unit testing involves testing individual units or components of a program, such as classes or methods.
- The unittest module provides a framework for writing and running tests in Python. It includes a TestCase class that allows setting up tests and making assertions.
- Writing unit tests involves creating subclasses of TestCase and writing individual test methods that make assertions about the expected output of the code being tested. The setUp method can initialize common values used across tests.
Software quality assurance involves testing software to find errors and ensure correct execution. There are various types of testing like unit testing, integration testing, and system testing. Testers define test cases to verify program behaviors meet specifications. Test cases are designed using techniques like equivalence partitioning, boundary value analysis, and branch testing. The objective is to thoroughly test software and uncover defects before final deployment.
Verification and validation are processes to ensure a software system meets user needs. Verification checks that the product is being built correctly, while validation checks it is the right product. Both are life-cycle processes applying at each development stage. The goal is to discover defects and assess usability. Testing can be static like code analysis or dynamic by executing the product. Different testing types include unit, integration, system, and acceptance testing. An effective testing process involves planning test cases, executing them, and evaluating results.
The document discusses various software testing techniques for object-oriented systems, including white-box testing, black-box testing, and object-oriented specific methods. It covers topics such as unit testing, integration testing, equivalence partitioning, boundary value analysis, and fault-based versus scenario-based testing. The overall goal is to uncover errors in classes, class collaboration, and subsystem communication through different levels of testing.
An Insight into the Black Box and White Box Software Testing BugRaptors
Software testing is one of the best means to affirm the quality of an application and deliver error-free software. Over the years, software testing has developed into a separate discipline providing way to numerous different testing techniques that have been introduced, scrutinized and considered in this area. Read More Here!
Parasoft provides automated quality systems to help companies achieve FDA software compliance. It offers integrated defect prevention and detection technologies like static code analysis, dynamic analysis, code inspections, and automated unit testing. These technologies automate various software validation best practices recommended by the FDA. Parasoft's solutions can find bugs, analyze code quality, review code, generate test cases, track testing coverage, and manage the software development lifecycle to improve quality and ensure traceability.
This document discusses black box testing techniques. Black box testing involves testing software without knowledge of its internal structure or design. Key black box techniques include equivalence partitioning, which divides input into classes; boundary value analysis, which tests boundary cases; error guessing, which uses experience to generate test cases; and cause-effect graphing, which analyzes how inputs cause outputs to derive test cases. Black box testing has advantages like independence from implementation details and testing from a user perspective.
- Unit testing involves testing individual units or components of a program, such as classes or methods.
- The unittest module provides a framework for writing and running tests in Python. It includes a TestCase class that allows setting up tests and making assertions.
- Writing unit tests involves creating subclasses of TestCase and writing individual test methods that make assertions about the expected output of the code being tested. The setUp method can initialize common values used across tests.
Software testing: an introduction - 2017XavierDevroey
Software testing involves dynamically verifying that a program behaves as expected on a finite set of test cases. This is done because exhaustively testing every possible case is not feasible. Unit testing involves testing individual program units such as classes through automated tests that make assertions about the output. JUnit is a unit testing framework for Java that uses annotations to identify test methods and make assertions about the results.
The document discusses unit testing, defining it as testing the smallest piece of code in isolation. It provides an example of a unit (a math class with an Add method) and unit test (a test method that calls Add and asserts the expected result). It outlines considerations for unit testing like interfaces, data structures, and paths. It describes the unit testing procedure of using a driver and stubs to provide a complete testing environment and isolate the module under test.
The document provides an introduction to software testing fundamentals and artifacts. It discusses test cases, test specifications, test planning, and test execution. Test cases are defined as a set of test inputs, execution conditions, and expected results to test a specific objective. Good test cases should be reasonable, exercise areas of interest, and make failures obvious. The document outlines steps for creating test cases such as breaking the application into testable modules, writing checklists, adding questions, and getting reviews from other testers and developers.
Parasoft delivers a complete framework to create, manage, and extract greater value from unit tests. We help you exercise and test an incomplete system—enabling you to identify problems when they are least difficult, costly, and time-consuming to fix. This reduces the length and cost of downstream processes such as debugging. Moreover, since all tests are written at the unit level, the test suite can be run independent of the complete system. This allows you to isolate code behavior changes, reduces setup complexities, and makes it practical to execute the test suite on a daily basis.
Software testing involves testing at different levels from the component level up to integration testing of the entire system. Different testing techniques are used at each stage including unit testing, integration testing, validation, acceptance, and performance testing. Thorough documentation of testing requirements, test cases, expected and actual results is needed to guide the testing process.
Integration in component based technologySaransh Garg
Integration testing involves testing interactions between system components and subsystems. Various integration testing strategies exist, such as big bang, bottom-up, top-down, and sandwich testing. Bottom-up testing tests lower level components first before integrating them into higher levels. Top-down tests higher level components first using stubs for lower levels. Sandwich testing combines top-down and bottom-up approaches. The goal of integration testing is to identify failures in component interactions and subsystems.
The document discusses test automation, including its objectives, benefits, misconceptions, and what is required for effective implementation. It outlines the key steps in planning and designing a test automation strategy, including choosing the right tests to automate, selecting tools, defining requirements, designing architecture, and ensuring maintainability through standards and processes.
This document provides an overview of software testing. It discusses the background of software testing including definitions, terminology, and history. It presents a framework for software testing that includes the inputs, outputs, and processes. It also discusses test case generation, test execution, evaluation, and some challenges around automation. Finally, it touches on taxonomy and benchmarks for evaluating automated testing techniques.
Unit testing involves testing individual units or components of code to ensure they work as intended. It focuses on testing functional correctness, error handling, and input/output values. The main benefits are faster debugging, easier integration testing, and living documentation. Guidelines for effective unit testing include writing automated, independent, focused tests that cover boundaries and are easy to run and maintain.
The document outlines the process for designing test cases, including defining test cases, the phases of design, characteristics of good tests, and techniques. It discusses items needed in a test case template like an ID, description, prerequisites, expected results. The document also lists documents required for design like requirements and SRS documents, and provides an example test case summary report template.
The document discusses different types of software testing. It describes unit testing, integration testing, and system testing which are grouped by the tested item. It also discusses other ways to categorize test types such as by lifecycle phase, person performing the test, usage of test results, and techniques used. Some other test types mentioned include regression testing, usability testing, load testing, security testing, and conformance testing.
This document provides information about debugging and testing in IBM RAD. It discusses managing breakpoints, stepping through code, viewing variables, debugging JavaServer Pages, remote debugging, step-by-step debugging of J2EE and Web Objects applications, and the Eclipse Test and Performance Tools Platform (TPTP) for creating testing suites and cases. It also covers configuring breakpoints, exceptions, and step filtering as well as the debugger, variables, and expressions views in IBM RAD.
The document discusses test execution and reporting. It provides details on general test procedures including planning, execution, and evaluation. It describes preparing the test infrastructure by setting up systems, software, and standards. Test execution involves conducting individual test cases, verifying results against expected outcomes, and analyzing any variances. Reporting includes documenting test logs, creating incident reports for problems, and providing effective defect reports using a standardized template. Defects are then resolved by referring them to defect or change management processes.
This is the most important topic of OOAD named as Object Oriented Testing. It is used to prepare a good software which has no bug in it and it performs very fast. <a href="https://harisjamil.pro">Haris Jamil</a>
White box testing involves testing internal coding and infrastructure by executing different lines of code. It is done by developers who have knowledge of the internal structure. Black box testing treats the system as a "black box" and tests it without knowledge of internal structures by validating inputs and outputs. Unit testing validates individual units of source code and is done by developers to ensure each part is correct before integration. Both white box and unit testing can be done earlier and be more thorough than black box testing, but require more skilled testers and knowledge of internal structures. Black box testing can be done by non-technical testers and from an end user perspective.
Quality Analyst Training - Gain AmericaGainAmerica
The document discusses verification and validation (V&V) processes for software. It states that V&V aims to establish confidence that software is fit for purpose, not completely defect-free. V&V includes verification to ensure software conforms to specifications and validation that it meets user requirements. Both static verification techniques like inspections and dynamic validation like testing are important and should be applied throughout development. The document provides details on different V&V techniques.
This document discusses and compares white box, black box, and gray box testing methods. White box testing examines internal program structure and logic and requires knowledge of source code. Black box testing examines functionality without knowledge of internal workings. Gray box testing combines aspects of white and black box by having limited internal knowledge. Each method has advantages like code coverage for white box or large tester pools for black box, and disadvantages like cost or limited coverage. The document provides details on each method and how they differ in tester knowledge and perspective.
The document summarizes various software testing techniques including:
- White-box testing techniques like cyclomatic complexity and control flow graph analysis to derive test cases.
- Black-box techniques like equivalence partitioning to divide inputs into classes and boundary value analysis to test boundary conditions.
- The goal of testing is to systematically uncover errors with minimum time by designing test cases to execute all program paths and boundary conditions.
Unit testing provides business advantages by promoting modular and object-oriented design. The document discusses unit testing in C/C++, including how to write simple unit tests, break dependencies between modules to facilitate testing, optimize tests for readability, and address performance when adding tests. It emphasizes starting small with a focus on real bugs and maintaining high quality and accessibility of tests.
This document provides an introduction to unit testing, including what it is, why it's important, and how to implement it. It defines a unit as a class or function, and says unit tests should test these individual components in isolation. Key reasons for unit testing include enabling refactoring, maintaining code, and testing functionality before bugs or features are introduced. The document outlines guidelines for writing unit tests, such as having one test per scenario/assertion, and explains how to isolate dependencies using techniques like dependency injection, mocks, and stubs. It also discusses tools for automating testing and measuring code coverage.
Writing unit tests became a daily routine task of software developers. But the quality of these tests vary a lot across projects and developers. Are your tests really testing what your class does? Are they easy to read? Are they easy to modify? After having a short theoretical overview of the purpose of unit tests and test driven development, I would share plenty of small tricks to improve the quality of unit tests. Although the examples will be written in Java using the JUnit and Mockito libraries, the ideas are mostly language and technology agnostic.
The slides were originally presented at the SDL DevOps Meetup in the Amsterdam office.
Software testing: an introduction - 2017XavierDevroey
Software testing involves dynamically verifying that a program behaves as expected on a finite set of test cases. This is done because exhaustively testing every possible case is not feasible. Unit testing involves testing individual program units such as classes through automated tests that make assertions about the output. JUnit is a unit testing framework for Java that uses annotations to identify test methods and make assertions about the results.
The document discusses unit testing, defining it as testing the smallest piece of code in isolation. It provides an example of a unit (a math class with an Add method) and unit test (a test method that calls Add and asserts the expected result). It outlines considerations for unit testing like interfaces, data structures, and paths. It describes the unit testing procedure of using a driver and stubs to provide a complete testing environment and isolate the module under test.
The document provides an introduction to software testing fundamentals and artifacts. It discusses test cases, test specifications, test planning, and test execution. Test cases are defined as a set of test inputs, execution conditions, and expected results to test a specific objective. Good test cases should be reasonable, exercise areas of interest, and make failures obvious. The document outlines steps for creating test cases such as breaking the application into testable modules, writing checklists, adding questions, and getting reviews from other testers and developers.
Parasoft delivers a complete framework to create, manage, and extract greater value from unit tests. We help you exercise and test an incomplete system—enabling you to identify problems when they are least difficult, costly, and time-consuming to fix. This reduces the length and cost of downstream processes such as debugging. Moreover, since all tests are written at the unit level, the test suite can be run independent of the complete system. This allows you to isolate code behavior changes, reduces setup complexities, and makes it practical to execute the test suite on a daily basis.
Software testing involves testing at different levels from the component level up to integration testing of the entire system. Different testing techniques are used at each stage including unit testing, integration testing, validation, acceptance, and performance testing. Thorough documentation of testing requirements, test cases, expected and actual results is needed to guide the testing process.
Integration in component based technologySaransh Garg
Integration testing involves testing interactions between system components and subsystems. Various integration testing strategies exist, such as big bang, bottom-up, top-down, and sandwich testing. Bottom-up testing tests lower level components first before integrating them into higher levels. Top-down tests higher level components first using stubs for lower levels. Sandwich testing combines top-down and bottom-up approaches. The goal of integration testing is to identify failures in component interactions and subsystems.
The document discusses test automation, including its objectives, benefits, misconceptions, and what is required for effective implementation. It outlines the key steps in planning and designing a test automation strategy, including choosing the right tests to automate, selecting tools, defining requirements, designing architecture, and ensuring maintainability through standards and processes.
This document provides an overview of software testing. It discusses the background of software testing including definitions, terminology, and history. It presents a framework for software testing that includes the inputs, outputs, and processes. It also discusses test case generation, test execution, evaluation, and some challenges around automation. Finally, it touches on taxonomy and benchmarks for evaluating automated testing techniques.
Unit testing involves testing individual units or components of code to ensure they work as intended. It focuses on testing functional correctness, error handling, and input/output values. The main benefits are faster debugging, easier integration testing, and living documentation. Guidelines for effective unit testing include writing automated, independent, focused tests that cover boundaries and are easy to run and maintain.
The document outlines the process for designing test cases, including defining test cases, the phases of design, characteristics of good tests, and techniques. It discusses items needed in a test case template like an ID, description, prerequisites, expected results. The document also lists documents required for design like requirements and SRS documents, and provides an example test case summary report template.
The document discusses different types of software testing. It describes unit testing, integration testing, and system testing which are grouped by the tested item. It also discusses other ways to categorize test types such as by lifecycle phase, person performing the test, usage of test results, and techniques used. Some other test types mentioned include regression testing, usability testing, load testing, security testing, and conformance testing.
This document provides information about debugging and testing in IBM RAD. It discusses managing breakpoints, stepping through code, viewing variables, debugging JavaServer Pages, remote debugging, step-by-step debugging of J2EE and Web Objects applications, and the Eclipse Test and Performance Tools Platform (TPTP) for creating testing suites and cases. It also covers configuring breakpoints, exceptions, and step filtering as well as the debugger, variables, and expressions views in IBM RAD.
The document discusses test execution and reporting. It provides details on general test procedures including planning, execution, and evaluation. It describes preparing the test infrastructure by setting up systems, software, and standards. Test execution involves conducting individual test cases, verifying results against expected outcomes, and analyzing any variances. Reporting includes documenting test logs, creating incident reports for problems, and providing effective defect reports using a standardized template. Defects are then resolved by referring them to defect or change management processes.
This is the most important topic of OOAD named as Object Oriented Testing. It is used to prepare a good software which has no bug in it and it performs very fast. <a href="https://harisjamil.pro">Haris Jamil</a>
White box testing involves testing internal coding and infrastructure by executing different lines of code. It is done by developers who have knowledge of the internal structure. Black box testing treats the system as a "black box" and tests it without knowledge of internal structures by validating inputs and outputs. Unit testing validates individual units of source code and is done by developers to ensure each part is correct before integration. Both white box and unit testing can be done earlier and be more thorough than black box testing, but require more skilled testers and knowledge of internal structures. Black box testing can be done by non-technical testers and from an end user perspective.
Quality Analyst Training - Gain AmericaGainAmerica
The document discusses verification and validation (V&V) processes for software. It states that V&V aims to establish confidence that software is fit for purpose, not completely defect-free. V&V includes verification to ensure software conforms to specifications and validation that it meets user requirements. Both static verification techniques like inspections and dynamic validation like testing are important and should be applied throughout development. The document provides details on different V&V techniques.
This document discusses and compares white box, black box, and gray box testing methods. White box testing examines internal program structure and logic and requires knowledge of source code. Black box testing examines functionality without knowledge of internal workings. Gray box testing combines aspects of white and black box by having limited internal knowledge. Each method has advantages like code coverage for white box or large tester pools for black box, and disadvantages like cost or limited coverage. The document provides details on each method and how they differ in tester knowledge and perspective.
The document summarizes various software testing techniques including:
- White-box testing techniques like cyclomatic complexity and control flow graph analysis to derive test cases.
- Black-box techniques like equivalence partitioning to divide inputs into classes and boundary value analysis to test boundary conditions.
- The goal of testing is to systematically uncover errors with minimum time by designing test cases to execute all program paths and boundary conditions.
Unit testing provides business advantages by promoting modular and object-oriented design. The document discusses unit testing in C/C++, including how to write simple unit tests, break dependencies between modules to facilitate testing, optimize tests for readability, and address performance when adding tests. It emphasizes starting small with a focus on real bugs and maintaining high quality and accessibility of tests.
This document provides an introduction to unit testing, including what it is, why it's important, and how to implement it. It defines a unit as a class or function, and says unit tests should test these individual components in isolation. Key reasons for unit testing include enabling refactoring, maintaining code, and testing functionality before bugs or features are introduced. The document outlines guidelines for writing unit tests, such as having one test per scenario/assertion, and explains how to isolate dependencies using techniques like dependency injection, mocks, and stubs. It also discusses tools for automating testing and measuring code coverage.
Writing unit tests became a daily routine task of software developers. But the quality of these tests vary a lot across projects and developers. Are your tests really testing what your class does? Are they easy to read? Are they easy to modify? After having a short theoretical overview of the purpose of unit tests and test driven development, I would share plenty of small tricks to improve the quality of unit tests. Although the examples will be written in Java using the JUnit and Mockito libraries, the ideas are mostly language and technology agnostic.
The slides were originally presented at the SDL DevOps Meetup in the Amsterdam office.
The document discusses challenges with testing SQL code and introduces tSQLt, an open source framework for unit testing Transact-SQL code. tSQLt allows writing unit tests in T-SQL, runs tests in isolated transactions, and provides tools to isolate dependencies like faking tables and spying on stored procedures. The document demonstrates how to install tSQLt and use it to test functions and stored procedures. It also outlines some limitations of tSQLt and provides further reading on the topic.
Unit testing JavaScript using Mocha and NodeJosh Mock
This document discusses unit testing JavaScript code using Mocha and Node.js. It covers what unit testing is, why it is important, how to install and use Mocha and Node.js, and how to write testable code and tests. Advanced testing techniques like asynchronous tests, spies, stubs, mocks, fake timers, and testing DOM manipulation with jsdom and jQuery are also explained.
The document discusses quality planning and project kickoff, including defining quality, quality planning processes, quality gurus like Deming and Juran, frameworks for quality like ISO and Six Sigma, core quality concepts around stakeholder satisfaction and process management, and planning for a project kickoff meeting. It provides an overview of important concepts for ensuring project quality and setting the stage for a successful project launch.
Unit testing involves testing individual components of software to ensure they function as intended when isolated from the full system. It helps identify unintended effects of code changes. While unit tests cannot prove the absence of errors, they act as an executable specification for code behavior. Writing unit tests requires designing code for testability through principles like single responsibility and dependency injection. Tests should focus on public interfaces and state transitions, not implementation details. Test-driven development involves writing tests before code to define requirements and ensure only testable code is written. Mocking frameworks simulate dependencies to isolate the system under test. Well-written unit tests keep behaviors isolated, self-contained, and use the arrange-act-assert structure.
JUnit: A unit testing framework that is extensively used to test the code written in Java.
Unit testing is a type of software testing.
Software testing: The process of examining whether the software and its components meet the specified requirements
Other types of software testing are as shown.
This session talks about how unit testing of Spark applications is done, as well as tells the best way to do it. This includes writing unit tests with and without Spark Testing Base package, which is a spark package containing base classes to use when writing tests with Spark.
White box testing is a software testing technique that tests internal coding and infrastructure. It involves writing test cases that exercise the paths in the code to help identify missing logic or errors. The document discusses various white box testing techniques like statement coverage, decision coverage, loop coverage, condition coverage, and path coverage. It also discusses performing white box testing at the unit, integration, and system levels. The session will cover white box testing at the unit level using control flow analysis techniques like building control flow graphs and analyzing possible paths.
Unit testing involves testing individual units or components of code to ensure they work as intended. It focuses on testing small, isolated units of code to check functionality and edge cases. Benefits include faster debugging, development and regression testing. Guidelines for effective unit testing include keeping tests small, automated, independent and focused on the code's public API. Tests should cover a variety of inputs including boundaries and error conditions.
The document discusses various topics related to software testing including:
1. Software testing helps improve software quality by testing conformance to requirements and is important to uncover errors before delivery to customers.
2. Testing involves specialists at different stages from early development through delivery and includes unit testing of individual components, integration testing of combined components, and system testing of the full system.
3. Proper testing methods include black box testing of inputs/outputs, white box testing of code structures, and testing at different levels from units to full system as well as by independent third parties.
The document provides guidance for testers on how to test software effectively. It outlines different types of testing like black box testing, white box testing, and grey box testing. It emphasizes thinking like a user and trying to break the software in testing. The document also discusses test documentation, regression testing, and tips for testing across browsers and operating systems.
The document discusses various software testing techniques including white box testing and black box testing. It provides details on test cases, test suites, and testing conventional applications. Specifically:
- It describes white box and black box testing techniques, and explains that white box tests the implementation while black box tests only the functionality.
- It defines what a test case is and lists typical parameters for a test case like ID, description, test data, expected results. It provides an example test case.
- It explains that a test suite is a container that holds a set of tests and can be in different states. A diagram shows the relationship between test plans, test suites and test cases.
- It discusses unit testing and
The document outlines an upcoming programming workshop that will cover various JetBrains IDEs like PyCharm, IntelliJ IDEA, and PhpStorm. It then discusses Test Driven Development (TDD), including what TDD is, the development cycle used in TDD, and benefits like encouraging simple designs and confidence. Different types of software tests are also listed like unit tests, integration tests, acceptance tests, and others. Specific testing techniques like unit testing, integration testing using bottom-up and top-down approaches, and acceptance testing are then explained at a high level. Finally, some important notes on testing like trusting tests and prioritizing maintainability are provided.
This document discusses software testing practices and processes. It covers topics like unit testing, integration testing, validation testing, test planning, and test types. The key points are that testing aims to find errors, good testing uses both valid and invalid inputs, and testing should have clear objectives and be assigned to experienced people. Testing is done at the unit, integration and system levels using techniques like black box testing.
This document discusses various software testing techniques. It begins by explaining the goals of verification and validation as establishing confidence that software is fit for its intended use. It then covers different testing phases from component to integration testing. The document discusses both static and dynamic verification methods like inspections, walkthroughs, and testing. It details test case development techniques like equivalence partitioning and boundary value analysis. Finally, it covers white-box and structural testing methods that derive test cases from examining a program's internal structure.
Agile Software Testing the Agilogy WayJordi Pradel
At Agilogy we have a curated way of testing software. In these slides we share basic Principles, Patterns and Strategies to test software in Hexagonal Architectures.
Defying the typical test pyramid, we focus our testing strategy on testing the whole domain. To do so, we avoid the abuse of mocks and stubs and, instead, we use hand-crafted test fakes that behave like their production counterparts. We make sure they actually do so by testing both the production driven adapters and their fakes with the very same test suite.
Software testing involves verifying that a software program performs as intended. There are different types of testing including black box, white box, unit, integration, system, and acceptance testing. The goal is to detect bugs and ensure the software functions properly before it is released to end users.
Unit 8 discusses software testing concepts including definitions of testing, who performs testing, test characteristics, levels of testing, and testing approaches. Unit testing focuses on individual program units while integration testing combines units. System testing evaluates a complete integrated system. Testing strategies integrate testing into a planned series of steps from requirements to deployment. Verification ensures correct development while validation confirms the product meets user needs.
Testing is the process of identifying bugs and ensuring software meets requirements. It involves executing programs under different conditions to check specification, functionality, and performance. The objectives of testing are to uncover errors, demonstrate requirements are met, and validate quality with minimal cost. Testing follows a life cycle including planning, design, execution, and reporting. Different methodologies like black box and white box testing are used at various levels from unit to system. The overall goal is to perform effective testing to deliver high quality software.
Fundamentals of software 2 | Test Case | Test Suite | Test Plan | Test ScenarioSiddharth Sharma
Test case design in software testing is a mandatory skill for every Software Test Engineer, QA Engineer, Quality Analyst etc. Test scenario vs Test case are the topics that are required to be clarified. Test suite collection should be managed to have good quality testing.
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010TEST Huddle
EuroSTAR Software Testing Conference 2010 presentation on Open Source Tools for Test Management by C.V, Narayanan. See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
This presentation is about the following points ,
Introduction to Manual Software testing,
What is Testing,
What is Quality,
How to define Software Testing Principles,
What are the types of Software Tests,
What is Test Planning,
Test Execution and Reporting,
Real-Time Testing,
This document provides an introduction to unit testing using the NUnit framework. It defines unit testing as developer tests that validate code works as expected. Unit tests are part of the construction cycle and sit between technical design and QA testing in the software development lifecycle. Benefits of unit testing include early defect detection, better code design, regression protection, and learning new APIs. The document then describes NUnit attributes that mark test fixtures and methods. It also covers NUnit assertions for verification. Examples are provided of test-driven development and using NUnit for continuous integration.
Black-Box Testing, Model-Based Testing, Testing for Specialized Environments, Architecture, Object-Oriented Testing Strategies, Object-Oriented Testing Methods, Test Cases and the Class Hierarchy, Testing Concepts for WebApps, Testing Process – An Overview, User Interface Testing, Test Plan, Positive Testing Negative Testing
Unit testing is a method where developers write code to test individual units or components of an application to determine if they are working as intended. The document discusses various aspects of unit testing including:
- What unit testing is and why it is important for finding defects early in development.
- Common unit testing techniques like statement coverage, branch coverage, and path coverage which aim to test all possible paths through the code.
- How unit testing fits into the software development lifecycle and is typically done by developers before handing code over for formal testing.
- Popular unit testing frameworks for different programming languages like JUnit for Java and NUnit for .NET.
The document provides examples to illustrate white box testing techniques
Software Quality and Test Strategies for Ruby and Rails ApplicationsBhavin Javia
This document provides an overview of software quality and test strategies for Ruby and Rails applications. It discusses the importance of quality, managing quality through setting goals and measuring metrics. It outlines a test strategy template and covers test types, tools, and approaches for unit, integration, acceptance and other types of tests in Ruby/Rails. It also discusses test data management, defect management, and the Ruby/Rails testing ecosystem including various testing frameworks and quality/metrics tools.
Share point 2010 unit and integration testingEric Shupps
This document discusses unit and integration testing. It begins with an introduction to Eric Shupps and the agenda. It then covers testing fundamentals, emphasizing objectives like reducing costs and ensuring quality. It discusses testing methodologies, lifecycles, and code optimization through isolation and refactoring. Unit testing objectives are presented, like validating and refactoring code. Principles of unit testing include separating interface from implementation. Integration testing objectives include exercising interoperability and validating unit tests. Principles of integration testing involve using actual dependencies. Methodologies of both unit and integration testing are also outlined.
The document discusses different types of software testing including white box testing, black box testing, integration testing, system and acceptance testing, and regression testing. It describes various techniques for each type such as statement coverage for white box testing and requirements-based testing for black box testing. The goal of testing is to find errors, check requirements, and evaluate properties like reliability, performance, and security.
Episode 5 - Writing unit tests in SalesforceJitendra Zaa
The document provides an agenda for a session on writing unit tests in Apex. It discusses why unit tests are important in Apex, how to structure test classes, best practices for testing, and resources for learning more about Apex testing. The session demonstrates executing unit tests and techniques like accessing private members, running tests within limits, and creating test data. Attendees are encouraged to ask questions during the last 15 minutes.
Similar to Database Unit Testing Made Easy with VSTS (20)
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
3. About Me
Database Developer –Scottrade (@scottradejobs)
MCTS – MS SQL Server 2008 Database
Development
http://SQLWithSanil.com
@SQLSuperGuru
MSDN Forums & SQLServerCentral.com
SQL Saturday #154 | St.Louis | Sept 15
4. Pre-requisites
MS Visual Studio Team system framework & tools
MS Visual Studio Team System (VSTS) 2010 &
2012
Ultimate & Premium Editions – create, modify & run
database unit tests
Professional Edition – run database unit tests but
cannot create or modify them
MS Visual Studio Team System 2008 Database
5. Agenda
Software Testing – Basics
Unit Testing – Basics
Database Unit Testing – Principles,
Terminology & Levels
Demo – Implement Database Unit Testing with
VSTS 2010 & MS SQL Server 2008 R2
New features in VSTS 2012
7. Types of Software Testing
Criteria Black Box Testing White Box Testing
Method in which the
Method in which the
internal design/
internal design/
implementation of the
Definition implementation of the
item being tested is
item being tested is
NOT known to the
known to the tester.
tester
Mainly applicable to
Mainly applicable to
higher levels of
lower levels of
Levels Applicable To testing:Acceptance
testing:Unit Testing
Testing
Integration Testing
System Testing
Generally, independent Generally, Software
Responsibility
Software Testers Developers
Programming
Not Required Required
Knowledge
8. Levels of Software Testing
Unit Testing
Integration Testing
System Testing
System Integration Testing
9. What is Unit Testing ?
Validation & Verification Methodology
Belongs to the White Box testing category
Test individual units of Source Code
Unit – smallest testable part of application
Method, Function, Class
Tests created before or during development
Tests conducted during development
10. Goals of Database Unit Testing
Ensure quality & accuracy of database
deliverables
Establish a baseline state of your database
Verify Subsequent changes made to database
objects
Identify regression issues throughout the
application lifecycle
11. Database Unit Testing
Terminology
• Isolated Environment (database)
• Local development, testing &
SandBox validation
• Created by Script, VSTS Project
or Restoring backup
• Exercises a targeted code path
TestCase • Multiple assertions
12. Database Unit Testing
Terminology
• Simple Condition to
indicate success or failure
• Returns a True or False
• Verifies Expected
Assertion Interface
• Verifies extraneous
Results
• Verifies data modification
behavior
13. Database Unit Testing
Terminology
• Collection of all test cases
Unit for a given stored procedure
• Tests interface, code &
Test behavior
• TSQL Scripts that executes a
test case
Test • May include assertions like;
• Return values
Script • Output parameters
• Expected Errors
14. Database Unit Testing
Terminology
• Logical & named grouping
of related unit tests
• Multiple test lists can be
Test created
• Can be run as a unit
List • A test suite
• Builds & Check in Policy
• Deprecated in VSTS 2012
15. Database Unit Testing
Terminology
• TSQL Scripts
• Prepare database for unit
Setup testing
& • Returns database back to pre
test state after testing
Cleanu • Framework also provides
p common Initialize & Cleanup
Scripts
Scripts • Pre Test and Post Test Scripts
• Data Generation Plans
16. Database Unit Testing
Principles
Isolation
• Outcome of one test must not affect the outcome of
any other test(s)
• Each test must return the database back to its
previous state after execution
Independence
• One test case must not depend on any other test case
• Each test case must be run independently of any other
test case
• Test case assertion must be independent of the order
of it’s execution
17. Database Unit Testing
Principles
Characteristics of Ideal Unit Test
• Exercise all possible code paths
• Evaluate all possible conditions
• Validate correct behavior for each path/condition
Considerable efforts for exhaustive testing
• Non Trivial stored procedures
• Number of input parameters
• Permutations of optional parameters
• Error code paths
18. Testable Interfaces of a Stored
Procedure
Input & • Name
Output • Data Type (Length)
Parameters • Optionality
Return Code • Success/failure
Row Count • SET NOCOUNT ON/OFF
19. Testable Interfaces of a Stored
Procedure
• One or more SELECT statements
• Number of Columns
Result Set • Column Ordinal position
• Column Name & Data Type
Informational • PRINT Messages
Messages • RaiseError – Severity 10 & below
Error • RaiseError – Severity 10 & above
Messages
20. Unit Test Conditions
Predefined Test conditions in VSTS 2010
Data Checksum
Empty ResultSet/Non Empty Result Set
Execution Time
Expected Schema
Row Count
Scalar Value
Inconclusive
21. Levels of Unit Testing
Factors Affecting the choice of Appropriate Level
of Unit testing
Costs of Unit test development & maintenance
Added Value of Quality
Application Criticality & Frequency of use
Project Deadlines
22. Levels of Unit Testing
• Smallest amount of testing
• Ensures error free compiles
• No code is exercised
• Consists of single test case
Minimal with SET FMTONLY ON
• Executes with NULL inputs
• Intrinsic Assertion – No
Errors
23. Levels of Unit Testing
• Exercises commonly used
code paths & conditions
• One step above Minimal
• Tests Empty/Non-Empty
Margina Result sets
l • Some assertion of typical
behavior & expected
interface
• Not a thorough & complete
test
24. Levels of Unit Testing
• Exercises all code paths &
conditions
• Test cases for all permutations of
optional parameters
Complet • Multiple Assertions to completely
verify interface & behavior
e • Could also verify column names
of result set
• It’s an exhaustive unit test to
verify all but unexpected errors
25. Levels of Unit Testing
Possible to develop and un-testable stored
procedure ?
A search stored procedure with 8 optional parameters
will need over 2000 test cases
Numerous found/not found conditions
Error validation
Possibly an indicator of flawed design
Consider refactoring to facilitate testability
26. Demo
Prerequisite : Database Project Exists in VSTS
Create a Unit Test Project in VSTS
Configure SandBox
Create Tests
Run Tests
27. New in VSTS 2012
Redesigned Unit Test Explorer
Support for 3rd party testing frameworks
Code Analysis improvements
Continuous test runner
Deprecated Features
Test lists
Generate Unit Test Wizards
28. Conclusion
Software Testing - Basics
Unit Testing – Basics
Database Unit Testing – Detailed discussion on
Principles, Goals & Levels
Demo – Implementation of Database Unit
Testing with VSTS 2010 & SQL Server 2008 R2
Goals of Software Testing ;Assure the Quality of a Software DeliverableEnsure the software meets requirement specsEnsure the software meets user expectations as well as stakeholder expectationsEnsure that the behaviour of the system is predictable and deterministichttp://en.wikipedia.org/wiki/Software_testingImage - http://i.swebee.com/content/error-404-road.jpg
White-box testing is when the tester has access to the internal data structures and algorithms including the code that implements these.Black-box testing treats the software as a "black box"—without any knowledge of internal implementation. The black-box tester has no "bonds" with the code, and a tester's perception is very simple: a code must have bugs. Using the principle, "Ask and you shall receive," black-box testers find bugs where programmers do not. On the other hand, black-box testing has been said to be "like a walk in a dark labyrinth without a flashlight," because the tester doesn't know how the software being tested was actually constructed. As a result, there are situations when (1) a tester writes many test cases to check something that could have been tested by only one test case, and/or (2) some parts of the back-end are not tested at all.Grey-box testinginvolves having knowledge of internal data structures and algorithms for purposes of designing tests, while executing those tests at the user, or black-box level. By knowing the underlying concepts of how the software works, the tester makes better-informed testing choices while testing the software from outside. Grey-box testing implements intelligent test scenarios, based on limited information. http://en.wikipedia.org/wiki/Software_testinghttp://softwaretestingfundamentals.com/differences-between-black-box-testing-and-white-box-testing/
Unit testing - also known as component testing, refers to tests that verify the functionality of a specific section of code, usually at the function levelIntegration testing - Integration testing is any type of software testing that seeks to verify the interfaces between components against a software designSystem testing - tests a completely integrated system to verify that it meets its requirementsSystem integration testing - verifies that a system is integrated to any external or third-party systems defined in the system requirements
SandboxA database sandbox is a private environment used for local unit testing and development. The sandbox allows development and testing to be done in isolation from other development activity and ensures repeatable results. Database developers use sandboxes to perform unit testing and validate rollout script behavior. Application developers may use local database sandboxes to test application code without affecting, or being affected by, other development activity. A database sandbox may be created from script, by deploying a VSTSDE database project locally, or by restoring a database backup at a known state.Test CaseA test cast exercises a targeted code path. Success or failure is ascertained after test case execution by asserting that the expected outcome was realized. Multiple assertions are commonly needed to validate the desired outcome of a specific test case.
AssertionAn assertion is a simple condition that returns "true" to indicate test success or "false" to indicate failure of a test case. A test case assertion verifies:expected interface output values (e.g. output parameter values, number of resultsets, number of rows, resultset values, etc.)no extraneous results (e.g. errors, extra resultsets, unexpected informational messages, etc.)data modification behavior (e.g. data correctly inserted/updated/deleted)
Unit TestA unit test is the collection of all of the test cases that exercise a stored procedure interface and code along with the assertions need to verify correct behavior.Test ScriptA test script is a T-SQL script that executes a test case. A test script may also include assertions implemented in T-SQL, such as checking return code values, output parameter values or a TRY/CATCH to assert an expected RAISERROR of a user-defined error occurred.
Multiple related unit tests may be grouped together in a test list within VSTSDE so all can be run as a unit and for logical organizational purposes (a.k.a. test suite). http://msdn.microsoft.com/en-us/library/ms182461.aspxhttp://msdn.microsoft.com/en-us/library/ms182463.aspx
Setup and Cleanup ScriptsSetup and cleanup scripts (a.k.a. fixture and teardown scripts) are T-SQL scripts used to prepare the database for unit testing and return the database back to the initial state afterward. Setup scripts typically insert data needed by a test case while cleanup scripts remove testing artifacts after test case execution. The VSTSDE unit test framework provides common Test Initialize and Test Cleanup scripts that are run before/after each test case within a unit test. This allows the same scripts to be shared by all test cases within a unit test. VSTSDE also includes the ability to run Pre-Test and Post-Test scripts before/after an individual test case. Pre/Post scripts are especially appropriate for data tailored for a specific test case. VSTSDE Data Generation Plans provide an alternative to unit test setup scripts. However, data values must be customized so that test cases can be developed against known data values. Care must be used to ensure DGP changes do not adversely affect existing unit tests and that cleanup scripts restore modified data back to the original state after test case execution.
Unit Test explorer replaces the old test view and test results windowUsing simple plugin adapters, third party test frameworks can plug into the test platform layer and get the full experience of running inside of Visual Studio