FitNesse Testing vs Selenium Testing, Which is Better & Why?

Programming and development of a software product is not an end of the entire task.
It is rather the beginning of the journey that concludes with the delivery of the best quality product.
Although, innovations and improvisations continue to occur even after the delivery, there is one step that certainly forms to be an integral part of all these steps – testing.
Testing or software testing is one such step that helps ensure that the product developed and delivered in the market is as per to the set quality standards.
It can be done in a number of ways based on the product’s requirements, type and other specifications.
Two of the most commonly used ones are FitNesse testing and Selenium testing.
FitNesse Testing
FitNesse is a commonly used and accepted testing framework that allows testers, developers and customers to join together to create the test cases.

This type of testing allows testers to use their preferred software’s functionality to create test cases.
The test cases created can then be documented in the form of testable code so as to run the tests as well as get results.
Comparing the actual functionality of the software with customer requirements makes it easier to ensure the delivery of better performing software.
The best aspect of this type of testing is that it can be used easily even by a non-technical professional.
The installation of FitNesse testing framework is easy. If required, one can also write and execute FitNesse tests via the browser.
This framework is available with its own version control and can be shared among multiple team members.
An active developer and user community make it easier to use this open source tool.
One can also design automated test cases that provide ease of maintenance. The framework is also highly flexible as it allows one to use other testing tools such as GUI drivers.
Selenium Testing
Selenium is a popular open-source web automation framework, which is used to test only web-based applications. This framework can record the inputs entered by the user and automating a web browser using a script code.

Also Read: Selenium 4: New Features and Updates

Selenium can be used easily by anyone who possesses a basic knowledge and understanding of Java or any other object-oriented language. This framework is capable of functioning across different web browsers and operating systems (OS).
Selenium consists of four major parts that include:

  1. Selenium Integrated Development Environment (IDE): Implemented as a Firefox extension, Selenium IDE allows the testers to record, test and debug the tests.
  2. Selenium Remote Control (RC): Capable of creating more complex tasks using programming languages such as Java, C# and PHP, Selenium RC allows the execution of more than simple browser actions.
  3. Selenium WebDriver: A substitute of Selenium RC, Selenium WebDriver sends the commands directly to the web browser as well as retrieve results. Selenium-WebDriver can better support dynamic web pages even when the elements of a particular page change without the page itself being reloaded.
  4. Selenium Grid: This is, in fact, the best tool available to execute testing in minimum span of time. Using Selenium Grid allows the testers to execute multiple tests in parallel across different machines and browsers, hence, in turn, resulting in minimum execution time.

Making a choice between FitNesse and Selenium Testing
Using FitNesse or Selenium framework is recommended in different scenarios.
One is advised to use Selenium framework for testing when the customers have not yet got involved in the testing process or the codes written can only be understood by the developer or tester engaged in writing the these cases.
FitNesse framework should be used when the individuals involved in automation testing have limited technical knowledge.
It should also be preferred over Selenium when the main focus is on creating such test cases that are easy to comprehend.
Some other situations when FitNesse should be used are when the team is on a lookout of receiving immediate feedback from end user or the test cases are to be presented in a user-friendly manner such as table.

At times, it is also recommended to use both the technologies in a combined manner. For instance, using FitNesse to present the data in tabular form and then, connecting the same to the Selenium using another bridge technology called Selenesse.
Conclusion
At the end, it is apt to say that there is no one framework that one should rely upon. While Selenium is suitable to be used for automating the web user interface, FitNesse allows one to create such test cases that can be easily understood by the customers.
There is no technology to rely upon as each of these is significant. Choosing the best on the basis of the current situation is what allows one to make the best use of these technologies.

How to Create Test Cases For Android Application

A test case is a set of test inputs, their implementation conditions and expected results that are developed keeping a particular outcome in focus. In simple words, a test case is a set of conditions under which a tester checks in a particular system to determine if it meets the specific test requirements and functions properly.

Developing test cases is also helpful in determining the issues, requirements and design of a particular application being tested.
Test cases are categorized into two, which include formal and informal test cases. A formal test case includes a well-defined input and an expected output that is written before the execution of a test.
The aim behind writing an input beforehand is to test a precondition and that of output is to test a post condition. To test an application for all the requirements, there are at least one positive and one negative test case that is created for each requirement.
In case any of these requirements has a sub-requirement, then each sub-requirement will also have at least two test cases. Informal test cases are used when there are no formal requirements for a test.

These are written on the basis of the accepted normal operation of the programs of a similar class. To conduct these tests, imaginary situations are used to enable a tester to think about different probabilities in a complex situation.
However, these are not written in detail, these test cases can be as simple as a diagram or a description written in prose.
How to Write a typical Test Case?
Generally, there are different types of test management tools that are used by the companies to determine the elements that are to be included in a test case. This, in turn, leads to an inclusion of a different set of elements in each test. But, there are certain elements that are common in almost every test case as mentioned below:

  • Test suite ID
  • Test case ID
  • Test case summary
  • Related requirement
  • Prerequisites of conducting the test
  • Procedure to conduct the test
  • Test data or links to the same
  • Expected result
  • Actual result
  • Status of the test
  • Comments, if any
  • Creator and date of creation of the test case
  • Name of the executor
  • Date of execution
  • Test environment

Android Testing

Android is the most popular mobile operating system in the world with its number of varied versions available in the market. Like any other software, it is important to test an android apps rigorously to avoid any sort of flaws in its functioning such as, installation failure, crash during execution, scaling issues, layout problems, hang issue and issue with its landscape/portrait mode.
Levels of Writing Test Cases for Android Testing
 Writing test cases is important to ensure the optimum functioning of any application. The test cases that are written by a team are typically categorized as per different levels. This is done to ensure that there are no duplicate efforts of a team being invested in a single function.
The levels of writing test cases are:

  • Level 1: This level includes the writing of test cases that are based on the available information about the product’s specification and user documentation
  • Level 2: Considered to be a practical stage, this level includes writing of test cases on the basis of actual functional and system flow of the application
  • Level 3: At this level, some test cases are grouped together to write a test procedure. Test procedure refers to a group of small test cases and can include a maximum of 10 test cases
  • Level 4: The process is automated at this level. This helps in minimizing the human interaction with the system, which enables the QA to focus only on currently updated functionalities to test

Tips to Write Test Cases for Android Application

Writing a good test case is easy. However, it just requires an individual’s hard work, determination and clear focus. Some of the simple tips to write an effective test case for Android application include:

  • Test cases should be written in such a way that they allow a person to test only one feature at a time
  • One should not overlap or complicate test cases
  • Cover all the positive and negative probabilities of the test outcomes
  • Write in simple language with exact and accurate names of forms, fields, etc.
  • Android developers should make sure that they continue to create test cases when the application code is still in the process of writing
  • Test cases should be stores in version control along with source code
  • The focus should also be on continuous integration of the new test cases
  • Tests should be run every time the code is changed
  • Avoid using emulators and rooted devices

Conclusion
Apart from these, it is also important that the test cases are accurate and meet the exact purpose of conducting a test. These should also be free from any sort of unnecessary information and be capable of being reused.

Conducting a test on an Android application is essential as this is one crucial step that can decide the fate of the entire application. If conducted properly, one can fix all the bugs and launch a superb quality product in the market. Therefore, make sure that launch of your next product is preceded by its thorough testing so as to ensure a superb quality.

What’s the Difference Between Alpha and Beta Testing: When to use them?

Alpha and beta testing might be confusing  when it comes to explaining it, but the clear distance would be

Alpha testing is done before product release to find out issues it can have once it reaches the user.  It’s a kind of user acceptance testing where a group of people will be given access to an early version and their  reaction to the software will be recorded via video and questionnaire

Beta Testing on the other hand is testing the software after deployment. The Beta version of the software will be released in the AppStore itself and limited users who have signed up for beta testing will get access to the app.

Phases of  Alpha and Beta Testing

Phases of Alpha testing

Alpha, Beta, and Gamma tests are usually done for product-oriented companies.

  • Pre-Alpha:- During this phase the software is in a prototype form. Though the UI is complete, all other features might still be incomplete.
  • Alpha: During this phase, the Software is close to the development, and internal testing for bugs and flaws begins.
  • Beta: During this phase, the software is released to a certain user base known as beta testers to collect their reviews and feedback and then Amend the software based on that feedback.
  • Gamma: After Beta Testing the changes are made to the software and the software is tested for any bugs or flaws. No major changes are made in the functionality of the software during this phase, rather software is checked for bugs and they are corrected.
  • Release: If everything goes well, the software is released to the public.

 Alpha Testing

Alpha testing is a type of internal testing performed for Commercial off-the-shelf software (COTS) by a highly-skilled group of testers and engineers at the developing site to find bugs that were initially not found.

This dedicated team observes the behavior and notes the product down the differences.

It usually involves testing the product by imitating the real user environment by carrying out tasks that an actual user might perform.

Once the software passes the alpha test, it is considered fit to be used for the next phase, i.e. beta testing.

The term ‘alpha’ can be differentiated based on the projects it is used for.

In the case of a web application, alpha testing can be interpreted as an online application that has access via personal invitation, to gather initial feedback from the users for improvement and bugs.
Alpha Testing diagram
Pros of Alpha Testing

  1. Primarily used as usability testing which is done by internal developers who develop the app or by the testers
  2. Critical issues or fixes can be addressed by developers immediately in Alpha testing
  3. This is one of the fast ways of getting approval from the customer before proceeding with the process of delivery
  4. Any major or minor changes, which might have been missed in the requirement gathering phase, can be fixed at this stage itself

Cons of Alpha Testing

  1. Data presented by the customer usually doesn’t represent the actual data. Data created by testers/team might need a pre-approval from the customer
  2. Since alpha testing is just the usability testing, reliability and security are not performed
  3. The key users of the system deployed by the customer might not be the actual system users in reality and may be unaware of the working of it

Mobile app test cost calculator
Beta Testing

Beta-testing basically deals with imitating the end-users input to ensure release readiness.

It’s considered the last stage of testing and includes distributing the products to beta test sites and individual users.

Some other tests may also include testing a free trial of the product downloaded from the internet.

The product is then tested by users in real-time to find bugs that are left to be fixed. It is also used to determine the quality of the product.

Beta testing also includes many sub-tests if required, for some software, particularly for PC games.

These tests are known as Open beta tests and closed beta tests.

The closed beta test is followed immediately after the alpha test ends and is limited to only a few selected beta testers.

The latter which includes testing by the general public is then known as the open test.
Beta Testing diagram
Pros of beta testing

  1. This testing helps in identifying the gaps between the actual implementation and the requirement gathering. This may add/remove a few requirements
  2. Any requirement which may not have been captured initially in the contract is worked upon thereby reducing the product failure risk via customer validation
  3. The Beta test ensures the application runs in a real business environment with live data
  4. The after-sales service requirements may be identified in beta testing. Any support required for future implementation can be understood and arranged accordingly

Cons of Beta testing

  1. Finding the correct beta tester or a group of testers can sometimes be difficult
  2. Since the testing is carried out in a real-time environment, you cannot have any control over the testing mechanism

Gamma Testing
Many of us have been turning around the term ‘Gamma’ thinking about its importance.

It is the third and final testing phase just before the release of the app.

Since being the final phase of the testing, Gamma does not include any enhancements and changes to be made to the product, only the part of the code that is wicked or tends to affect the performance of the product can be changed.

It validates the performance and functionality of the product making sure the product is completely ready for use by the end-user.
Gamma testing diagram
Pros of Gamma testing

  1. You can be assured of the safety and functionality of your application just before its market release. It does not bring any chance of modification and changes unless the identified bug is of high importance.
  2. This testing is done directly without any in-house testing being repeated. Hence, saves a lot of time
  3. You can be well sure about the readiness of the application, fulfilling all the requirements stated by the customer

Cons of Gamma testing

  1. There is very limited scope for the team to update or change the code, and if there is any, it might hamper the performance of the application
  2. Due to heavy deadlines, increasing pressure, and shorter development cycles, many organizations tend to skip the Gamma testing phase

Phases of Testing

Alpha, Beta, and Gamma tests are usually done for product-oriented companies.

  • Pre-Alpha:- During this phase the software is in a prototype form. Though the UI is complete, all other features might still be incomplete.
  • Alpha: During this phase, the Software is close to the development, and internal testing for bugs and flaws begins.
  • Beta: During this phase, the software is released to a certain user base known as beta testers to collect their reviews and feedback and then Amend the software based on that feedback.
  • Gamma: After Beta Testing the changes are made to the software and the software is tested for any bugs or flaws. No major changes are made in the functionality of the software during this phase, rather the software is checked for bugs and they are corrected.
  • Release: If everything goes well, the software is released to the public.

Difference Between Alpha Testing And Gamma Testing

Alpha Beta Gamma
Why is it done End to end testing of the software, make sure the software is ready for beta testing Beta Testing is done to ensure that the software is ready to be released to the market Gamma testing test the software for some particular requirements
When is it done Alpha Testing is done at the end of the development phase Beta Testing is done after Alpha Testing Gamma testing is done after Beta Testing
Who does it In house development or testing team Beta testers who are a group of end-users conduct Beta testing Gamma testing is done by a limited number of end-users with limited features and use
Result Alpha Testing detects the bugs, flaws, missing features in the software It is done to improve the functionality, usability, and compatibility of the software It gives assurance to the software that all specified requirements are met
Next step Beta Testing Gamma Testing Final release

Care to see an infographic about the difference between alpha and beta testing?
Entry and exit criteria for Alpha, Beta, and Gamma Testing
Entry Criteria for Alpha testing:

  • Software requirements document
  • Complete list of Test Cases
  • Testing Team
  • Test Lab environment setup
  • Ready QA Build
  • Test Management tool
  • Traceability Matrix

Exit Criteria for Alpha testing:

  • Execution of all the test cases and their pass status.
  • Completed Test summary report
  • Severity issues fixed and closed
  • Sign off document

Entry Criteria for Beta Testing:

  • Alpha Testing Sign off document
  • Completed Beta version of the software
  • Test Environment for Beta testers
  • Real-time fault catching tools
  • A team of Beta testers

Exit Criteria for Beta Testing:

  • All issues should be fixed
  • Beta tester’s Feedback report
  • Beta testing summary report

Entry Criteria for Gamma Testing:

  • Beta testing summary report
  • Software is ready for public release
  • Software fulfills all its requirements for the Public Release

Exit Criteria for Gamma Testing

  • Software is ready for market release
  • No critical bug is detected in the software
  • Software fulfills all the specified requirements

Conclusion

Alpha and beta testing are very important when it comes to software engineering. So next time, don’t forget to do your homework about alpha, beta, and gamma testing for improved software quality.

Why is Testing Domain Knowledge is Important For Testers?

Quality Assurance? What’s great? Surely the argument continues since the developers run the code before the release and if anything goes wrong, the customers tell us, right? Unlike any other non-IT person, using apps which just didn’t work well or lag with performance is way too frustrating and inconvenient. Customers pay for our services thinking about the ease of use we provide with the numerous benefits it has to provide.
Have you ever thought about the factors that could be critical for the successful execution of the app you are running?
With today’s importance of QA’s in the software development life cycle (SDLC), there is also the need of testers with specialized domain knowledge.
Testing Domain Knowledge
Is Domain Knowledge Necessary For Testing
As the testing industry grows, the basic knowledge of testing isn’t sufficient to meet the growing market competition.  The industry now demands domain and subject matter experts. Domain knowledge testing is used to acquire business use cases and software testing knowledge is required to glean on the ideas of the software to its limits. Hence a testing domain knowledge along with the software testing skills is always a plus point to the industry.
The value testing domain knowledge adds to your team ensures your users are happy. Here’s why:

  • To Built the Capability: Unless you are aware of the testing domain, you can’t write and execute test cases and codes to effectively simulate the end user. Its not about using it in a particular phase as it is required throughout the software testing life cycle.
  • Understanding of the Technical Terminology: When an issue arises, your team has a clear understanding of the applications technical terminologies which are required to understand the functionality of the system. For example, if there is an error in the payment process of your food order application, your domain knowledge expert will have a clear idea about the process and the steps needed for a successful transaction.
  • Increased Productivity of Team: Domain knowledge experts are high in demand due to their ability to understand the application beyond finding bugs. They can easily suggest and implement fixes in the most crucial times. This not only saves a lot of time, but thereby increases the productivity of your team.
  • Clear Code Analysis: With a better understanding of the working of the system, the tester is much more familiar with the data structure. Hence, resulting in quick and efficient tests and bug fixes.
  • Prioritize Bug Fixes: Since the test engineer has worked in the domain earlier, he will have a clear idea of prioritizing the bug fixes. While planning the bug fixes, the engineer not only saves the cost and time, but also refines and improves the product.
  • Reduce Training Time: A person with domain knowledge can be more productive which adds value to the projector product. A good knowledge of the functional flow of the business processes and business rules will help better understanding of the product requirements.


 Conclusion
Being in an IT dominated world, the value of testing domain knowledge is incredible as it is undoubtedly the critical success factor for testers. While testing any app, it important to think about the end-user as quality assurance is directly related to business assurance. Therefore, its preferable to integrate domain and functional knowledge to your software testing life cycle for better results.

Difference Between Selenium RC and Webdriver

Testing is an integral part of any product’s development. Therefore, it is important for every organization to have a stringent quality testing strategy and framework that helps it ensure the best quality of its products. While a number of software are already present in different frameworks in the market, Selenium is one of the most preferred one.
Difference Between Selenium RC and Webdriver
Selenium is defined as a portable software-testing framework that can be used for web applications. It can be used for authoring tests without the need to learn scripting language Selenium IDE and test domain-Selenese to write tests in a number of popular programming languages, including C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. These tests can used to execute against different-or latest web browsers.
A user can use selenium on Windows, Linux, and OS X platforms as well. It is an open-source software, released under the Apache 2.0 license and is available for free for downloading.

Selenium includes a number of components and each of these have a specific function to perform development of web application test automation. Some of the common components are Selenium IDE (integrated development environment), Selenium client API, Selenium RC (Remote Control), Selenium WebDriver and Selenium Grid.
Difference Between Selenium RC and Webdriver
 While it is true that Selenium WebDriver python test automation framework is a successor of Selenium RC, there are still a number of similarities as well as differences between the two. This article can help you develop a better understanding about the same and help you avoid any sort of confusion between the two.

  1. Browsers

Both these tools can be used on different browsers such as, Firefox, IE, Chrome, Safari, Opera and others.

  1. Recording and playback

Whether a user is using RC or WebDriver, it is possible for him/her to record as well as playback the execution of a test.

  1. Executing test script

While RC requires one to start server again before executing the test script, the same is not a mandate in case of WebDriver.

  1. Type of program

RC is a separate java program that allow a user execute HTML test suites. Whereas WebDriver is a programming interface which is available in multiple languages.

  1. Platform for interaction

RC server executes the test as JavaScript commands whereas WebDriver performs on Selenium commands and a browser.

  1. API

The API (Application Programming Interface) of RC is easy and small. But these contain a lot of redundancies and a lot of confusing commands. Various browsers interpret commands differently.
On the other hand, the API of WebDriver is large and a bit complex. These are also simple to comprehend and do not contain any sort of redundancy or confusing commands.

  1. Object-oriented

Selenium RC’s are not much object-oriented whereas Selenium WebDriver’s are completely object-oriented

  1. App testing

One cannot test any sort of iPhone or Android application on Selenium RC whereas the same can be done using WebDriver.

  1. XPath attachment

Selenium RC requires one to attach complete XPath whereas the same is not mandatory in case of WebDriver.

  1. Implementation of listeners

It is not possible to implant listeners in Selenium RC whereas one can do the same with a WebDriver.

  1. Execution speed

As compared to Selenium RC, WebDriver is faster in its execution as it is directly connected with the browser. The use of JavaScript program called Selenium Core slows down the Selenium RC’s speed.

  1. Syntax

While the syntax of RC is quite complex, the same is simple and easy to understand in case of WebDriver.
The basic purpose behind introducing Selenium WebDriver test automation framework in the market was to deal with the problem areas of Selenium RC as well as increase the scope of testing.

It is recommended to make use of Selenium WebDriver test automation framework for testing purposes however, the same depends on one’s choice as well the requirements.

Key Differences between Test Plan, Test Scenario, Test Case, Test Strategy, Test Condition, Test Script

Seeming and sounding so very similar to each other, below are the most commonly used terms in the software testing parlance along with their differences. All in an attempt to clarify doubts concerning these technical terms, the details of these testing techniques come under their respective headings; pairing one term with another.
app testing
Let us now look at the pairs along with the differences between them.
Test Plan and Test Strategy
First and foremost, let us focus on defining the two closely resembling terms; Test Plan and Test Strategy.
What is a Test Plan?
A test plan is a deliverable, enlisting all the activities that make up a complete Quality Assurance project. It is a plan that is chalked out by a testing lead or test manager. The plan is a record of the various testing activities supported by their schedules. Included in this exhaustive document are all the details which answer questions centering around “what”, “when”, “how” and “who”.
The Test Plan which emerges as part of the Software Requirement Specification (SRS), clearly indicates what should be tested, when should the test be run, how should the test be conducted and who will be the tester responsible to carry out the test.
Components of a Test Plan:

  • Every test comes with a unique ID. The test plan is a super document that defines the Test Plan ID
  • Indicating the type of test environment that is required to run certain tests, a test plan clearly spells out such details along with a list of all the features that will and won’t be tested
  • The test plan clearly indicates when to start a test and the point at which a test should be abandoned. Specifying the entry and exit criteria, these details help testers to deliver their testing duties as per plan
  • The test plan clearly point to the status of the test; whether a test case has passed or failed or not tested. Along with the results, a detailed reasoning for the same is documented
  • Allowing new testers to join the existing workforce, a test plan through its concise preface and introduction gives a clear “behind the scenes” picture.

What makes up a Test Strategy?
While the word plan and strategy are used interchangeably, there is a difference between them when it concerns the process of testing. While both are tagged as methods to achieve a pre-defined goal, a test plan is different from a test strategy.
A test strategy is a rough draft of the testing approach. Identified as a subset of the Test Plan, a test strategy is a high-level and static document that highlights the method of testing that will be implemented. This is derived from the Business Requirement Specification (BRS).
Components of a Test Strategy:

  • A test strategy enlists the scope and objectives of the test, before the actual testing procedure begins
  • Addressing business issues, the test strategy throws light on the budgeting requirements of the project. Clearly citing the time required for testing, the strategy highlights workforce requirements
  • Enlists all the various documents that should be delivered by the testing team and the manner in which the testing cycles should be conducted
  • The inclusion of a defect tracking tool along with the manner in which the testing team will interact with the development team is another segment of a test strategy
  • Training requirements concerning the use of a new or complex tool are indicated along with the details of the trainer who is ordained to conduct the training sessions
  • In the event the project demands automation testing, a test strategy throws light on the scripting language, the different tools that can be employed along with the reporting and coding practices that should follow

What about Test Scenario and Test Condition?
Simply put, a test scenario is a method in which an application can be tested. On the flip side, a test condition enlists all the specifications a tester should adhere to, as part of testing an application or functionality. That means, there can be multiple test conditions in a single test scenario.
automation testing
If you are keen to understand the difference between these two terms, the following explanation clarifies all your doubts.

  • A test scenario enlists all the ways in which an application can be tested. A test condition, on the other hand is a description of the specifications that need to be followed by you as a tester of an application
  • A test scenario can be a collection of test cases or a single test case. Speaking of a test condition, it is the goal of a test case; a segment of a functionality that you wish to test
  • A test scenario comes into play when you are hard pressed for time and you are keen on testing a functionality of an application. A test condition is a part of the system that can be tested by a single test case or multiple test cases
  • Compartmentalizing the various aspects of a functionality can pave way for an effective test scenario. A favorable “bug-free” situation is the outcome of a good test condition
  • A test scenario delves on numerous possibilities. On the flip side, a test condition is all about enlisting specific details concerning testing

Test Script and Test Case
Test Script – The Detailed Story
The word “script” can be linked to a story which narrates a descriptive account of all the incidents that take place between different characters. So is the case with a test script. Tagged as a detailed description of a test, the test script includes a series of minute details of all the various actions along with data requirements that are essential to carry out the test. Typically presented in the form of a “line-by-line” description, the test script is a step-wise documentation of the manner in which the software program can be used. Details about which buttons to tap and their serial order to be able to perform a pre-defined function are enlisted.
testbytes-mobile-app-testing-banner
Coming as a leading light, a test script to a new tester is a handy tool that will help him understand the product details better while also introducing him to business domain specifics. Allowing you to follow all the instructions, it is through a test script that you will be able to meet all the specifications of the test idea to complete the testing procedure.
Test Case
A test case describes a specific functionality that should be tested. It is also important to note that the test case does not include a detailed explanation of the various steps that need to be taken or the information that will come handy to complete the test. Without enlisting any mandatory pre-requisites, a test case certainly gives you a free hand. Allowing you to apply your instincts, it is through this discretion that you will be in total control of what exactly needs to be done to complete the test.
However, this freedom can be of utmost help to the testers who are conversant with the details of the software along with the risks that come with its functionalities. If a tester lacks this basic understanding, a test case may prove to be dysfunctional.

What is Sanity Testing With Example?

Despite there being hundreds of articles, sanity testing has always remained as a misunderstood topic in software testing. To be honest, the confusing terminologies have contributed largely to the misunderstanding. Here, let us make the concept of sanity testing clear for you.
sanity testing
What is Sanity Testing?
Sanity Testing refers to tests that determine whether it is feasible and sensible to proceed with the software testing process. It is mostly done to check the health of the application that has been built, which basically is your first step.
The tests are performed when some changes are made to the code to ensure proper working of every functionality of the program. Therefore, these types of software testing normally remain undocumented and unscripted since the objective of the system is to check the new functionality and to ensure that the bug has been fixed.
How to do sanity testing?
After a successful regression testing is carried out, which includes testing that verifies the program actually works & performs the same way as it is expected to with the software, sanity testing is performed. It is performed in order to check for defects, which may have cropped up previously and are fixed accordingly and to ensure that no further issues crop up.
Many a time, the “Hello World” program is used for testing. If the program fails to compile or run, the supporting system has a configuration problem. If it works, any problem thereafter lies in the actual application.
Another method is to denote checks which are performed within the program code. This usually includes functions and arguments to see if the outputs are correct.
Example of sanity testing

Disadvantages of Sanity Testing

  • Focus is only on the commands and functions
  • Does not go to the design level of the software
  • Testing is performed only for limited features
  • No scope for future references since scripts are not there

How is sanity testing related to smoke testing?

  • It is commonly validated by smoke tests
  • If smoke tests fail it’s impossible to carry over sanity tests
  • Both of them are an exemplary option for not wasting time when it comes to testing

Reasons to perform sanity testing (Features)
Firstly, It offers great speed. Since it has a very narrow focus for functionalities to be tested, you don’t need to script or document the findings.
Secondly, It allows you to plan the next step in testing, ahead of its time. For example, if your test fails, you can dedicate your development team to fix the bugs first and keep aside the rest of the tasks.
Third, It can capture any configuration and deployment issues from the initial stages. The test will help you find such errors that can be quickly resolved and allow others to continue testing.
features of sanity testing
Fourth, at times during the constraints of release time, regression testing cannot be performed to the program build; hence, sanity testing does the work in a much simpler and faster way.
Lastly, It can also be performed as Adhoc testing. Many a time during testing, a set of test cases is run, which can affect the specific area under testing (area in which defect is fixed or area in which new functionality is added),
Final Words
Sanity testing has always been proved as one of the best testing techniques to avoid wasting time and effort. It is used as a quick method to ensure that the previous bugs in the program have been fixed and that the application works fine.

It is always defined as a subset of regression testing due to its similarities with the latter. Therefore, make sure to run sanity testing along with other testing methods to ensure the success and overall smooth functioning of the software.

How to Defend Against Ransomware Attacks [Infographic]

The global cyber attack by WannaCry ransomware had affected almost 200,000 organisations in around 150 countries.
But, is WannaCry one of its kind? Hardly. Ransomwares are malicious software designed to block access to a system and threatens to delete or publish the user’s data until a ransom amount is paid. Reveton in 2012, CryptoLocker in 2013, CryptoWall in 2014, Fusob in 2015-2016 are some WannaCry predecessors.
app testing
Ransomware attacks have undergone drastic changes over the years. The new variants seem to be more sophisticated, improved and more dangerous. Ransomware can encrypt machines, causing damage to important files and confidential customer information.  Such operations mostly succeed because they capitalize on fear, which finally forces victims to pay the cyber criminals.
Are you concerned about your business or running in the face of an attack? Our safety checklist will help you to defend your organization against the threat of ransomware.
How-to-Defend-Against-Ransomware-infographic

How to Do Security Testing For Web Applications

Just like testing the performance of an application, it is also important to perform web application security testing for real users.  Security testing is performed to detect vulnerabilities in an application while ensuring that the data is protected and that the application works as required.
Why Web Application Security Testing?
Among the different kinds of applications, web applications demand more security as they involve large amounts of important data and online transactions. The web apps must be tested to ensure that they are not vulnerable to any cyber-attacks.
In order to perform web application security testing, the tester must be well versed in the HTTP protocol. He/she should have a clear understanding of how the client (browser) and server communicate using HTTP.
The tester is also expected to know at least the basics of SQL injection and XSS. Though the number of defects regarding the security of web apps is comparatively low, the tester must take note of each defect detected, in detail.
While performing security testing, here’s the list of vulnerabilities a tester must keep a check on:

Password cracking
The most common way of a cyber attacker to gain access to a web app is by cracking the password. They may try to guess the password or use a password cracking tool to conduct the same. Therefore, the security tester must ensure that the app demands a strong password that must be encrypted.
URL manipulation
It’s easy to edit the URL in a browser. Lack of security can cause the users to be redirected and confidential data being leaked. Therefore, it is important for the security tester to check if the application passes vital data through its URL string. The web app becomes vulnerable to URL manipulation mainly when the app uses the HTTP GET method to pass information between the server and the client, which is usually passed in parameters in the query string. A security tester can just change a parameter value to see if the server accepts it.
SQL injection
Sometimes, a hacker may feed in illegal SQL statements to a text entry field so as to get access to web app content. If not security tested, the hackers may make use of this vulnerability to add, change or erase the data from the SQL-based database of the web app. While security tested, is even a single quote entered into the text field is rejected by the application, we can make sure that the app is safe. However, if the tester enters a quote and the app accepts it, but, shows a database error, the web app is vulnerable to SQL injection.
Cross-Site Scripting (XSS)
It is important to make sure that the web app is not prone to cross-site scripting because if the attacker enters harmful script into your web app, you may end up unknowingly helping them to deliver the script to the people online.  Therefore, the tester must ensure that the application rejects any malicious data and if at all it accepts the data, it must not affect the backed.
It is always best to test the app as a whole from a hacker’s point of view. Think of the different technologies used in the making of the app, different levels of access that users have to go through to log in and how the data can be obtained or stored. This will help you to recognize prospective weak points and see if they are vulnerable to common types of cyber-attack.
Also, think of the different methods and scenarios a hacker will try to crack into the app. Do not ignore any points as the hacker may get in through the least expected path.
Steps of Security Testing
Now, talking about the steps to perform security testing, it differs from different organizations. However, the basic process remains the same.

  • Understand what the business is about and its security goals.  This helps to plan the test by considering all security needs of the organization while not going overboard
  • Understand and identify the security needs of the application
  • Gather all information regarding system setup information that was used for developing the web app and network such as the OS, technology, hardware, etc.
  • Identify the possible vulnerabilities and risks and make a list
  • Prepare a threat profile based on the list
  • Prepare test plan according to the identified possible vulnerabilities and risks
  • Prepare Traceability Matrix for each risk and vulnerability
  • Manual security testing can’t always be accurate and therefore, automated testing is also required. Make a list of the tools to be used for the same
  • Make the Security tests case document ready
  • Carry out the Security Test cases execution and once the identified defects have been fixed, retest
  • Execute the Regression Test cases
  • Create a detailed report on the security testing conducted, the vulnerabilities and risks identify and the risks that still persist.


Tools used For Web Application Security Testing

  1. Apache Jmeter
  2. Browser-stack
  3. Load UI Pro
  4. Ghostlab
  5. Sauce Labs
  6. JIRA
  7. Soap UI
  8. Test IO
  9. Acunetix
  10. Ranorex Webtestit
  11. Netsparker
  12. Experitest
  13. TestComplete
  14. LambdaTest
  15. Selenium
  16. Testcraft
  17. Watin
  18. Sahi
  19. HP UFT
  20. Testpad

Conclusion
With many advancements happening in this era of digitalization, we need to give considerable focus on filling gaps of vulnerability, minimizing hacker risks, and thereby securing our digital assets, in this case, web applications.

How Does The Modern Tester Differ From The Traditional Tester?

Software testing is evolving with each passing day and so is the role of a software tester. To launch the applications quickly, companies usually put constant pressure on testers to complete the testing of applications as quickly as possible. Further, software testers are also expected to upgrade their skill sets, know about coding, and understand the different functionalities of business.

app testing

Therefore, software testers are also expected to evolve.

To understand the importance of software testing, let’s take a scenario. While purchasing a new smartphone, we usually ensure that the phone is in absolute perfect condition. We definitely do not want our smartphone to have any scratch on the screen. Further, we also expect it to have a screen, a battery, a keypad and any other important component that is required for its best functioning.

Similarly, it should fulfill requirements such as the minimum required battery backup, specified megapixel of camera, processor performance and other specifications as given in the manual. Further, the package must also contain documentation specifying that the pre-sales checks have been completed.

In other words, the specification details provided must justifiably be fulfilled or else we will feel aggrieved. If the smartphone does not meet the given specifications then chances are that the testing of the smartphone is not done properly. Software testing is a process that verifies that the software works as per the requirements specified by the client.

With the new technological developments and more companies entering into software testing, software testers are now able to keep track of different testing processes, quantify and optimize these processes at each level of testing. Most software testing companies are now following modern way of testing.

The modern tester dominates the testing arena as compared to a traditional tester. In a traditional way of testing, the software testing takes place only after the build and execution phases. Whereas, in case of a modern way of testing, software testing is conducted at each stage of software development and installation, that is, at requirement stage, at design stage, at build and execution stage, at test stage, at installation stage and at maintenance stage.

Let’s understand how a modern tester differs from a traditional tester.

  • Role: Traditional testers use a single test strategy in all situations. They follow a single method of testing and are usually kept out of code bases. Unlike developers, they are not given many opportunities to enhance the existing processes. On the other hand, a modern tester not only enjoys as a member of the testing team but also participates in all the important phases of software development and testing.

Modern testers work with the software development team, customer support team and user interface design team. The main objective is to work in coordination with all these teams from the beginning of the software development so that at each phase of development, the software can be tested and rectified thereby eliminating time and cost involved in rectifying the bugs in the later phase of development.

  • Expertise: The expertise of a traditional tester is simply limited to testing and they are not required to get into the details of how to use their testing knowledge in each process of project development. Whereas, a modern tester plays an important role at every stage of project development. A modern tester forms different and unique testing strategies as per the project, observes different processes of business and how these processes work with applications and analyzes how the application can benefit the product owner.

automation testing

The modern tester need not be a programmer but has technical knowledge.

  • Tools: A traditional tester works with the tools provided by the company and often the tools are less advanced. Such tools include HPQuality Center(QC) and spreadsheets to report testing bugs. The incentive offered to a traditional tester is also quite less. A traditional tester often finds it difficult to adapt new testing tools, approaches and processes.

​​​​On the contrary, a modern tester is always curious to learn and explore different methods, strategies and approaches of testing. He or she explores the latest testing tools and test management software. A modern tester follows test-first and continuous delivery approaches.

  • Goals: A traditional tester is often under tremendous pressure and is primarily concerned with meeting deadlines and business goals. They are usually unaware of the bigger picture and this leads to indecisiveness. A modern tester, on the other hand, is aware of the bigger picture and directly contributes in making high-quality software keeping in mind the business needs and the end user requirements. Testing software becomes a team problem rather than the sole responsibility of the modern tester.
  • Skills: A traditional tester must have the following skills:
    1. Analytical, critical and logical thinking
    2. Rational conclusion
    3. Intellectual curiosity
    4. Skill to recognize and apply basic knowledge

Apart from the above-mentioned skills, a modern tester must have some additional skills, which are as follows:

  • Reading, analyzing and writing code
  • Understanding the bigger picture
  • Identifying and addressing design issues
  • Communicating and understanding technical and business requirements
  • Recognizing different use cases for manual testing

The traditional way of testing software fails to meet the testing challenges of the ever-growing rapid development environment. Therefore, a modern tester is considered more skillful at handling testing challenges in comparison to a traditional tester.