Karl Popper was a 20th century philosopher of science, best known for his work on falsifiability. He was critical of the ideas put forth by previous philosophers such as Carnap, that science works by verifying your theories through examination of the world. He said that many theories that were not scientific could be successfully verified by either making vague predictions, or through ad hoc adjustments to the theory. For example a horoscope can predict something vague like “you will have a pleasant surprise later this week”. Then you find some forgotten money in your pocket, and the horoscope was seemingly verified to be true! However since nearly anything could have verified it, since it was so vague, this does not count as science.
He was particularly critical of Freud’s theory of psychoanalysis and Marx’s theory of historical materialism, both of which were considered scientific by many at the time, but seemed to explain almost all sets of observable data. Instead he suggested that scientific theories must put forwards highly specific predictions, and the scientists must then work to falsify, rather than verify, the theory.
My criticism of Popper’s argument is that saying Marxism isn’t a science because it can’t make overly specific predictions of on to the-minute events is like saying Meteorology isn’t scientific because you can’t predict a tornado will strike at a certain time in a certain state and last for this many minutes.
Historical materialism was accepted by fact by even mainstream neoliberal economists like Adam Smith all the way up until it became cool to hate the Soviets for liberating their country from monarchs and capitalists.
Popper’s (non-Marxist) disciple Paul Feyerabend pretty well undermined Popper’s view, essentially showing that many interesting and foundational scientific discoveries could not have been made if we exclusively followed the mode of what Popper calls science.