Testing a software, or a smart contract, it's the same, is a bit more than making you sure that you have no bugs.
You should read a few articles about why testing software.
A non exhaustive liste of reasons is:
no having to test manually each time you make a change on your code
explain what the code does and what to expect
Truffle is a development tool. It helps you to build and deploy smart contracts to an Ethereum based blockchain (such as the mainnet or in your case Ganache).
Ganache is a test blockchain that makes developing much, much easier. It runs locally on your own machine and truffle can interact with it as if it were the real blockchain. The 'block times' are ...
The way they are doing it is indeed a breakthrough in my view, it is the first time I actually see a 100% safe way to generate random numbers on a smart contract without oracles.
EDIT: And by the way, oracles are not even 100% safe because you are always trusting third parties.
How they do it:
First you need to buy a ticket
You can only use your ticket ...
Smart contracts can't trigger themselves. Their functionality is always triggered by an EOA (Externally Owned Account). In this way the EOA also pays for the execution cost (gas).
So you can't make the contract push the payments in this way.
However, what you could do is make it a pull-based system. So you can add a withdrawal function which gives out ...