MVP (minimal viable product) for tests or tests for MVPs
Fri 06 March 2015
MVP definition is Minimal Viable Product and it's basically a simple way to test your new product without really make this product. You can read more about StartUps and MVPs in my post at my new post.
MVPs are common in StartUps, because they are testing something new, but it's applicable for big companies too when they are trying to launch a new feature or improve UX (user experience) for a product. Here is a video that shows it better:
MVP for tests. The simple way to test your idea.
Let you as an entrepreneurship in your StartUp and you really don't know if your product will be accepted or people will like it. So, you can do your MVP (a simple web page or a YouTube video, etc). Doing it, you can receive feedbacks and improve your MVP. This is the point... Improve your MVP...
Now you just have a simple system that users can use basic functions and you want to know if users are liking and if they aren't getting in trouble with some feature. With these feedbacks your system is growing... But when should I test my MVP?
Tests for MVP. Make your judgment...
Here the question should be: "When is it not a MVP yet?". You need to realize when your software is with enough features that need test, and if these features will be permanent or are just testing features that users should never use.
More conservative programmers will hate me for that opinion, but when you are innovating, as much time you spend with bad ideas as much you lost time with new great ideas, because every new idea will fail, at least in one feature. Make your choice! It can determine a lot of things...
I'm not a MVP yet! Help me to test!!
Congrats! Your idea, and you software now are growing and you really need tests. Now you should decide better tests for your software and perhaps use TDD (Test Driven Development). Here is a list of popular test types and a summarized description:
- Unit Tests: Test each fragment of your code. E.g.: test each function individually.
- Integration Tests: Test integration between parts of your code. E.g.: if a module works with another.
- System Tests: Test your entire code usability. E.g.: if your entire new feature works as expected.
- Interface Tests: Test your user interface. E.g.: if your interface isn't with bugs to user.
- Differential Tests: Test if a feature is better than older version of this feature. E.g.: if a feature is faster then older.
- Stress Tests: Test if part or all code is stable. E.g.: how many requests a server support.
- Random Tests: Test with random inputs part of the code. E.g.: try a lot of random inputs in a function.
There are a lot of coverage types, and you can learn more about tests and coverage in this amazing Free Course.