Skip to content

NTVS 1.3 Manual Test Matrix

Matt Bierner edited this page Nov 11, 2016 · 6 revisions

Manual testing matrix and test scenarios for NTVS 1.3

Setup

  1. Windows versions:
  • Windows 8.1
  • Windows 10
  1. Install Visual Studio 2017 Enterprise + the Node.js Workload

  2. Install Node.js (test all versions)

  • Node.js v6.9.1 x86
  • Node.js v4.4.5 x86

Scenarios

Create New Project

Checks creation of new NTVS projects from templates.

Prerequisites

None

Testing
  • Go to File -> New -> Project

  • Select the Templates -> JavaScript -> Node.js -> Basic Azure Node.js Express 4 Application template

  • Save the new project in c:\src

    • ⭐Expected: New project should open in Visual Studio without any error messages.
  • Wait for npm install to finish executing in the background (see details in the Output npm pane)

    • ⭐Expected: Results of npm install command are printed to output pane.
    • ⭐Expected: No error messages were printed to the output pane.
    • ⭐Expected: express and pug are listed under the npm node of the solution explorer.
Other Cases 💼

Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Basic Azure Node.js Express 4 Application


Basic Usage

Checks basic running and debugging functionality.

Prerequisites

Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.

Testing
  • Set a breakpoint in app.js on the line (or app.ts):
var app = express()
  • Set a breakpoint in routes\index.js (or routes\index.ts) at the line that begins with:
res.render('index'
  • F5 to start debugging

    • ⭐Expected: Ensure the browser launches (http://localhost:1337)
    • ⭐Expected: The first breakpoint is app is hit.
  • Continue program execution.

    • ⭐Expected: The breakpoint in routes/index is hit.
  • Continue program execution.

    • ⭐Expected: In the browser, the page now loads successfully.

Basic Debugger Stepping

Checks basic debug stepping

Prerequisites

None

Testing
  • Templates -> JavaScript -> Node.js -> Blank Node.js Console Application
  • In app.js (or app.ts), enter the following text:
function count(remaining) {
    if (remaining <= 0)
        return 0;
    return remaining + count(remaining - 1);
}

var sum = 0;
sum = count(3);
sum = count(5);
  • Set a breakpoint in count on the line sum = count(3);

  • Start debugging the program.

    • ⭐Expected: Program runs to the line sum = count(3);
  • Hover over the sum variable in the source text.

    • ⭐Expected: A value of 0 is displayed.
  • Hit step over in the debugger:

    • ⭐Expected: the program continues to the line sum = count(5);
    • ⭐Expected: Hovering over sum now shows a value of 6`.
  • Now hit step into in the debugger.

    • ⭐Expected: The debugger is now on the first line of the count function.
    • ⭐Expected: The callstack window lists an entry for count at the top of the stack.
    • ⭐Expected: The value of remaining is 5.
  • Hit step over to get to the line return remaining + count(remaining - 1); and then hit step into again

    • ⭐Expected: The debugger is now on the first line of the count function again.
    • ⭐Expected: The callstack window list two entries for count on the top of the stack.
    • ⭐Expected: The value of remaining is now 4.
  • Hit step out in the debugger:

    • ⭐Expected: The debugger is now on the last line of the count function.
    • ⭐Expected: The callstack window lists one entry for count at the top of the stack.
    • ⭐Expected: The value of remaining is 5.
  • Hit step out once again:

    • ⭐Expected: The debugger is now on the line sum = count(5)
    • ⭐Expected: The callstack does not have any entries for count.
  • Hit step over once:

    • ⭐Expected: The debugger is now on the line after sum = count(5)
    • ⭐Expected: The value of sum is 15
Other Cases 💼

Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Blank Node.js Console Application


Profiling

Checks basic profiling functionality.

Prerequisites

Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.

Testing
  • Walk through the "Profiling" and "Start your profiling session" sections in the Profiling docs.
    • ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.

Npm Management using GUI

Checks that management of Node packages using the NPM GUI.

Prerequisites

Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.

Testing
Other Cases 💼

Try switching to VS themes and running through the scenario again. Make sure things are readable and nothing looks out of place in the NPM window.


Test Explorer

Ensure that the test explorer works as expected.

Prerequisites

Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.

Testing
  • Walk through the Test Explorer documentation
    • ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.

Basic Intellisense

Checks that basic IntelliSense functions as expected.

Prerequisites

None

Testing
  • File -> New Project -> JavaScript -> Node.js -> Blank Node.js Console Application

  • Create a new directory named hello.

  • Right click on the directory to add a new javascript item item1.js

    • ⭐Expected: hello/item1.js file should now exist and be open in editor.
    • ⭐Expected: The top of the editor does have a dropdown bar dropdowns.
  • Type process. in the hello/item1.js file

    • ⭐Expected: After typing the ., you should see a list of completions.
    • ⭐Expected: arch appears in the completions list, with a (non-warning) glyph to the left-hand side of it.
  • Change hello/item1.js to:

var fs = require('fs');
fs.
  • ⭐Expected: List of completions should be displayed after typing the . in fs.
  • ⭐Expected: writeFile Exists in the completions list, with a (non-warning) glyph to the left-hand side of it.
  • Change hello/item1.js to:
module.exports.a = 3;
module.exports.b = "hi";
  • Back in app.js, add the following at the end of the file:
var item = require('./hello/item1');
item.
  • ⭐Expected: List of completions should be displayed after typing the . in item., starting with a and b.
  • ⭐Expected: completion list items a and b have a (non-warning) glyph to the left-hand side of them.
  • Now select the completion for b so that the text file looks like this:
var item = require('./hello/item1');
item.b
  • Hover over the b and hit F12.
  • ⭐Expected: Editor opens ``hello/item1file and highlights themodule.exports.b = ...` line

Interactive Window in Simple Project

Interactive window can evaluate expressions and run simple npm commands.

Prerequisites

Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.

Testing
  • With an open project.

  • Open the Node.js Interactive Window using Ctrl+K, N

    • ⭐Expected: Node.js Interactive window should now be open with no error messages.
  • Run var a; a = [1, 2, 3].map(function(x) { return x * x; })

    • ⭐Expected: The result [ 1, 4, 9] is printed
  • Press the up arrow.

    • ⭐Expected: The previous command (var a; a = [1, 2, 3].map(function(x) { return x * x; })) should now be in the active buffer.
  • Clear the active buffer and enter a.

    • ⭐Expected: The result [ 1, 4, 9] is printed again.
  • Run .npm install azure --save-dev in the interactive window and wait for the command to complete

    • ⭐Expected: There are no error or warning messages.
    • ⭐Expected: The output is readable and doesn’t include any odd characters.
    • ⭐Expected: An entry for azure is now listed in the npm -> Dev node in Solution Explorer.

Interactive Window without any open Projects

Interactive window can evaluate expressions when no projects are loaded

Prerequisites

None

Testing
  • Without any open project (such as first boot of VS)

  • Open the Node.js Interactive Window using Ctrl+K, N

    • ⭐Expected: Node.js Interactive window should now be open with no error messages.
  • Run var a; a = [1, 2, 3].map(function(x) { return x * x; })

    • ⭐Expected: The result [ 1, 4, 9] is printed

Typings are Automaticlly Acquired for newly installed packages.

Prerequisites
Testing
  • In current project.

  • Open the Node.js interactive Window: Tools -> Node.js Tools -> Node.js Interactive Window

  • Run .npm install underscore --save in the interactive window and wait for the command to complete.

    • ⭐Expected: underscore should now be listed in the npm node of the Solution Explorer.
  • Open any Javascript file.

  • At the end of the file, type:

var _ = require('underscore');
_.
  • ⭐Expected: After typing the ., you should see a list of completions for underscore, including apply and first
  • ⭐Expected: Completion list items apply and first have (non-warning) glyphs to the left-hand side of them