Skip to main content

Software Testing - An Overview

Software testing is a process that is implemented to check the quality and result of the software or application being developed. 

It is done to allow the companies to understand and appreciate the risks that are involved during software implementation. 

It helps to point out the defects and errors that were made during the development phases and is used to makes sure of the customer reliability and satisfaction in the application.

Testing allows developers to deliver software that meets expectations, prevents unexpected results, and improves the long term use of the application.

It also depends the purpose of testing and the software requirements, the appropriate methodologies are applied.
  
Test techniques include the process of executing a program or application with the intent of finding bugs,errors or other defects, and verifying that the software is fit for use.

You need to verify that the completed software package functions according to the expectations defined by the requirements specifications. 

The objective to not to find every software bug that exists, but to uncover situations that could negatively impact the customer, usability and maintainability. 

Depending upon the purpose for testing and the software requirements, a combination of testing methodologies is applied.

One of the most important areas of testing is regression testing and fault tolerant testing.

Module testing verifies that individual software unit performs as expected according to the requirements using a small subset of possible input parameters.

 At the application level, it makes sure the entire application functions together according to the requirements while clearing real world parameters as well as valid but unusual parameters.

At the module level, testing verifies that individual software unit performs according to the requirements for the full range of valid input parameters.

It needs to be at its minimum, maximum and median values, as well as passing in parameters at the minimum and maximum values at the same time.

Module testing verifies that individual software unit does not perform in a detrimental or unexpected manner for illegal or those not within input parameters.

At the application level, testing verifies that the entire application functions together in a graceful manner according to the requirements when presented with unexpected values.

Integration testing is an additional step that is used when different sub-systems are being developed simultaneously by independent developers.

It verifies that the parameters passed between sub-systems are being handled correctly.

Regression testing is retesting units to insure that modifications to unit does not cause unexpected results in another unit and this is known as ripple effect testing.

It is done because many times modifications in one part of the code cause unexpected problems in a totally unrelated area of the code.

Functional testing at the unit, integration or system level is often done manually during during early development phases.

Manual tests are needed when developers are exploring implementation choices and testers are performing risk analysis and designing subsequent test tactics.

Tests at this stage have a short half-life, and the advantages of human cognitive skills and intuition are more valuable than high-maintenance automated test suites.

When it begins to emerge up until final release is time to apply manual testing also as the user interfaces frequently are in a constant state of flux right up until the final stages of development.

 Also the usability and aesthetics of the UI require human cognitive skills to evaluate for both these reasons, it is difficult to utilize automated testing methods.

Manual testing of software even by non-technical staff is possible at any stage of development as this sort of testing leads to the discovery of unexpected defects into how the software could be improved.
Exploratory testing is best done manually and is cost-efficient for tests run only a few times.

It is most effectively done by humans and can only be evaluated by human testers.

Automated testing is universally applied to build regression testing for the purpose of validating that new code changes have not resulted in new defects once the integration phase has been reached.

This is the starting point for a formal test automation process, although earlier automation at the unit test level is also possible.

Automation is very useful for any kind of highly repetitive tests, it can be divided and run in parallel to save time, automation is also the preferred method over hiring teams of manual testers.

 In order to run performance or load tests that simulate hundreds or thousands of concurrent users or transactions, automation is essential.

Although there are record and playback tools that generate test scripts via user interface interactions, these are not typically the best use of automation because of the fragility of the test scripts if the UI is undergoing even slight changes.

It is especially inappropriate if the purpose of the UI test scripts is actually to test layers below the UI. Those should be tested directly via APIs.

There is more code covered in a shorter time using automation and it can allow non-technical staff or customers to run tests.

Automation enables time savings due to parallelization of test execution and tests can simulate thousands of users and configurations easily

Automation and maintenance of test suites requires significant investment in tools and skills and cannot replace human cognitive skills required for evaluating software’s user interface.

No software organization can test their products solely via manual testing these days nor can they hope to achieve 100 percent test automation, given the limitations of automation in some areas.

It is the in-between spaces where the effectiveness and costs of both approaches must be carefully evaluated as it leads to the most sensible choices relative to the capabilities of the organization.

 Informed decisions to automate testing where possible typically lead to better test coverage and improved product quality.





Comments

Popular posts from this blog

Culture conflict in globalization

Globalization is a phenomenon that has made its presence felt in our daily lives and has changed the way we live and has led to the interaction between diverse cultures through convergence of world views, products and ideas, whereby cultural conflict can make or break a business that is trying to establish itself in a foreign country. One of the strategies that make a difference when it comes to establishing a successful presence in a foreign land is effective communication. This includes not just language and does not include only English as although English is the global language of doing business, many countries prefer to function in their local language which can be a cause for concern but this problem is minimized as most countries have a sizeable population who are bilingual and are comfortable with using English despite the fact that it is not their mother tongue. Non-verbal communication also plays an important role and one needs to be aware of the cultural nuances and cu...

Touch Screen Technology Explained

A  touch screen  is a display screen that is found on computers, laptops, smartphones and tablets that works as a visual input device with screens that are sensitive to pressure. The user interacts with the computer screen without the appearance of physical keyboard just by clicking the pictures or words that appear on the screen. Touch screen that are found in devices like smartphones and tablets are designed to keep the fingerprints from being visible. It is a bigger screen that fits in well with the multi media functions are the ones that are found on the latest mobiles.  One can watch videos, movies or TV shows that makes it easier to view on a larger surface area that covers the the complete screen of the mobile. It does away with the keypad and for  music, photographs and videos, you hardly need buttons and you only need camera buttons when you take a picture.  It makes sense for these to be designed to appear on the screen, rather than to stick...