Traceability Matrix in Details


It sounds complicated. Why do teams do it? It sounds like a lot of work. Is it really worth the effort? Good questions. The short answer: Yes. And, here’s why it’s so important: Change happens.

Traceability Helps You Stay Connected, Manage Change & Improve Quality. Yes!

If managed poorly, change will wreak havoc on even the most talented and experienced development teams. If managed skilfully, using tools like traceability, teams are better equipped to assess the impact of changes, track the full history, keep everyone in sync and (deep breath) consistently improve the quality of the products being built– every project, every release. Sign me up

Traceability ensures completeness, that all lower level requirements come from higher level requirements, and that all higher-level requirements are allocated to lower level requirements. Traceability is also used to manage change and provides the basis for test planning.

Requirements tracing is the process of documenting the links between the user requirements for the system you’re building and the work products developed to the implement and verify those requirements

Requirements tracing helps the project team to understand which parts of the design and code implement the user’s requirements, and which tests are necessary to Verify that the user’s requirements have been implemented correctly.




The Five Tips for Mastering Traceability

1. Create relationships to connect everyone and everything together with Trace Relationships

2. Ensure you have proper coverage using a Traceability Matrix

3. Assess the impact of a change before it occurs with Impact Analysis

4. Document changes for complete visibility and a detailed audit trail with Version History

5. Keep communication flowing and the team in sync with smarter, real-time Email Notifications


Types of Traceability Matrix




Forward Traceability Matrix



1. Tracing the requirements sources to their resulting product requirement(s) to ensure the completeness of the product requirement specification.

2. Tracing each unique product requirement forward into the design that implements that requirement, the code that implements that design and the tests that validate that requirement and so on.

3. The objective is to ensure that each requirement is implemented in the product and that each requirement is thoroughly tested.


Forward Traceability Matrix – Benefits


1. Assess the changes in the business environment by tracing from the requirement to the product

2. Forward traceability ensures proper direction of the evolving product and indicates the completeness of the subsequent implementation


Backward Traceability Matrix


1. Tracing each unique work product (e.g., design element, object/class, code unit, test) back to its associated requirement.

2. Tracing each requirement back to its source(s).


Backward Traceability Matrix – Benefits

1. Assess current status of the requirements and the project

i. Identify missing requirements

ii. Identify gold plating

2. Assess the root cause of the defect by tracing the defect from the Product to the requirement


Bi-Directional Traceability Matrix



The Combination of both forward & backward traceability is called as Bidirectional Traceability.

Bi-Directional Traceability Matrix – Benefits

1. Analyze the impact of a change

i. All work products affected by a changed requirement

ii. All requirements affected by a change or defect in a work product

2. Assess current status of the requirements and the project

iii. Identify missing requirements

iv. Identify gold plating

Why Traceability Matrix is important?

How can we ensure, for each life cycle phase, which I had correctly accounted for all customer needs?

How can I ensure that the final software product meets the customer needs? For example, I have a function that checks for invalid password I put in the password field of the application throws an error message "Invalid Password". We can only ensure that this requirement is included in the test case for the traceability matrix.







Test Metrics


Metrics
Formula
Effort Variation
(Actual Effort - Estimated Effort)/(Estimated Effort) *100
Schedule Variation
(Actual End Date - Planned End Date) / (Planned End Date- Planned Start) *100
Defect Density
Total no of defects/Effort                                                    or                                                                                   Total no of defects/Size
Load Factor
No of available resources / Total no of actual resources
Testing Efficiency
Total Valid Defects/Total Defects * 100
Productivity
<No. Of Test cases Executed or No. of Test Case Prepared>/Total effort in person days
Percentage Rejection
Total invalid Defects/Total Defects * 100
Percentatge Rework
(Total Rework Effort) / (Actual Effort expended for the project)*100
Build wise effort
(Build Actual Effort - Build Estimated Effort)/(Build Estimated Effort) *100
Build Rejection
No. of Builds Failed/Total No. of Builds
Regression Test Failure
No. of Regression Test Failed/Total Regression Test Cases
Build Wise Smoke Test
Pass Vs Fail
Buildwise Test Execution Metrics
No. of Test Cases passed/Total No. of Test cases


GUI Standards


Following are graphics user interface standards for an application

Alignment: -
  • When you use a column heading with a sorting function, center the heading
       Left justify text fields
  •  Right justify whole numbers in columns
  • Set the tab order for all controls left-right, top-bottom
  • When some column headings require multiple lines and
             Some do not; align the columns with one line across the bottom

Borders:-
  • Add 3D lowered borders to entry fields. Do not use borders with protected fields (i.e., flat and transparent).
  • Make storable column headings 3D raised.

Check Boxes: -
  • If a check box is unavailable, disable the checkbox by
            Making it 2D
  • Check boxes on list windows should be centered
  • Do not put a group box around a single checkbox.
  • The maximum number of check boxes you can put in a group box is three arranged horizontally, or six arranged vertically.
  • Left justify vertical check boxes
  • Do not put more than six check boxes in a group  Instead, use a multiple selection list or drag and drop
  • A check box label can be between two and thirty characters

Color:-
  • If the user has inquiry rights only make the background of the entry fields transparent Else make it white.
  • When using colors, especially red and green, provide color blind users
            Another method of distinguish between colors
      
Standard window colors are
Window and Data Window Background
      Silver
Entry Field Background - Display Only
      Silver
Entry Field Background - Enterable
      White
Entry Field Text
      Black
Title Bar
      The color set by the client in Windows
Labels
      Black Bold


Command Buttons: -
  • Place command buttons on the right or bottom of a window, but not both
  • On summary windows (windows with lists), align push buttons horizontally along the bottom portion of the window
  • On detail windows, align push buttons vertically along the right side of the window.
  • Arrange push buttons by frequency of use, from positive actions to negative actions
  • Always assign a default push button in response windows
  • Always make the OK button, if available, the left-most or first push button on the dialog window
  • Always make the Help button the right most, or last push button on a
      Dialog window graphic or Label or both. Capitalize the first letter of a word.
  • Ensure that the Use of an accelerator key is unique within that setting.
  • A window can have up to six push buttons
  • The control menu on a primary window must include Move, Size, and Close.
  • Add right mouse click menu for word wrap, and home/end
      If the grid contains a description column 


Control Bar & Menu
  • Include the Control Bar in primary windows, dialog windows, and message boxes.
  • The control menu on a primary window must include Move, Size, and Close.
  • The control menu on a dialog window must include Move, Close.
  • Provide what’s this help wherever possible.

 Data Window:-
  • Add a 3D lowered box around the borders of select Data windows.
  • Do not make the border of a header Data Window 3D lowered, but you
      Can add a box around it if necessary
  • Add a group box around multi-line header data windows

Dialog Window: -
  • Make the default size of the dialog window large enough to view all of
      The components on the screen without grouping
  • Display all dialog windows in the center of the screen, by default
  • Let the user move the dialog windows to view other parts of the screen.

Drop Down Data Window and Selection List: -
  • A drop down list must contain at least three items
  • A drop down list can contain up to fifty items. If you need more than
      50 items, use a response window
  • Order the data in a list box in a manner the user recognizes, for
       Example, alphabetically
  • A list can display between three and six items, but provide it with a
      Vertical scroll bar to view the remaining options if there are more than six.
  • If the entire field does not appear in the space on the window, make it scrollable

Date:-
  • Date fields should always contain an edit mask of mm/dd/yyyy regardless of whether they are updatable or not
  • Fields that are not available for update should be disabled rather than hidden

Fonts, Capitalization & Punctuation: -
  • The font for all “text” is MS Sans Serif 8 point
  • OK is always all caps
  • If the message or title is a full sentence, punctuate them normally
  • Capitalize the first letter of each word, except for articles and prepositions

Group Boxes & frames: -
  • The group box typically groups radio buttons or check boxes
  • Do not use a group box to group push buttons or list boxes
  • Use the smart pointer  wherever a right click pop up menu is available
  • Design all frames/Windows  for 640 X 800 screen resolution

 Icons:-
  • Make icons 3D so that they look like buttons
  • Label all toolbar icons the name of the application or window that they represent
  • Provide functions such as New, Open, Save, and Close with an icon on
  • The tool bar and an option in the menu
  • Make icons (such as the calendar icon) work on a single click

Key board Access: -
  • Make the tabbing sequence in the window logical, and in either left to
      Right and/or top to bottom sequence
  • Give every menu item and push button a mnemonic and/or shortcut key
  • Make the mnemonic for an item the first consonant of the first word

Message Boxes: -
  • Make the title of the message box the same as the title on the parent
      Window. Do not use punctuation in the titles
  • A message box must contain the Title Bar and adequate push buttons
  • Include the Stop graphic before the message in the error message box.
  • Valid push buttons for an error message box are: OK and Help.
  • Include the "I" graphic before the message in the information message box
  • Do not make the message box resizable

Menu bar /Options and Pull Down menus: -

  • Provide between two and fifteen items in the pull down menu
  • Use a separator to separate destructive actions such as Exit from the
      Other menu items
  • Make menu items fit on one line
  • Provide mnemonic keys for menu items wherever possible
  • Begin option names with a verb (Example: "Review Sample Details").
  • The Window pull down menu displays a list of windows currently
     Open in the application. The list is sorted by use with the current
     Window listed first, the previous window used listed second and so on.


Radio Buttons: -
  • Assign one radio button as the default. The default radio button is pre-
      Selected whenever the window is displayed
  • Arrange radio buttons in rows or columns or both. Left justify vertical
      Radio buttons
  • A group of radio buttons must contain at least two
  • If a radio button is not available, disable it by displaying the label in gray.

Reports: -
  • Create columnar reports wherever possible
  • Left justify report labels
  • Display page numbers
  • Use common report headers
                     
Status Line:-
  • Display help on the status line

Tab Folders: -
  • Use a maximum of one tab folder per window
  • Do not nest tab folders within tab folders
  • Place tab page labels at the top of the tab folder

Testing of a product which has no test cases?


a) Test the application with the customer view
b) Try to develop the test cases with the method”What you see is what you test”
    (Experience is required for writing test cases)
c) Try to perform insallation/uninstllation tests and all GUI objects validation
    Like radio, command button, list box, check box, links ETC
d) Get the information of the similar type of features which were tested for other
     Projects.
 e) Enter the min and max values for all the user input fields and determine the
     Valid length
 f) Verify the screen flow and develop test cases

Testing of the product when requirements are frequently changing


a) Plan the testing activity with a buffer time in it.
b) Update and intimate the schedules that are affected because of requirements changes
c) Try to move the new requirements or enhancement requests to next phase of testing
d) Estimate the possibilities of automating the testing sequence and apply it
e) Check that the code is well commented and documented so that updations or change 
     To code becomes easy
f) Try to provide a prototype of the application of the new features to the customers,  
    This helps to change the requirements at the initial stages

Things to be considered when testing has to be carried out in a short period/ not enough time is given



a) Use risk analysis to determine where testing should be focused
b) Determine which is the core or important functionality of the   
     Project/product/application
c) Which functionality is the most visible to the user?
d) Most required and frequently used functionality by the customer
e) Which part of the code or design is most complex and has the chances of
      Having more bugs/errors/defects
f) What are the specific tests that will cover multiple functionality of the application?
g) If testing of the current project has the same features or similar functionality to the 
    Previously executed project, get details of that project information and try to eliminate   
    Those problems in the current project.    
h) Which functionality has the largest safety impact?

Web Based application(s) testing


Web sites are essentially client/server applications they can be divided as web servers and 'browser' clients. Consideration should be given to the interactions between HTML pages, protocols, security, applications that run in web pages such as applets, JavaScript, plug-in applications, and applications that run on the server side such as CGI scripts, database interfaces, logging applications, dynamic page generators, etc.
Additionally, there are a wide variety of servers and browsers, various versions of each. Small but sometimes significant differences between them, variations in connection speeds, rapidly changing technologies, and multiple standards and protocols. The end result is that testing for web sites can become a major ongoing effort.

Things to be considered for web testing
a) What are the expected loads on the server and does it meets the expected performance       And the stress
b) What are the different browser(s) capabilities of the application?
c)  How is the connection speed internal & external (real time)
d) What are the security threats and how it is secured (firewalls, encryptions Etc)
e)  How is the server recovery from down time or an crash
f)  What are the different injections or vulnerabilities (SQL injection, cross site scripting?  
      Etc) that might occur and how it is handled
g) How is the master slave severs performance, that is when one server is down how effectually the slave or the other server will come up (if configured)
h) How is the web page layout, fonts, colors, text, graphics and user Interface? Etc.
i)  Cookie handling

Security vulnerability: -
Security vulnerability can be said as threat to the application from unauthorized access
And corruption of the application data. Following are the few security vulnerabilities.

Injection attacks
Cross site scripting
Session hacking
Form tampering
Port Scanning / Foot Printing
Injection Attacks:-
Following are the different types of injections
SQL injection
Ldap injection
Command Injection ETC

SQL Injection:-
Try the following steps
a) Open the Web site in a browser
b) Find a script which has common scripting-language file extensions
    Like .asp or .cfm
c) The “search” filed of an application is the field most vulnerable The Uniform Resource      Locator (URL) on the results page will likely contain a script. Also try hovering your cursor over links while watching the Bottom status bar. If the status bar doesn't display URLs click on links and watch the address bar until you find a URL that has parameters.
Once you are on a page whose URL contains parameters, you are ready to test for SQL Injection vulnerability. There are two methods. Be sure to test each parameter value, one at a time, with each method

Method 1:-
In the address bar URL, highlight a parameter value. Replace it with a single quote.
 
Method 2:-
Instead of highlighting the entire parameter value, click inside the value and type a single quote.

And click on send/enter/submit. Look for database error message      
                                  
(Note)  Sometimes the error message does not display on screen. To find it, you may have to search the HTML source of the page. (View | Source in Microsoft Internet Explorer or View | Page Source in Netscape.) A document will open. Use that program's search tool to look for either of these phrases:
                        Microsoft OLE DB
                                     Or
                          [ODBC]







Other way to test for SQL Injection
If you are using the normal string concatenation method of writing the code then you have to just enter the following in this manner in the text box.
                                      ‘Or 1=1 --- 
This will allow u to breach into sql and if u know how to create a windows acc then follow it up with the command, u well be able to create an account.

Cross Site Scripting:
Cross site scripting (also known as XSS) occurs when a web application gathers malicious data from a user. The data is usually gathered in the form of a hyperlink which contains malicious content within it. The user will most likely click on this link from another website
Try out by dong this

See the value here which is java and this value have been assigned to “box”. So now u needs to change this URL to


And enter this new URL in browser and say Enter, which would display the current session cookie which is a serious security bug.

*** You need to learn some stuff in URL syntax or manipulation or programming to give this script there. You can’t just blindly give this anywhere in your URL.

Session ID hacking: -
A session is piece of code that is encrypted or encoded into a randomly organized string. This is used by the web server and browser for Authenticity /access to the authorized resource. To hack a session ID we need to have a sniffer. For example in domain where
We have three systems. A, B, C, system A has a web application, System B
Has a sniffer installed in it and C has a web server installed on it

a) Configure the sniffer and make it ready
b) Do an authentication from the system which has the web application installed on it
c) When it is successfully authenticated and session is alive get the information from the  
     Sinffer –system B

d) Since the captured information mostly in the machine language you need to Write a    small program to convert it to get the clear information Get the session id , append this ID with in the URL and access the  Protected resources

* NEED MORE R&D