Software Testing

In this series of Software Testing Tutorial will give you a in-depth understanding on Testing Concepts, Level of Software Testing, its Types, Methods and Techniques.
Software Testing is the process of identifying the correctness and quality of software program. The purpose is to check whether the software satisfies the specific requirements, needs and expectations of the customer. In other words, testing is executing a system or application in order to find software bugs, defects or errors.

Software Testing Tutorial – Audience

This Software Testing Tutorial is designed for software testing professionals and fresh graduates who would like to understand the concepts of testing in detail along with its types, methods, levels and techniques. This tutorial provides enough ingredients to start with the software testing process from where you can take yourself to higher levels of expertise.


Software Testing Tutorial


Ways of Testing

  • Software Testing: Process to find out bugs and issues in the system/application. Learn More
  • Manual Testing: Test Cases executed manually. Learn More
  • Automation Testing: Testing performed with the help of automation tools.

Test Artifacts

  • Test BasisIt is the information needed in order to start the test analysis and create our Test Cases. Learn More
  • Test Case Specification:  A document described detailed summary of what scenarios will be tested, how they will be tested, how often they will be tested. Learn More
  • Test Scenario:  It is also called Test Condition or Test Possibility means any functionality that can be tested. Learn More
  • Test Case What is Test Case and Strategy to Write Good Test Case a documentation which specifies input, pre-conditions, set of execution steps and expected result. Learn More

Testing Process

  • Software Testing PrinciplesSeven Important Software Testing Principle to Improve Testing Quality. Learn More
  • Testing ProcessTesting is a process rather than a single activity. It includes Planning & Controlling, Analysis & Design, Implementation & Execution, Evaluating Exit Criteria & Reporting and Test Closure Activities  Learn More
  • Software Testing Life Cycle: Software Testing Life Cycle (STLC) is defined as a sequence of activities conducted to perform Software Testing. It consists of series of activities carried out methodologically to help certify your software product. Learn More

Software Development Life Cycle 

Software Development Life Cycle is a systematic approach to develop software. It creates a structure for the developer to design, create and deliver high quality software according to the requirements of customer or end user. Learn More
  • WaterFall Model: The whole process of software development is divided into separate phases. The outcome of one phase acts as the input for the next phase sequentially. This means that any phase in the development process begins only if the previous phase is complete. Learn More
  • Iterative Model: It is a method of software development where the product is designed, implemented and tested incrementally. Little more is added each time until the product is finished. Learn More
  • Spiral Model: Spiral Model is a combination of Iterative Development Modeland Waterfall Model with very high emphasis on risk analysis. It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral. Learn More
  • V-Model: In this execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation Model. V-Model is an extension of the Waterfall Model and is based on association of a testing phase for each corresponding development stage. Learn More
  • RAD Model: The functional modules are developed simultaneously as prototypes and are integrated to make the complete product for faster product delivery. The customer gets early visibility in the software and can provide feedback on design, delivery, and other requirements. Learn More
  • Prototype Model: The basic idea here is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. Learn More

Level of Testing

  • Functional Testing: Functional testing involves testing the application against the business requirements. The goal of functional testing is to verify that the application is behaving the way it was designed to. Learn More
    • Unit Testing: Individually and independently testing of smallest testable parts of an application. Learn More
    • Integration Testing: When individual software modules are combined together and tested as a group than it is known as Integration TestingLearn More
    • Smoke Testing: Preliminary testing to reveal simple failures severe enough to (for example) reject a prospective software release or build. Learn More
    • Sanity Testing: Very brief run-through of the functionalities to assure that part of the system or methodology works roughly as expected. Learn More
    • System Testing: Testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements. Learn More
    • Regression Testing: Retesting of a software system to confirm that changes made to few parts of the codes has not any side affects on existing system functionalities. Learn More
    • Acceptance Testing: Formal testing with respect to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria. Learn More
      • Alpha & Beta Testing: Alpha Testing is conducted by a team of highly skilled testers at development site whereas Beta Testing is always conducted in Real Time environment by customers or end users at their own site. Learn More
    • End to End Testing: End to End Testing is usually executed after functional and system testing. It uses actual production like data and test environment to simulate real-time settings. End-to-End testing is also called Chain Testing. Learn More
  • Non-Functional Testing:Non-Functional testing is designed to figure out if your product will provide a good user experience.
    • Performance Testing: To evaluate the performance of components of a particular system under a particular workload. Learn More
    • Load Testing: Testing the behaviour of the system under a specific load or to get the breakeven point where system starts downgrading it’s performance. Learn More
    • Stress Testing:  It is performed to find the upper limit capacity of the system and also to determine how the system performs if the current load goes well above the expected maximum. Learn More
    • Usability Testing: Testing to determine the extent to which the software product is understood, easy to learn, easy to operate and attractive to the users under specified conditions. Learn More
    • Security Testing: This intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders. Learn More
    • Portability Testing: Software reliability is the probability that software will work properly in a specified environment and for a given amount of time.Learn More

Methods of Testing

  • Black Box Testing: Method in which the internal structure/ design/ implementation of the item being tested is NOT known to the tester. Learn More
  • White Box Testing: Method in which the internal structure/ design/ implementation of the item being tested is known to the tester. Learn More
  • Gray Box Testing: Method in which tester has knowledge of some parts of internal structure. Learn More

Techniques of Dynamic Testing

Dynamic Testing: Testing conducting while the program is executed. Learn More
  • Structured Based:
    • Statement:
    • Decision:
    • Condition:
    • Multiple Condition:
  • Experienced Based:
    • Error Guessing:
    • Exploratory Testing:
  • Specification Based: Learn More

Techniques of Static Testing

Static Testing: Testing of a software without executing the code. Learn More
  • Review – Typically used to find and eliminate errors or ambiguities in documents such as requirements, design, test cases, etc.
    • Informal Review
    • WalkThrough
    • Technical Review
    • Inspection
  • Static Analysis – The code written by developers are analysed (usually by tools) for structural defects that may lead to defects.
    • Static Analysis
    • Data Flow
    • Control Flow

Test Management

  • Bug Life Cycle: Defect life cycle is the journey of a defect cycle, which a defect goes through during its lifetime.Learn More
  • Continuous Integration CI : It is a software engineering practice in which isolated changes are immediately tested and reported on when they are added to a larger code base. Learn More
  • Configuration Management CM : A complete Configuration Management program includes provisions for the storing, tracking, and updating of all system information on a component, subsystem, and system basis. Learn More

Software Testing Tutorial |Software Testing Tutorial|Software Testing Tutorial|Software Testing Tutorial
Share:

MySQL with Python

Share:

MySQL with Python


MySQL with Python



In this tutorial you will learn how to use a widely used database management system called MySQL in Python.  You do not need any previous knowledge of MySQL to use this tutorial, but there is a lot more to MySQL than covered in this short introductory tutorial.
MySQL tutorial
Data is stored in a collection of tables with each table consisting of a set of rows and columns. This is similar to how data is stored in SQLite.   To interact with the data stored in tables we use a special-purpose programming language called SQL.
Step 1: Install MySQL
First you must install a MySQL driver, use the specific installation method below.
On Windows:
Install MySQLdb using the installer.
On Linux:
Install MySQLdb using:
sudo apt-get install python-mysqldb
yum install mysql-python
depending on your version.
On Mac:
Follow the installation instructions from stackoverflow
MySQL server has to be running before going to the next step.
Step 2: Setup the database
Make sure you have database access, from the command line type:
mysql -u USERNAME -p
MySQL will then ask your password.  Type these commands:
mysql> CREATE DATABASE pythonspot;
mysql> USE pythonspot;
We go on the create the table:
CREATE TABLE IF NOT EXISTS examples (
  id int(11) NOT NULL AUTO_INCREMENT,
  description varchar(45),
  PRIMARY KEY (id)
);
Then we can insert data into the table (these are SQL queries):
INSERT INTO examples(description) VALUES ("Hello World");
INSERT INTO examples(description) VALUES ("MySQL Example");
INSERT INTO examples(description) VALUES ("Flask Example");
You can now grab all records from the table using a SQL query:
mysql> SELECT * FROM examples;
+----+---------------+
| id | description   |
+----+---------------+
|  1 | Hello World   |
|  2 | MySQL Example |
|  3 | Flask Example |
+----+---------------+
3 rows in set (0.01 sec)
Step 3: Getting the data from Python
You can access the database directly from Python using the MySQLdb module.
#!/usr/bin/python
import MySQLdb
 
db = MySQLdb.connect(host="localhost",  # your host 
                     user="root",       # username
                     passwd="root",     # password
                     db="pythonspot")   # name of the database
 
# Create a Cursor object to execute queries.
cur = db.cursor()
 
# Select data from table using SQL query.
cur.execute("SELECT * FROM examples")
 
# print the first and second columns      
for row in cur.fetchall() :
    print row[0], " ", row[1]
Output:
1   Hello World
2   MySQL Example
3   Flask Example
Share:

Live Chat With Us

My Blog List

Search This Blog

Locations

Training

Pages

My Blog List

Blog Archive

Privacy policy