Posts

Showing posts from July, 2017

What is Software Testing?

Software testing is a process of executing a program or application with the intent of finding the  software bugs . It can also be stated as the  process of  validating  and  verifying   that a software program or application or product: Meets the business and technical requirements that guided it’s design and development Works as expected Can be implemented with the same characteristic. Let’s break the definition of Software testing into the following parts: 1)   Process:   Testing is a process rather than a single activity. 2)    All Life Cycle Activities:  Testing is a process that’s take place throughout the  Software Development Life Cycle (SDLC) . The process of designing tests early in the life cycle can help to prevent defects from being introduced in the code. Sometimes it’s referred as  “verifying the test basis via the  test design ” . The  test basis  includes documents such as the requirements and design specifications. 3)    Static Testing :  

What is Software Testing Life Cycle (STLC)?

Image
Just like developers follow the  Software Development Life Cycle (SDLC)  likewise testers also follow the  Software Testing Life Cycle  which is called as  STLC . It is the sequence of activities carried out by the  testing team  from the beginning of the project till the end of the project. Software Testing Life Cycle is a testing process which is executed in a  sequence, in order to meet the quality goals. It is not a single activity but it consists of many different activities which are executed to achieve a good quality product. There are different phases in STLC which are given below: Requirement analysis Test Planning Test case development Environment Setup Test Execution Test Cycle Closure Each of the step mentioned above has some Entry Criteria (it is a minimum set of conditions that should be met before starting the software testing) as well as Exit Criteria (it is a minimum set of conditions that should be completed in order to stop the software testing) on the

What is the Software Development Life Cycle (SDLC)?

What are the Software Development Life Cycle (SDLC) phases? There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as “Software Development Process Models” (e.g.  Waterfall model ,  Incremental model ,  V-model ,  Iterative model ,  RAD model ,  Agile model ,  Spiral model ,  Prototype model  etc.). Each process model follows a particular life cycle in order to ensure success in process of software development. Software life cycle models describe phases of the software cycle and the order in which those phases are executed. Each phase produces deliverables required by the next phase in the life cycle. Requirements are translated into design. Code is produced according to the design which is called development phase. After coding and development the testing verifies the deliverable of the implementation phase against requirements. The testing team follows  Software T

What is Dynamic Testing?

What is Dynamic testing technique? This testing technique needs computer for testing. It is done during Validation process. The software is tested by executing it on computer. Example of this  Dynamic Testing Technique :  Unit testing ,  integration testing ,  system testing .

What is Static Testing?

Static testing is the testing of the software work products manually, or with a set of tools, but they are  not executed . It starts early in the Life cycle and so it is done during the verification process. It does not need computer as the testing of program is done without executing the program. For example:  reviewing, walk through, inspection, etc.

What is Beta testing?

Beta Testing  is also known as field testing. It takes place at  customer’s site . It sends the system/software to users who install it and use it under real-world working conditions. A beta test is the second phase of  software testing  in which a sampling of the intended audience tries the product out. (Beta is the second letter of the Greek alphabet.) Originally, the term  alpha testing  meant the first phase of testing in a software development process. The first phase includes  unit testing ,  component testing , and  system testing . Beta testing can be considered “pre-release testing. The goal of beta testing is to place your application in the hands of real users outside of your own engineering team to discover any flaws or issues from the user’s perspective that you would not want to have in your final, released version of the application. Example: Microsoft and many other organizations release beta versions of their products to be tested by users. Open and closed b

What is Component testing?

Image
What is Component testing? :   Component testing is a method where testing of each component in an application is done separately.  Suppose, in an application there are 5 components. Testing of each 5 components separately and efficiently is called as component testing. Component testing is also known as module and program testing. It finds the defects in the module and verifies the functioning of software. Component testing is done by the tester. Component testing may be done in isolation from rest of the system depending on the development life cycle model chosen for that particular application. In such case the missing software is replaced by  Stubs  and  Drivers  and simulate the interface between the software components in a simple manner. Let’s take an example to understand it in a better way.   Suppose there is an application consisting of three modules say, module A, module B and module C. The developer has developed the module B and now wanted to test it. But in order to

What is Alpha testing?

Alpha testing is one of the most common  software testing   strategy  used in software development. Its specially used by product development organizations. This  test takes place at the developer’s site . Developers observe the users and note problems. Alpha testing is testing of an application when development is about to complete. Minor design changes can still be made as a result of alpha testing. Alpha testing is typically performed by a group that is independent of the design team, but still within the company, e.g. in-house software test engineers, or software QA engineers. Alpha testing is final testing before the software is released to the general public. It has two phases: In the  first phase  of alpha testing, the software is tested by in-house developers. They use either debugger software, or hardware-assisted debuggers. The goal is to catch bugs quickly. In the  second phase  of alpha testing, the software is handed over to the software QA staff, for additional te

What is System Testing?

In  system testing  the behavior of whole system/product is tested as defined by the scope of the development project or product. It may include tests based on risks and/or requirement specifications, business process, use cases, or other high level descriptions of system behavior, interactions with the operating systems, and system resources. System testing is most often the final test to verify that the system to be delivered meets the specification and its purpose. System testing is carried out by specialists testers or independent testers. System testing should investigate both  functional  and  non-functional requirements  of the testing.

What is Integration Testing?

Image
Integration testing  tests integration or interfaces between components, interactions to different parts of the system such as an operating system, file system and hardware or interfaces between systems. Also after integrating two different components together we do the integration testing. As displayed in the image below when two different modules ‘Module A’ and ‘Module B’ are integrated then the integration testing is done. Integration testing is done by a specific integration tester or test team. Integration testing follows two approach known as ‘Top Down’ approach and ‘Bottom Up’ approach as shown in the image below: Below are the integration testing techniques: 1. Big Bang integration testing: In Big Bang integration testing all components or modules are integrated simultaneously, after which everything is tested as a whole. As per the below image all the modules from ‘Module 1’ to ‘Module 6’ are integrated simultaneously then the testing is carried out.

What is Non-Functional Testing?

What is Non-functional Testing (Testing of software product characteristics)? In  non-functional testing  the quality characteristics of the component or system is tested. Non-functional refers to aspects of the software that may not be related to a specific function or user action such as scalability or security. Eg. How many people can log in at once? Non-functional testing is also performed at all levels like  functional testing . Non-functional testing includes: Reliability testing Usability testing Efficiency testing Maintainability testing Portability testing Baseline testing Compliance testing Documentation testing Endurance testing Load testing Performance testing Compatibility testing Security testing Scalability testing Volume testing Stress testing Recovery testing Internationalization testing and Localization testing Reliability testing:  Reliability Testing is about exercising an application so that failures are discovered and removed before th

What is Unit testing?

Image
A  unit test  is the smallest testable part of an application like functions, classes, procedures, interfaces. Unit testing is a method by which individual units of source code are tested to determine if they are fit for use. Unit tests are basically written and executed by software developers  to make sure that code meets its design and requirements and behaves as expected. The goal of unit testing is to segregate each part of the program and test that the individual parts are working correctly. This means that for any function or procedure when a set of inputs are given then it should return the proper values. It should handle the failures gracefully during the course of execution when any invalid input is given. A unit test provides a written contract that the piece of code must assure. Hence it has several benefits. Unit testing is basically done before integration as shown in the image below. Method Used for unit testing:  White Box Testing method is used for execu

What is Acceptance Testing?

What is Acceptance testing or User Acceptance Testing (UAT)? After the system test has corrected all or most defects, the system will be delivered to the user or customer for  Acceptance Testing  or  User Acceptance Testing (UAT) . Acceptance testing is basically done by the user or customer although other stakeholders may be involved as well. The goal of acceptance testing is to establish confidence in the system. Acceptance testing is most often focused on a validation type testing. Acceptance testing may occur at more than just a single level, for example: A  Commercial Off the shelf (COTS)  software product may be acceptance tested when it is installed or integrated. Acceptance testing of the usability of the component  may be done during component testing. Acceptance testing of a new functional enhancement  may come before system testing. The  types of acceptance testing  are: The  User Acceptance test:  focuses mainly on the functionality thereby validating the f