Let’s Do our React App Stress and Penetration Testing
Can our react app control the response when there is extreme heavy load?
First of all, as Developer we create our app to have the stability & reliability, and think how to know our app endurance. When you delivered a react app you have to test the front-end respond to the user event like click, filling form, submit and else. There is a way called Stress testing and Penetration testing to know about this issues, you can verified the stability & reliability of the system through this test.
Stress Testing
Then, What is Stress testing on Software Apps? In Software Engineering, Stress Testing is also known as Endurance Testing. Stress testing is a way to determine the limit, at which the system or software or hardware breaks. We need this method to know what if heavy load happened to our app.
On React app, there is a library to simulate this kind of things, The library is react-benchmark, you can read more about how to using it here.
Stress Testing process can be done in 5 major steps:
- Planning the Stress Test. Here you gather the system data, analyze the system, define the stress test goals
- Create Automation Scripts: In this phase, you create the Stress testing automation scripts, generate the test data for the stress scenarios.
- Script Execution: In this stage, you run the Stress testing automation scripts and store the stress results.
- Results Analysis: In this stage, you analyze the Stress Test results and identify bottlenecks.
- Tweaking and Optimization: In this stage, you fine-tune the system, change configurations, optimize the code with goal meet the desired benchmark.
Goals of Stress Testing
The goal of stress testing is to analyze the behavior of the system after a failure. For stress testing to be successful, a system should display an appropriate error message while it is under extreme conditions.
To conduct Stress Testing, sometimes, massive data sets may be used which may get lost during Stress Testing. Testers should not lose this security-related data while doing stress testing.
The main purpose of stress testing is to make sure that the system recovers after failure which is called as recoverability.
Our Stress Testing
Penetration Testing
Penetration testing or usually called Pen test is the practice of testing a computer system or network or web application to find any security vulnerabilities that an attacker could exploit.
There are two type of penetration testing running, automated with software applications or performed manually. Either way, you need to gather information about the target before the test, identifying possible entry points and attempting to break in — either virtually or for real — and reporting back the findings.
Purpose of penetration testing
The primary goal of this test is to identify weak spots in an security of Organization through network. A penetration test can also highlight weaknesses in a company’s security policies. For instance, although a security policy focuses on preventing and detecting an attack on an enterprise’s systems, that policy may not include a process to expel a hacker.
To accomplished this purpose there is several pen test strategies you can used:
Targeted testing is performed by both the organization’s IT team and the penetration testing team to do the test.
External testing targets a company’s externally visible servers or devices including domain name servers, email servers, web servers or firewalls.
Internal testing mimics an inside attack behind the firewall by an authorized user with standard access privileges.
Blind testing simulates the actions and procedures of a real attacker by severely limiting the information given to the person or team performing the test beforehand.
Double-blind testing takes the blind test and carries it a step further. In this type of pen test, only one or two people within the organization might be aware a test is being conducted. Double-blind tests can be useful for testing an organization’s security monitoring and incident identification as well as its response procedures.
Black box testing is basically the same as blind testing, but the tester receives no information before the test takes place.
White box testing provides the penetration testers information about the target network before they start their work.