Fixed order with limited set, then resume normal order
Isn't news/test-article just an example of news/{slug}? And is this for a plugin (hence the PHP) or a template (hence the templating tag for your question)?

Perhaps what you want to do is start by grabbing the slug from the URL and getting the entry you're after:

{% set entry = craft.entries.section('news').slug(craft.request.lastSegment).first %}
// output


Use that to display the first entry, then get the rest of the news entries but filter out the active:

{% set otherEntries = craft.entries.section('news').id('not ' ~ entry.id) %}
{% for otherEntry in otherEntries %}
    // output
{% endfor %}