Security testing<\/a> is performed to determine the security of the software, application, or website against internal and\/or external threats. This testing includes determining how secure software is against malicious programs and viruses and how secure and robust the authorization and authentication processes are.<\/span><\/p>\nIt also examines how software behaves in the face of a hacker attack and malicious programs and how software is maintained for data security following a hacker attack.<\/span><\/p>\na) Penetration Testing<\/span><\/h4>\nPenetration testing, also known as pen testing, is a type of security testing performed as an authorized cyberattack on a system to identify security flaws.<\/span><\/p>\nOutside contractors, also known as ethical hackers, conduct pen testing. That is why it is also referred to as ethical hacking. Contractors carry out various operations such as SQL injection, URL manipulation, Privilege Elevation, session expiry, and report generation for the organization.<\/span><\/p>\nPlease do not conduct the Pen testing on your laptop or computer. Always obtain written permission before conducting pen tests.<\/span><\/p>\n2. Performance Testing<\/span><\/h3>\nThe application’s stability and response time are tested using load during performance testing.<\/span><\/p>\nThe term “stability” refers to the application’s ability to withstand a load. The response time of an application refers to how quickly it is available to users. Tools are used to perform performance testing. Loader.IO, JMeter, LoadRunner, and other similar tools are available on the market.<\/span><\/p>\na) Load testing<\/span><\/h4>\nLoad testing tests an application’s stability and response time by applying a load equal to or less than the application’s designed number of users.<\/span><\/p>\nFor example, suppose your application handles 100 users at a time with a response time of 3 seconds. In that case, load testing can be done by applying a load of 100 or less. The goal is to ensure that the application responds to all users within 3 seconds.<\/span><\/p>\nb) Stress Testing<\/span><\/h4>\nStress testing involves putting an application’s stability and response time to the test by applying a load greater than the intended number of users.<\/span><\/p>\nFor example, suppose your application handles 1000 users at a time with a response time of 4 seconds. In that case, you can stress test it by applying a load of more than 1000 users. Test the application with 1100,1200, and 1300 users to see how long it takes to respond. The goal is to test an application’s stability under stress.<\/span><\/p>\nc) Scalability Testing<\/span><\/h4>\nScalability testing involves testing an application’s stability and response time by applying a load greater than the intended number of users.<\/span><\/p>\nFor example, suppose your application handles 1000 users at a time with a response time of 2 seconds. In that case, scalability testing can be performed by applying a load of more than 1000 users and gradually increasing the number of users to determine where my application is crashing.<\/span><\/p>\nAssume my application provides the following response time:<\/span><\/p>\n\n- 1000 users in -2 seconds<\/span><\/li>\n- 1400 users in -2 seconds<\/span><\/li>\n- 4000 users in 3 seconds<\/span><\/li>\n- 5000 users – 45 seconds<\/span><\/li>\n- 5150 users- crash – This is the point that needs to identify in scalability testing<\/span><\/li>\n<\/ul>\nd) Volume testing (flood testing)<\/span><\/h4>\nVolume testing involves transferring a large amount of data to a database to test an application’s stability and response time. It tests the database’s ability to handle data.<\/span><\/p>\ne) Endurance Testing (Soak Testing)<\/span><\/h4>\nEndurance testing verifies an application’s stability and response time by applying a load continuously for extended periods to ensure it works correctly.<\/span><\/p>\nFor example, car manufacturers use soak testing to ensure that users can drive cars for hours without incident.<\/span><\/p>\n3. Usability Testing<\/span><\/h3>\nUsability testing is testing an application from the user’s point of view to ensure its look, feel, and user-friendliness.<\/span><\/p>\nFor example, a stock trading mobile app is being tested for usability by a tester. Testers can determine whether the mobile app is easy to use with one hand, whether the scroll bar is vertical, whether the app’s background color is black, and whether the price and stock are displayed in red or green.<\/span><\/p>\nThe main idea behind usability testing for this type of app is that the user should be able to see the market as soon as they open the app.<\/span><\/p>\na) Exploratory testing<\/span><\/h4>\nExploratory testing is done informally by the testing team. This testing aims to explore the application and look for any defects that may exist. To test the application, testers apply their knowledge of the business domain. Test charters guide exploratory testing.<\/span><\/p>\nb) Cross browser testing<\/span><\/h4>\nCross-browser testing involves running an application on various browsers, operating systems, and mobile devices to evaluate its look, feel, and performance.<\/span><\/p>\nWhy is cross-browser testing required? The answer is that different users use different operating systems, browsers, and mobile devices. The company’s goal is to provide a good user experience regardless of the devices.<\/span><\/p>\nThe browser stack provides all browsers and mobile device versions to test the application. For learning purposes, it is recommended that you use the browser stack’s free trial for a few days.<\/span><\/p>\nc) Accessibility Testing<\/span><\/h4>\nThe goal of Accessibility Testing is to determine whether or not the software or application is accessible to people with disabilities.<\/span><\/p>\nIn this context, disability refers to deafness, color blindness, mental disability, blindness, old age, and other disabled groups. Various checks are carried out, such as font size for the visually impaired, color and contrast for color blindness, and so on.<\/span><\/p>\n4) Compatibility testing<\/span><\/h3>\nThis type of testing validates how software behaves and runs in various environments, including web servers, hardware, and network environments.<\/span><\/p>\nCompatibility testing ensures that software can run on a variety of configurations, databases, browsers, and versions. The testing team carries out compatibility testing.<\/span><\/p>\n<\/span>Other Types of Software Testing<\/span><\/span><\/h2>\n <\/p>\n <\/p>\n
 1. Ad-hoc Testing<\/span><\/h3>\nThe name implies that this testing is performed on an ad-hoc basis, i.e., without reference to the test case and any plan or documentation for this type of testing.<\/span><\/p>\nThis testing aims to find defects and break the application by executing any application flow or any random functionality.<\/span><\/p>\nAd-hoc testing is a casual method of detecting defects that anyone on the project can perform. It is difficult to identify defects without a test case. Still, it is possible that defects discovered during ad hoc testing were not identified using existing test cases.<\/span><\/p>\n2. Back-end Testing<\/span><\/h3>\nWhen an input or data is entered into the front-end application, it is saved in the database. Testing that database is known as Database Testing or Back-end Testing.<\/span><\/p>\nDatabases include SQL Server, MySQL, Oracle, and others. Database testing entails testing the structure of tables, schema, stored procedures, data structures, and so on. Back-end testing does not use a GUI; instead, testers are directly connected to the database with appropriate access and can easily verify data by running a few queries on the database.<\/span><\/p>\nDuring this back-end testing, issues such as data loss, deadlock, corruption, and so on may be discovered. These issues must be resolved before the system goes live in the production environment.<\/span><\/p>\n3. Browser Compatibility Testing<\/span><\/h3>\nThis subtype of Compatibility Testing (explained further below) is carried out by the testing team.<\/span><\/p>\nBrowser compatibility testing is done for web applications to ensure that the software can run on a variety of browsers and operating systems. This testing also determines whether a web application runs on all browser versions.<\/span><\/p>\n4. Backward Compatibility Testing<\/span><\/h3>\nIt is a type of testing that determines whether newly developed or updated software works well with older versions of the environment.<\/span><\/p>\nBackward compatibility testing determines whether a new software version is compatible with a file format created by an older version. It also works well with older versions of that software’s data tables, files, and structures. If any software is updated, it should function appropriately on top of the previous version.<\/span><\/p>\n5. Black Box Testing<\/span><\/h3>\n