Software Testing Tutorial Software Development Life Cycle (SDLC) is a procedural process in the development of a software product.
network security The process is carried in a set of steps, which explains the whole idea about how to go through each product.
The classification of process is as follows
Planning
Analysis
Design
Software Development
Implementation
Software Testing
Deployment
Maintenance Software Testing is an important factor in a product's life cycle, as it will have greater life only when it works correctly and efficiently according to the customer's requirements.
Before we go ahead and take a detailed look at software testing, it is important that we know a few concepts that will simplify the definition of software testing.
Error: Error or mistake is a human action that produces wrong or incorrect result.
Defect (Bug, Fault): A flaw in the system or a product that can cause the component to fail or misfunction.
Failure: It is the variance between the actual and expected result.
Risk: Risk is a factor that could result in negativity or a chance of loss or damage. Thus, software testing is the process of finding defects/bugs in the system, that occur due to an error in the application, which could lead to failure of the resultant product and increase in probability of high risk. In short, software testing has different goals and objectives, which often include:
finding defects;
gaining confidence and providing information about the level of quality;
preventing defects. If you are new to the field of software testing, then the article will be of great help.
The primary function of software testing is to detect bugs in order to uncover and detect it. The scope of software testing includes execution of that code in various environment and also to examine the aspects of code - does the software do what it is supposed to do, and function according to the specifications As we move further we come across some questions such as "When to start testing" and "When to stop testing" It is recommended to start testing from the initial stages of the software development. This not only helps in rectifying tremendous errors before the last stage, but also reduces the rework of finding the bugs in the initial stages every now and then. It also saves the cost of the defect required to find it. Software testing is an ongoing process, which is potentially endless but has to be stopped somewhere, due to the lack of time and budget. It is required to achieve maximum profit with good quality product, within the limitations of time and money. The tester has to follow some procedural way through which he can judge if he covered all the points required for testing or missed out any. To help testers to carry out these day-to-day activities, a baseline has to be set, which is done in the form of checklists.
Software Testing Key Concepts
Defects and Failures: As we discussed earlier, defects are not caused only due to the coding errors, but most commonly due to the requirement gaps in the non-functional requirement, such as usability, testability, scalability, maintainability, performance and security. A failure is caused due to the deviation between an actual and an expected result. But not all defects result to failures. A defect can turn into a failure due to the change in the environment or the change in the configuration of the system requirements.
Input Combination and Preconditions: Testing all combination of inputs and initial state (preconditions), is not feasible. This means finding large number of infrequent defects is difficult.
Static and Dynamic Analysis: Static testing does not require execution of the code for finding defects, whereas in dynamic testing, software code is executed to demonstrate the results of running tests.
Verification and Validation: Software testing is done considering these two factors.
Verification: This verifies whether the product is done according to the specification
Validation: This checks whether the product meets the customer requirement
Software Quality Assurance: Software testing is an important part of the . Quality assurance is an activity, which proves the suitability of the product by taking care of the quality of a product and ensuring that the customer requirements are met. Software Testing Types:
Software test type is a group of test activities that are aimed at testing a component or system focused on a specific test objective; a non-functional requirement such as usability, testability or reliability. Various types of software testing are used with the common objective of finding defects in that particular component.
Manual Scripted Testing:
Black Box Testing
White Box Testing
Gray Box Testing The levels of software testing life cycle includes :
Unit Testing
Integration Testing
System Testing
Acceptance Testing (Alpha Testing & Beta Testing) Other types of software testing are:
Functional Testing
Performance Testing (Load Testing & Stress Testing)
Smoke Testing
Sanity Testing
Regression Testing
Recovery Testing
Usability Testing
Compatibility Testing
Configuaration Testing
Exploratory Testing Automated Testing
Manual testing is a time-consuming process. Automation testing involves automating a manual process. Test automation is a process of writing a computer program in the form of scripts to do a testing which would otherwise need to be done manually. Some of the popular automation tools are Winrunner, Quick Test Professional (QTP), LoadRunner, SilkTest, Rational Robot, etc. Automation tools category also includes maintenance tool such as TestDirector and many other.
Software testing process can produce various artifacts such as:
Test Plan: A test specification is called a test plan. A test plan is documented so that it can be used to verify and ensure that a product or system meets its design specification.
Traceability matrix: This is a table that correlates or designs documents to test documents. This verifies that the test results are correct and is also used to change tests when the source documents are changed.
Test Case: Test cases and software testing strategies are used to check the functionality of individual component that is integrated to give the resultant product. These test cases are developed with the objective of judging the application for its capabilities or features.
Test Data: When multiple sets of values or data are used to test the same functionality of a particular feature in the test case, the test values and changeable environmental components are collected in separate files and stored as test data.
Test Scripts: The test script is the combination of a test case, test procedure and test data.
Test Suite: Test suite is a collection of test cases. Software Testing Process
Software testing process is carried out in the following sequence, in order to find faults in the software system:
Create Test Plan
Design Test Case
Write Test Case
Review Test Case
Execute Test Case
Examine Test Results
Perform Post-mortem Reviews
Budget after Experience Here is a sample Test Case for you:
Software Test Case for Login Page:
Purpose: The user should be able to go to the Home page.
Pre-requisite:
S/w should be compatible with the Operating system.
Login page should appear.
User Id and Password textboxes should be available with appropriate labels.
Submit and Cancel buttons with appropriate captions should be available.
Test Data: Required list of variables and their values should be available. For example: User Id:Valid UserId, Invalid UserId, empty, Password:Valid, Invalid, empty.
1. TC1. Checking User Interface requirements. User views the page to check whether it includes UserId and Password textboxes with appropriate labels. Also expects that Submit and Cancel buttons are available with appropriate captions Screen dispalys user interface requirements according to the user.
2. TC2. Textbox for UserId should:
i)allow only alpha-numeric charactersa-z, A-Z
ii)not allow special characters like'$','#','!','~','*',...
iii)not allow numeric characters like0-9 i)User types numbers into the textbox. i)Error message is displayed for numeric data.
3. TC3. Checking functionality of the Password textbox:
i)Textbox for Password should accept six or more characters.
ii)Data should be displayed in encrypted format. i)User enters only two characters in the password textbox. i)Error message is displayed when user enters less than six characters in the password textbox.
ii)User clicks on the 'SUBMIT' button and expects to view the 'Home' page of the application. ii)System is redirected to the 'Home' page of the application as soon as he clicks on the 'SUBMIT' button.
ii)User checks whether the textboxes for UserId and Password are reset to blank by clicking on the 'CANCEL' button. ii)System clears the data available in the UserId and Password textbox when user clicks on the 'CANCEL' button.
Fault Finding Techniques in Software Testing
Finding a defect or fault in the earlier parts of the software not only saves time and money, but is also efficient in terms of security and profitability. As we move forward towards the different levels of the software, it becomes difficult and tedious to go back for finding the problems in the initial conditions of the components. The cost of finding the defect also increases. Thus it is recommended to start testing from the initial stages of the life cycle.
There are various techniques involved along with the types of software testing. There is a procedure that is to be followed for finding a bug in the application. This procedure is combined into the life cycle of the bug in the form of contents of a bug, depending upon the severity and priority of that bug. This life cycle is named as the bug life cycle, which helps the tester in answering the question -
There arises a need of measuring the software, both, when the software is under development and after the system is ready for use. Though it is difficult to measure such an abstract constraint, it is essential to do so. The elements that are not able to be measured, need to be controlled. There are some important uses of measuring the software:
Software metrics helps in avoiding pitfalls such as
cost overruns,
in identifying where the problem has raised,
clarifying goals.
It answers questions such as:
What is the estimation of each process activity,
How is the quality of the code that has been developed,
How can the under developed code be improved, etc.
It helps in judging the quality of the software, cost and effort estimation, collection of data, productivity and performance evaluation. Some of the common software metrics are:
Code Coverage
Cyclomatic complexity
Cohesion
Coupling
Function Point Analysis
Execution time
Source lines of code
Bug per lines of code In short, measurement of a software is for understanding, controlling and improvement of the software system. Software is subject to changes, with respect to changing environmental conditions, varying user requirements, as well as configuration and compatibility issues. This gives rise to the development of newer and updated versions of software. But, there should be some source of getting back to the older versions easily and working on them efficiently.
Software testing is a good career opportunity for those who are interested in the software industry. Video game testing is an offshoot of software testing. There are many industries specializing in this field. Believe it or not, you can actually get paid to test video games. You can read more on how to become a video game tester.
I hope this article has helped you gain a deeper insight into software testing.
business firewalls If you are planning to choose the software testing industry as your career ground, you might like to go through this extensive list of . Before you step out for a job in the testing field or before you take your first step towards becoming a software tester, you can acquire these software testing certifications.
Software testing certification will not only boost one's knowledge, but also prove to be beneficial for his academic performance. There are some software testing certification programs that can support the professional aspirations of software testers and quality assurance specialists.
ISTQB- International Software Testing Qualifications Board
CSTE- Certified Software Tester
CSTP- Certified Software Test Professional
CTM- Certified Test Manager
CSPM- Certified Software Project Manager
CSPE- Certified Software Process Engineer
CAST- Certified Associate in Software Testing Quality Assurance Certifications:
CSQA- Certified Software Quality Analyst
Software Quality Assurance Certification
CSQE- Certified Software Quality Engineer
CQIA- Certified Quality Improvement Associate Software testing is indeed a vast field and accurate knowledge is crucial to ensure the quality of the software developed. I hope that this article on software testing tutorial must have given you a clearer idea on various software testing types, methodologies and different software testing strategies.
Current Mood:
energetic