Python Certification Training for Data Scienc ...
- 66k Enrolled Learners
- Live Class
No software can ever be completely perfect. But is that a license to create garbage? The missing ingredient is our reluctance to quantify the quality. In order to increase the quality, it is very important to ensure the effective performance of software application. Software testing is required to ensure that the application runs without any failures. In this Software Testing tutorial, I will tell you everything you need to know about testing aspects. In continuation to the previous blog on what is software testing, here I will dive deeper and cover the below-mentioned topics.
You may also go through the recording of software testing tutorial where our Software Testing Training experts have explained the concepts in depth.
This video talks about different types of testing i.e. manual testing and automation testing approaches.
Today’s world of technology is completely dominated by machines, and their behavior is controlled by the software powering it. Software testing provides a cost-effective solution to all our worries. What is Software Testing? Software Testing is a process of evaluating the functionality of a software application to find any software bugs. It checks whether the developed software met the specified requirements and identifies any defect in the software to achieve a quality product. It is basically executing a system to identify any gaps, errors, or missing requirements contrary to the actual requirements.
Now, let’s move further in the Software Testing tutorial article and gain some insights on the basics of Software Testing.
First, I will tell you What is the software development life cycle?
(SDLC) abbreviated as Software Development Life Cycle is a process used by the software industry to design, develop and test high-quality software. It aims to produce high-quality software that meets or exceeds customer expectations, reaches completion within time and cost estimates. Below diagram depicts various phases involved in SDLC.
Fig: Software Development Life Cycle – Software Testing Tutorial
Requirement gathering and analysis is the most important phase in the software development lifecycle. Business analyst collects the requirement from the customer/client as per the clients business needs and documents the requirements in the business requirement specification (document name varies depends upon the Organization).
Once the requirements are gathered and analysed, the next step is to define and document the product requirements and get them approved by the customer. This is recorded through the SRS (Software Requirement Specification) document. It consists of all the product requirements to be designed and developed during the project life cycle
This phase has two steps:
The outcome from this phase is the High-Level Document and Low-Level Document which works as an input to the next phase.
Developers of all levels (seniors, juniors, freshers) are involved in this phase. This is the phase where you start building the code for the software.
When the software is ready, it is sent to the testing department where they test it thoroughly for different defects. Testing of a software is carried out either manually or using automated testing tools and ensure that each and every component of the software works fine. Once the software is error-free, it goes to the next stage, which is Implementation.
Once the product is error free, it is delivered/deployed to the customer for their use. Deployment is done by the Deployment/Implementation engineers. As the customers start using the developed system, then the actual problems come up and needs to be solved from time to time. Detecting and solving these issues found by the customer comes in the maintenance phase.
This was all about the Software Development Life Cycle. If you wish to know about different stages involved in software testing process, then you can read this blog on Software Testing Life Cycle. Having understood this, let’s move further with this software testing tutorial and see what is the V & V model.
V model is now one of the most widely used software development processes. Introduction of the V model has actually proved the implementation of testing right from the requirement phase. It is also called as Verification and Validation model
What is Verification and Validation in Software Testing?
Verification: Verification is a static analysis technique. Here, testing is done without executing the code. Examples include – reviews, inspection, and walk through.
Validation: Validation is a process of dynamic analysis where we perform testing by executing the code. Examples include functional and non-functional testing techniques.
In the V model, the development and QA activities are done simultaneously. Here, testing starts right from the requirement phase. The verification and validation activities occur simultaneously. Let’s look at the figure below to understand V model
In a typical development process, the left-hand side shows the development activities and the right-hand side shows the testing activities. It should not be wrong if I say that in the development phase both verification and validation are performed along with the actual development activities.
As mentioned earlier, left-hand side activities are development activities. Normally we feel, what testing can we do in the development phase? But this is the essence of this model which illustrates that testing can be done in all phase of development activities as well.
The testing activities or the Validation Phase is carried out in the Right-hand side of the model.
As you have gained some insights on this, let’s move further with this software testing tutorial and see what are the different methods in which the software can be tested.
There are three methods for testing software and they are as follows:
White Box Testing: It is a method of software testing in which the internal structure/ design/ implementation of the item being tested is known to the tester.
Grey Box Testing: It is a testing technique performed with limited information about the internal functionality of the system.
I hope you understood key pointers on different methods of software testing. Now, let’s move further in this Software Testing Tutorial article and understand Software Testing Levels.
A level in software testing is a process where every unit or component of a software/system is being tested. There are various testing levels which help to check behavior and performance for software testing. These testing levels are designed to recognize missing areas and reconciliation between the development of lifecycle states. In software development life cycle model, there are characterized phases such as requirement gathering, analysis, design, coding or execution, testing, and deployment.
Basically, it starts with the Unit Testing phase and ends with Acceptance Testing.
In the next section of this software testing tutorial, I will be diving deeper into the next topic and explain what are the various documentation artifacts in software testing.
Documenting the test cases will facilitate you to estimate the testing effort you will need along with test coverage and tracking and tracing requirement. Some commonly applied documentation artifacts associated with software testing are:
Let’s discuss each of them in brief.
This brings us to end of Software Testing Documentation Artifacts. Now, let’s move further in this Software testing tutorial article and learn what is Defect Management?
What is the Defect Management process?
Defect management is a process of detecting bugs and fixing them. As bugs are a part of software industry, they occur constantly in the process of software development. The team members must write large pieces of code every day, and they usually don’t have time to think about how to avoid bugs. Hence, every software development project requires a process that helps to detect the defects and fix them.
Defect management process is conducted at the stage of product testing. Without realizing this, it would be hard to understand the nature of defect management.. Usually, the developers test their product themselves. Also, there is also a type of testing that is based on user involvement. The final users are often provided with an ability to report on the bugs they have identified. Nevertheless, this is not the best way of testing, because the users might not be capable of finding all the bugs.
Now, let’s move further in Software testing tutorial article and understand the bug detection process with the help of the bug life cycle.
Bug life cycle
A defect life cycle is a process in which a defect goes through various phases during its entire lifetime. It starts when a defect is found and ends when a defect is closed, after ensuring it’s not reproduced. A defect life cycle is related to the bug found during testing.
Bug or defect life cycle includes the steps as illustrated in the below figure:
Testing of an application manually by QA testers is known as Manual Testing. Here, all the tests need to be performed manually in every environment, using a different data set and the success/ failure rate of every transaction should be recorded.
In the above figure you can see a man who manually verifies the transactions recorded. You can easily notify the challenges that he is facing may cause fatigue, boredom, delay in work, mistakes and errors because of manual effort. This led to the emergence of Automation testing.
Now, let’s delve into the last topic of software testing tutorial article and see how Automation testing beats manual testing.
Automation testing overcomes manual testing every time. Why? Because it is superfast, requires very less investment in human resource, not prone to errors, frequent execution of tests is possible, supports regression testing and also functional testing.
Let’s take an example and understand this. Say you have a login page and you need to verify if all the login attempts are successful, then it will be really easy to write a piece of code which will validate if all the transaction/ login attempts are a success or not (automated test case execution).
All these tests can be configured in such a way that they are tested in different environments and web browsers. Not just that, also you can automate the generation of result file, by scheduling it for a particular time during the day. Then you can also automate the generation of reports based on those results and what not.
Important point here is that automation testing makes a tester’s job, a whole lot simpler. Refer the above image which shows a more relaxed environment in which the same tester is working. If you wish to know more about Automation Testing and the widely used Automation Testing tool Selenium, you can refer to this Selenium Tutorial.
This was all about how automation testing is sparkling its way in the field of software testing. It brings us to the end of the article on Software Testing Tutorial. I hope you found it informative and it has helped in adding value to your knowledge.
If you found this “Software Testing Tutorial” relevant, check out the live-online Selenium Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe.
Got a question for us? Please mention it in the comments section of Software Testing tutorial blog and we will get back to you.