The file testimonial_archive.php is not a valid WP template if you don’t define a custom way to use that file. The expected name is cpt-archive.php, in your case astestimonial-archive.php. Also, instead of using file_exists, you should use locate_template() to take adventage of template hierarchy and compatibility with child and parent themes.
add_filter('template_include', 'testimonial_archive');
function testimonial_archive( $template ) {
$post_types = array('astestimonial');
if ( is_post_type_archive( $post_types ) && locate_template('atestimonial-archive.php' ) == '' ) {
$template = dirname(__FILE__) . '/list-testimonial.php';
}
if ( is_singular( $post_types ) && locate_template( 'single-testimonial.php' ) == '' ) {
$template = dirname(__FILE__) . '/single-testimonial.php';
}
return $template;
}