Prepare a multi-package visual studio solution

Assignment Help C/C++ Programming
Reference no: EM132271378

Project #1 - Single-User Test Harness

Purpose:

Developing software consisting of multiple packages1 requires frequent testing. If the software has complex features, we want to build it incrementally. First design and implement a very basic core with a small number of packages, then add features one-at-a-time by adding new packages, or adding a few lines of code to an existing package. Each time we add new functionality, we build and test. That way, if additions break existing code, we know where to look, e.g., in the newly added few lines of code. A test harness allows us to use that incremental process efficiently.

A test harness should allow us to define and aggregate many small tests, each of which run with exception handling and results logging. Our goal is to do that without littering our code with many try-catch blocks and many logging statements. The technique we use to do that is to define, in the test harness, an execution function that accepts a callable test object2 - function pointer, functor, or lambda - and invokes the object within the scope of a try block. A catch clause displays exceptions and returns false to indicate test failure. Otherwise the executor returns the test predicate returned by the test object, e.g., true or false for pass or fail.

The test executor also provides results logging with predefined messages. Your test harness should define several levels of loggin, e.g., just pass or fail, or more detailed, test-specific messages, or very detailed debugging messages, which display a time-date stamp and the values of key test-defined variables.

The test harness provides a mechanism to link any number of tests into a test sequence. Typically, during development, we keep adding tests for each new feature, and can rerun tests just for that feature, or all the tests of all the features, to insure that the new addition didn't break existing functionality.

Requirements:
Your Single-User Test Harness:

1. Shall be prepared using the latest version of Visual Studio, and written in the standard C++ programming language, using the standard C++ libraries.

2. Shall provide a TestHarness class that defines an executor method, accepting any callable object that accepts no arguments3 and returns a bool predicate to indicate success or failure.

3. The executor method Shall invoke a passed callable object in the scope of a try block. If exceptions are thrown, the catch block you define for this method shall log test failure and the contents of the exception message.

4. Shall support linking any number of callable objects for execution, and shall provide a mechanism for executing that sequence.

5. Shall provide a multi-level logging mechanism, intended to show:
o just pass-fail status
o application specific messages for pass and fail, along with the result
o detailed debugging output that includes, on failure, values of application specific variables, and an optional time-date stamp

6. Shall provide a sequence of tests demonstrating all the features of your TestHarness.

1. In C++, a package is consists of two files - a header file that has:
o A prologue, consisting of comments that describe the package and its operations, required files, and maintenance history.
o Declarations of one or more classes.
o Definitions of inline functions and template methods.
and an implementation file that has:
o Definitions of all methods declared, but not defined, in the header.
o A test stub for construction tests.

2. A callable object is an object that can be invoked as if it were a function. These will be described in detail in several of the lectures, but you can get a quick overview by looking at the course Summary

3. You can provide arguments for the execution as member data of a functor, or as data captured by a lambda.

What you need to know:

In order to successfully meet these requirements you will need to know:

1. The definition of the term package and have looked carefully at a few examples.

2. How to use basic features of the C++ language.

3. How to organize and prepare a multi-package Visual Studio solution.

Reference no: EM132271378

Questions Cloud

Do you feel a negotiator effectively be used in the conflict : In what ways is the conflict being managed effectively? Ineffectively? What are the major sources of the conflict?
Does economic crisis considered frustration to contract : Was the booking proforma a contract? Does "economic crisis" considered a frustration to the contract?
Evaluate several management theories : In this assignment, you will write a short (1-2 page), opinion paper. The paper is informal in that it is based on your own experiences and opinions.
Examine each possibility and the factors you will consider : Your company can make more money for shareholders by relocating your plants to a country with lower labor costs and fewer regulations.
Prepare a multi-package visual studio solution : Users of dedicate systems such as workstations have dedicated resources but frequently use shared resources from servers
Project procurement management case study : Maju Jaya advertises in a local daily calling suitable contractors to submit tenders for the development of an IT project.
What type of issues might a gen y employee : What type of issues might a Gen Y employee and an older more experienced employee face while being paired together for an assignment?
Develop an organizational framework-approach : Develop an organizational framework/approach that aligns with the following parameters: It is congruent with the setting's mission, vision, and philosophy.
Creation of the job description : How does job analysis supports the creation of the job description?

Reviews

len2271378

3/31/2019 11:45:14 PM

Please review the attached document insure that the new addition didn't break existing functionality. and please follow all the things mentioned in there

Write a Review

C/C++ Programming Questions & Answers

  Write a program in c of fibonacci series

Write a program in c of Fibonacci series with and without using fibo func, both

  Program initializes an array with these numbers

Scenario: A lottery ticket buyer purchases 10 tickets a week and always the same 10 five-digit lucky combinations.

  Develop a method for shuffling

300698 Operating Systems Programming - Western Sydney University - Develop a program that implements game. Additionally you should print each of the hands

  Develop a c++ based library management system

You have been assigned a task by your school librarian to develop a C++ based library management system that can enable librarians to: Add new books and View books

  Futures of anomaly based instruction detection scheme

Explain the futures of anomaly based instruction detection scheme.

  Implement the program and find the item

This would be a function called into program. Struggling with the search aspect. Any clarification is greatly appreciated. File is 'inventory.dat'

  C# programming in microsoft visual studio to complete

Please use C# programming in Microsoft Visual Studio to complete this assignment.  You are to write a program that will prompt the user for the following information and then calculate and display the monthly payment.  Amount borrowed

  Program consisting of multiple objects

Write a program consisting of multiple objects which interact with each other by following appropriate design practices

  What is the business rule in the e-r model segment

What is the business rule that is being illustrated in the E-R model segment in the below figure?

  Write program that prints the reverse of the string entered

Write a C program that prints the reverse of the string entered

  C++ program to draw a correct texas flag using rectangles

Write a C++ program to draw a correct Texas flag using rectangles, lines, and/or polygons (not images).

  Program that generates 50,000 random integers from 1 to 6

Program that generates 50,000 random integers from 1 to 6 (inclusive). Count the number of times that each number occurs and output the totals

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd