Frequently Asked Questions
What are the prerequisites for devmate?
To use devmate your PC should meet the following requirements:
- Windows 8 or newer
- VisualStudio 2019 Version 16.3.0 or newer
VSIX Installer states: “This extension is not installable on any currently installed products.”
devmate currently only supports Visual Studio 2019. Make sure you have Visual Studio 2019 installed.
What is a test model?
From a method you can open an editor in which you can define equivalence classes, representatives and test cases. These information is called test model.
What is equivalence class partitioning?
Equivalence class partitioning is a software testing technique that divides the input data of a software unit into partitions of equivalent data from which test cases can be derived. https://en.wikipedia.org/wiki/Equivalence_partitioning
How do I generate tests with devmate?
To generate tests with devmate you have to do three steps. First you generate an empty test model for a method by right clicking into the method and choosing Test with Equivalence Class Method. The equivalence class editor should open. Here you perform the second step. Add equivalence classes, representatives and use them to generate test cases. For each test case you have to enter the expected value. The final step is to generate code. This is done by clicking the “Generate Code”-button in the equivalence class editor.
What is a .tmdl file?
The tmdl file (short for test model file) contains the data for the method you want to test. It includes equivalence classes, representatives and tests cases. Edit it with devmate in Visual Studio.
Should I add the generated test code to my VCS?
Yes. We encourage you to check-in the test code into your VCS. devmate allows you to modify generated code and merge any changes in the test-model upon newly generating code. You just have to make sure not to touch the test-data in the code itself or dramatically changing the structure of the code.
What does SUT mean in the editor?
SUT stands for System-Under-Test. In case of C# the SUT is the object that the method under test is applied to. If you want to test method ‘withdraw’ of class BankingAccount for example the SUT is an instance of BankingAccount.
How can I set a string parameter to null?
You can set the value of a string to null by entering the text null. If you want to pass the string “null”, enter the text null (with the quotes).
How can I set a char variable to a non-alphanumeric character?
Characters can be passed in two ways. You can either enter a character under single-quotes (e.g. ‘2’) or you can enter the numeric value of a character (e.g. 50). A non-alphanumeric character can only be passed by its numeric value.
How do I perform asserts on input parameter?
We currently don’t support checking of input parameters.
“Generate Test Case” does not work?
Generating test cases requires at least one positive equivalence class for each input parameter and at least one representative for each equivalence class.
“Generate Code” does not work?
Generating code requires that all your test cases have a selected representative for each input factor.
Why can’t I create a test model?
You can create a test model by doing a right click inside a method -> Test with Equivalence Class Method. We do not yet support:
- getters and setters for properties
- generic methods or methods in generic classes
- async methods
How do I generate XUnit or MSTest Unit Tests?
We currently only support NUnit code generation.
Why should I use black-box testing techniques?
Testing software can be roughly divided into two approaches. White-box testing and black-box testing. White-box focuses on the implemented code. It makes sure that as much code as possible is reached by test at least once. What this approach does not cover is, if the implementation meets the requirements. Checking this condition is the main goal of black-box testing. Here you ignore the implementation and only use the requirements to derive test cases. Therefore if you want to check if a piece of code does what it supposed to do you should use black-box testing.
How can devmate improve my software development process?
By focusing solely on black-box testing, devmate encourages you to implement tests that are independent from your code. This results in tests that have not to be changed when you refactor your code. Refactoring is major part of the software development process and adapt the test suite to this changes can be very hard. devmate will:
- Decrease your testing effort during refactoring
- Make sure that your software behaves the same before and after refactoring
I found a bug or have a feature request, how can I report it?
Please send us an email to: firstname.lastname@example.org