Difference between revisions of "SMT483G2: Cerebro User Testing"

From SMT Project Experience
Jump to navigation Jump to search
Line 53: Line 53:
 
<div style="font-family: Garamond; font-size:16px">
 
<div style="font-family: Garamond; font-size:16px">
 
<p>
 
<p>
Quality Assurance (QA) is responsible for the execution of the test plan in every sprint which will be perform by regression testing on the staging server and run tests against all test cases that have been created thus far. This helps to ensure that existing functionalities in the application are not affected by the integration and allow us to deliver an optimal product to our client.
+
In general, there are four levels of testing: unit testing, integration testing, system testing, and acceptance testing. The purpose of Levels of testing is to make software testing systematic and easily identify all possible test cases at a particular level.
</p>
 
<p>
 
Our test cases can be found on our private repository [ here].
 
 
</p>
 
</p>
  
'''Testing Lifecycle''':
+
'''Testing''':
 +
 
 +
1. Unit Testing
 +
 
 +
A Unit is a smallest testable portion of system or application which can be compiled, liked, loaded, and executed. We use Django to test each module separately.
 +
 
 +
:Things to test:
 +
:- CRUD of User Information/ Stored analysis results
 +
 
 +
 
 +
2. Integration Testing
 +
 
 +
Make sure that integrated system is ready for system testing.
  
1. Development Phase
+
:Things to test:
 +
:- JSON analysis results returned correctly on the frontend pages
 +
:- User Information E.g. Name, Profile returned correctly on frontend pages
  
:Every individual developer conducts local testing as they develop, on the functionalities they are assigned. Concurrently, QA constructs test cases for all functions being developed in the currently sprint, to stress test the product.
 
  
2. Initial Testing
+
3. Systems Testing
  
:QA works alongside the respective developers to test the functions against the test cases. All bugs found are recorded into the Bug Log document. Respective developers debug the functions which they are assigned, starting from the most severe bugs. Quality Assurance verifies, through testing against test cases again, that known bugs have been resolved.
+
It involves load, performance, reliability and security testing.
  
3. Staging Server
+
:Things to test:
 +
:- Time Performance of each analysis api call
 +
:- Load testing of EC2 Instance
 +
:- Availability failover test if number of users increase
 +
:- Basic Security testing using OWASP ZAP
  
:After all known bugs are resolved, application is hosted on staging server for regression testing. QA carries out regression testing against all past test cases. Like before, all bugs found in this stage is also logged onto the Bug Log document. Respective developers debug known bugs and QA verifies.
 
  
4. Production Server
+
4. Acceptance Testng
  
:After all known bugs are resolved, software implementation is pushed to production server, where Quality Assurance conducts last round of regression testing. All bugs found are documented and worked on by respective developers like before. After so, testing documentation is finalized and uploaded to wiki.
+
Acceptance testing is a test conducted to find if the requirements of a specification or contract are met as per its delivery
  
:Should there be deviations and delay in debugging, QA will report and discuss with Project Manager with regards to development cycle, and severity of the bug. If the bug is major, Project Manager will decide to halt all oncoming development work, till another round of debugging and testing is done. Minor bugs can be covered, and debugged during the next debugging session of the following sprint.
+
:Questions to ask:
  
 +
:1. What does this visualization show? On a scale of 1-5, how clear is the visualization.
 +
:2. Test frontend screens, e.g. upon login do you see your name?
 +
:3. Task based questions. e.g. Login, Get sentiment about a certain keyword
 
<!--/Content-->
 
<!--/Content-->

Revision as of 17:30, 14 August 2020

Cerebro.png


Home.png   HOME

 

AboutUs.png   ABOUT US

 

ProjectOverview.png   PROJECT OVERVIEW

 

ProjectManagement.png   PROJECT MANAGEMENT

 

Documentation.png   DOCUMENTATION


Testing pyramid.JPG

Testing Procedure

In general, there are four levels of testing: unit testing, integration testing, system testing, and acceptance testing. The purpose of Levels of testing is to make software testing systematic and easily identify all possible test cases at a particular level.

Testing:

1. Unit Testing

A Unit is a smallest testable portion of system or application which can be compiled, liked, loaded, and executed. We use Django to test each module separately.

Things to test:
- CRUD of User Information/ Stored analysis results


2. Integration Testing

Make sure that integrated system is ready for system testing.

Things to test:
- JSON analysis results returned correctly on the frontend pages
- User Information E.g. Name, Profile returned correctly on frontend pages


3. Systems Testing

It involves load, performance, reliability and security testing.

Things to test:
- Time Performance of each analysis api call
- Load testing of EC2 Instance
- Availability failover test if number of users increase
- Basic Security testing using OWASP ZAP


4. Acceptance Testng

Acceptance testing is a test conducted to find if the requirements of a specification or contract are met as per its delivery

Questions to ask:
1. What does this visualization show? On a scale of 1-5, how clear is the visualization.
2. Test frontend screens, e.g. upon login do you see your name?
3. Task based questions. e.g. Login, Get sentiment about a certain keyword