Question: Soldiers gain experience from killing enemies. At what experience levels do the soldiers advance to the next rank?

Answer: 
As this wiki page suggests (game mechanism tuning, did not tested myself), there is a XP chart for your soldiers:

```
Soldier XP Levels (Rookie, Squaddie, Corporal, Sergeant, Lieutenant, Captain, Major, Colonel)  
  - m_iSoldierXPLevels=0  
  - m_iSoldierXPLevels=90 
  - m_iSoldierXPLevels=300  
  - m_iSoldierXPLevels=510  
  - m_iSoldierXPLevels=745
  - m_iSoldierXPLevels=1100  
  - m_iSoldierXPLevels=1560 
  - m_iSoldierXPLevels=2150

```

Though kills does not make all. It does bring experience, as stated in [Does the type of kill matter for promotion?](https://gaming.stackexchange.com/questions/88983/does-the-type-of-kill-matter-for-promotion), but all your promoted soldiers did not necessarily killed a target. It can be assumed that participating to a kill also grants some experience.

Furthermore, I think there is a mission bonus awarded to each surviving soldier.

There are also bonus that can be bought through the soldier academy: wet work that increase the amount of experience gained and the new soldier auto-squaddie promotion come to my mind.
In order for a soldier to rank up, he/she has to kill a set number of aliens. I do not know if it has to all be on one mission, but anecdotal evidence through my playthough indicates that it is kills in total, not kills in one mission, and that which type of alien is killed doesn't matter. My Colonel (the highest rank) with the least number of kills has 24 kills across all missions. My Major (second highest rank) with the most kills has 18 across all missions. I believe that recruit to squaddie is 1 kill, and squaddie to Corporal is 3 kills. Not definite about any others.