Assumptions for conducting a hypothesis test for difference of two means I have a data set of 412 schools and the mean SAT scores for these schools in 2012. I have created a dummy variable called high-income and low-income school based on the number of students that receive free or reduced lunches. 
I want to conduct a Hypothesis tests for the difference of two means where I hope to set up the following hypothesis
H0-There is no average difference in SAT score between low-income and high income schools
HA- There is a difference in mean SAT scores between the low-income and high income schools.
I'm not sure if I have fulfilled the assumptions to carry out a difference of two means t-test
There are 1700 schools in NYC, and the dataset I have has 412 schools. However I am not sure if this data comes from an independent random samples. Also within these 412 schools only 142 schools fall as "high-poverty" and "low-poverty" category. 
see blow for the histograms for both groups


In such a situation should I not conduct the hypothesis test I have proposed 
 A: With fake data (generated in R) that I hope roughly matches the data you used
to make your histograms, I did a Welch 2 sample t-test, and
found a significant difference.
Data summary:
summary(hi.pov)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  302.1   357.0   376.0   381.4   397.7   575.0 
sd(hi.pov);  length(hi.pov)
[1] 39.51679
[1] 126
summary(lo.pov)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  465.6   545.6   586.5   576.7   615.0   680.0 
sd(lo.pov);  length(lo.pov)
[1] 70.99293
[1] 12

Welch t test: highly significant
t.test(hi.pov,lo.pov)

        Welch Two Sample t-test

data:  hi.pov and lo.pov
t = -9.3894, df = 11.658, p-value = 8.834e-07
alternative hypothesis: 
   true difference in means is not equal to 0
95 percent confidence interval:
 -240.6984 -149.7898
sample estimates:
mean of x mean of y 
 381.4178  576.6619 

Histograms of fake data:
par(mfrow=c(2,1))
 hist(hi.pov, xlim=c(300,680), col="skyblue2")
 hist(lo.pov, xlim=c(300,690), col="skyblue2")
par(mfrow=c(1,1))


