Who can witness a person signing his or her Will or Codicil? Pretty much anyone who has reached the age of majority and is mentally competent can be a witness, but there are some exceptions.
No beneficiary of your Will should be a witness to that Will. Neither should that beneficiary's spouse or common-law spouse be a witness. If they do act as a witness, the gift you want to leave to that beneficiary becomes invalid. Not only would that disappoint the beneficiary, but it could also leave you partially intestate (i.e. some assets not covered by the Will).
It is perfectly alright for your executor to be a witness. However, that won't work if the executor is also a beneficiary, as mentioned in the previous paragraph. If the executor acts as a witness, he or she might also be endangering his or her chance of being paid for acting as your executor.
It is alright for a creditor of the deceased to be a witness.
When I'm visiting a person at their home or at a care facility to have a Will signed, it isn't always possible for me to bring witnesses along. In a case like that, neighbours or staff at the care facility can act as witnesses. To protect my client's privacy, I do not ask the neighbours or the staff to read the document, though I make it clear that it is a Will that is being signed.
A Will has to be signed by the testator in front of two witnesses who both watch him or her sign. Then the witnesses both sign in front of the testator and each other. Later, one of the witnesses must sign an Affidavit stating that all of the proper formalities of Will signing were followed.
A holograph Will that is 100% in your own handwriting does not need to be witnessed (make sure you date it and sign it though).