Karan Arjun of Software Testing
Testing Fundamentals Types of Software Testing

The Karan-Arjun of Software Testing – I

Similar to Bollywood’s Karan-Arjun Shahrukh Khan and Salman Khan, in Software Testing too we have multiple important duos. Let’s have a look…

Alpha & Beta Testing

Alpha Testing: Before moving to Beta phase, Alpha testing is performed at the developer’s site by an independent team of testers (can be from client side). As it is performed at developer’s side – it is done in a testing environment and not the actual real-time production environment.

Beta Testing: You might have heard this popular term. No matter how carefully you test, there’s nothing like the real-world test of having other people use the software. A Beta release means rolling out not-so-perfect copy of the software (in real-time environment) to a larger set of Users before you actually ‘Go Live’. Beta testers (client users or set of actual end-users) try the software, use it consistently for a specific period of time and report back any issues, bugs or feedback about it.

Black-box & White-box Testing

Black-box method treats the AUT as a black-box (no knowledge about its internal structure). Result – We are not bothered about how the internal structure of the application is maintained/changed until the outside functionality is working as expected (as per requirements).

White-box: Since it’s a White-box >> we can see what’s in it, i.e. the internal structure, and use that knowledge to expand the coverage to test every possible flow at code-level. For example – Statement coverage, Branch coverage or Path coverage.

Defect Severity and PriorityDefect Severity & Priority

Severity: The extent to which a defect affects the application-under-test. Different levels of severity – Critical >> Major >> Medium >> Minor >> Cosmetic.

E.g. User is unable to access a complete section in the application. But that section is remote, i.e. used by only 0.01% of the users. It impacts the application’s functionality severely, i.e. High Severity, Low Priority.

Priority: The importance of defect. The extent to which a defect affects the business. And why will you want to prioritize defects? Obviously to define the order in which defects should be fixed. Different levels – Critical >> High >> Medium >> Low.

E.g. An incorrect logo on the company website doesn’t affect application functionality, but it surely impacts the business. I.e. High priority, Low Severity.

Formal & Informal reviews

Formal Review: Since its official – it has to be documented for effectiveness. It involves a moderator that drives the complete Inspection activity, and documenting the results based on a pre-defined checklist.

Informal Review: First of all – it is not documented. It’s like calling a peer-friend to review the code or test cases that I have written. Since it is casual, the effectiveness cannot be measured. It is often used for cost-effectiveness.

Functional & Non-functional Testing

Functional: The most-essential Test type, Functional testing focuses on testing the software against design document, use cases and requirements document – that it correctly performs all its required functions.

Non-functional: Here, you are not testing the software for any functionality. Instead the focus is on non-functional aspects like performance, load, accessibility, localization, security, reliability, recovery, etc.

Internationalization & Localization

To run a global business, the product needs to be local to that specific geography.

Internationalization: What if your software is hard-coded to support just one language? Say English. How will you target German (or any other local-language) end-users into using your software? Nah! You don’t have a chance. The way out – Internationalize your software, i.e. remove the hard-coding and make the design generic such that it can support any number of languages and other geography-based features like currency, date format, etc. Officially “Internationalization is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes.”

Globalization, Localization, Internationalization testing

Localization: Now that you have internationalized the software, you need to add region-specific details for your target geographies. Say you want to add text-translations for Portuguese, German, French but not Chinese. I.e. though it’s internationalized, but your software is localized for Portugal, Germany and France but not for China. Officially “Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.”

Manual & Automation Testing

Manual Testing: I hope this is self-explanatory. No automation tools like Selenium or HPE UFT are utilized to test the AUT. Instead the designed test cases are run manually by the testers, i.e. manually checking different functional / non-functional flows.

Automation Testing: Wouldn’t it be great if computer can run the tests on an application all by itself? Yeah! Software-testing-Software J Automation testing refers to a test method wherein tools like Selenium, UFT, JMeter, LoadRunner, etc. are utilized to script (or record-&-play) the test cases which can then be run by the computer at any time.

Positive & Negative testing

Positive Testing: Simply put – The system is validated against valid input data. The intention is to check if the system behaves as expected for a valid input (& not showing an error). Positive Testing proves that the application-under-test meets the requirements and specifications.

E.g. Testing a textbox where requirement says it should only accept ‘Integers’. Positive testing would involve entering valid data, i.e. integers (keeping in mind the boundary values).

Positive and Negative TestingNegative Testing: Just the reverse – The system is validated against invalid data. The intention is to analyse the stability of application-under-test when invalid input data is entered. The application shouldn’t crash, rather in most cases should display a proper error message.

E.g. Testing a textbox where requirement says it should only accept ‘Integers’. Negative testing would involve entering invalid data, i.e. non-integers, decimals, floats, characters, alphabet, special characters, etc.

Trivia: Directed by Rakesh Roshan, Karan-Arjun is a 1995 Indian action thriller drama film starring, Shahrukh Khan and Salman Khan. The film was the second highest grossing Hindi film of 1995 after Dilwale Dulhania Le Jayenge.

To be continued…




One thought on “The Karan-Arjun of Software Testing – I

Leave a Reply

Your email address will not be published. Required fields are marked *