What is software testing?
Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.
What is a Test and Test case?
The test is a set of one or more test cases.
The test case is a set of input values, execution preconditions, expected results and execution post-conditions defined for a particular objective or test condition, such as to exercise particular program scenario or to verify compliance with a specific requirement.
Manual software testing:
The procedure followed in manual testing:
- Requirement Analysis → read the AC defined in the feature. Modify it if it needed
- Test Plan Creation → document the plan of the testing new feature
- Test Case Creation → all cases related to testing of that feature. Various combinations of scenarios
- Test Case Execution → execute all test case scenarios
- Defect Logging → when a bug is found it should be documented in the tracking tool
- Defect fix & Re-verification → developer fix the bug. Tester checks it again. Close ticket
Automated software testing:
In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
The procedure followed in automation testing:
- Acquire tools
- Introduce automation testing
- Plan Design and develop scripts
- Execute tests
- Assess test results
Popular automation tools:
Selenium is a portable software testing framework for web applications. Selenium provides a playback (formerly also recording) tool for authoring tests without the need to learn a test scripting language (Selenium IDE).
It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including C#, Groovy, Java, Perl, PHP, Python, Ruby, and Scala.
The tests can then run against most modern web browsers. Selenium deploys on Windows, Linux, and macOS platforms. It is open-source software, released under the Apache 2.0 license: web developers can download and use it without charge.
Appium is an automation tool for running scripts and testing native applications and mobile-web applications on Android or iOS using a web driver.
Appium was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets:
- You shouldn’t have to recompile your app or modify it in any way in order to automate it.
- You shouldn’t be locked into a specific language or framework to write and run your tests.
- A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
- A mobile automation framework should be open source, in spirit and practice as well as in name!