Custom Template for wordpress cpt plugin

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;

}