Wednesday, 6 May 2015

iOS or Apple OS Interview Questions and Answers

Q1. Where can you test Apple iPhone apps if you don’t have the device?

A. iOS Simulator can be used to test mobile applications. Xcode tool that comes along with iOS SDK includes Xcode IDE as well as the iOS Simulator. Xcode also includes all required tools and frameworks for building iOS apps.  However, it is strongly recommended to test the app on the real device before publishing it.

Q2. Does iOS support multitasking?
A. iOS 4 and above supports multi-tasking and allows apps to remain in the background until they are launched again or until they are terminated.

Q3. Which JSON framework is supported by iOS?
A. SBJson framework is supported by iOS.  It is a JSON parser and generator for Objective-C. SBJson provides flexible APIs and additional control that makes JSON handling easier.

Q4. What are the tools required to develop iOS applications?
A. iOS development requires Intel-based Macintosh computer and iOS SDK.

Q5. Name the framework that is used to construct application’s user interface for iOS.
A. The UIKit framework is used to develop application’s user interface for iOS. UIKit framework provides event handling, drawing model, windows, views, and controls specifically designed for a touch screen interface.

Q6. Name the application thread from where UIKit classes should be used?
A. UIKit classes should be used only from an application’s main thread.  Note: The derived classes of UIResponder and the classes which manipulate application’s user interface should be used from application’s main thread.

Q7. Which API is used to write test scripts that help in exercising the application's user interface elements?
A. UI Automation API is used to automate test procedures. Tests scripts are written in JavaScript to the UI Automation API.  This in turn simulates user interaction with the application and returns log information to the host computer.


App States and Multitasking

Q8. Why an app on iOS device behaves differently when running in foreground than in background?
A. An application behaves differently when running in foreground than in background because of the limitation of resources on iOS devices.

Q9. How can an operating system improve battery life while running an app?
A. An app is notified whenever the operating system moves the apps between foreground and background.  The operating system improves battery life while it bounds what your app can do in the background. This also improves the user experience with foreground app.

Q10. Which framework delivers event to custom object when app is in foreground?
A. The UIKit infrastructure takes care of delivering events to custom objects. As an app developer, you have to override methods in the appropriate objects to process those events.


App States

Q11. When an app is said to be in not running state?
A. An app is said to be in 'not running' state when:
- it is not launched.
- it gets terminated by the system during running.

Q12. Assume that your app is running in the foreground but is currently not receiving events. In which sate it would be in?
A. An app will be in InActive state if it is running in the foreground but is currently not receiving events. An app stays in InActive state only briefly as it transitions to a different state.

Q13. Give example scenarios when an application goes into InActive state?
A. An app can get into InActive state when the user locks the screen or the system prompts the user to respond to some event e.g. SMS message, incoming call etc.

Q14. When an app is said to be in active state?
A. An app is said to be in active state when it is running in foreground and is receiving events.

Q15. Name the app sate which it reaches briefly on its way to being suspended.
A. An app enters background state briefly on its way to being suspended.

Q16. Assume that an app is not in foreground but is still executing code. In which state will it be in?
A. Background state.

Q17. An app is loaded into memory but is not executing any code. In which state will it be in?
A. An app is said to be in suspended state when it is still in memory but is not executing any code.

Q18. Assume that system is running low on memory. What can system do for suspended apps?
A. In case system is running low on memory, the system may purge suspended apps without notice.

Q19. How can you respond to state transitions on your app?
A. On state transitions can be responded to state changes in an appropriate way by calling corresponding methods on app's delegate object.

For example:
applicationDidBecomeActive method can be used to prepare to run as the foreground app.
applicationDidEnterBackground method can be used to execute some code when app is running in the background and may be suspended at any time.
applicationWillEnterForeground method can be used to execute some code when your app is moving out of the background
applicationWillTerminate method is called when your app is being terminated.

Q20. List down app's state transitions when it gets launched.
A. Before the launch of an app, it is said to be in not running state.
When an app is launched, it moves to the active or background state, after transitioning briefly through the inactive state.

Q21. Who calls the main function of you app during the app launch cycle?
A. During app launching, the system creates a main thread for the app and calls the app’s main function on that main thread. The Xcode project's default main function hands over control to the UIKit framework, which takes care of initializing the app before it is run.


Core App Objects

Q22. What is the use of controller object UIApplication?
A. Controller object UIApplication is used without subclassing to manage the application event loop.
It coordinates other high-level app behaviors.
It works along with the app delegate object which contains app-level logic.

Q23. Which object is create by UIApplicationMain function at app launch time?
A. The app delegate object is created by UIApplicationMain function at app launch time. The app delegate object's main job is to handle state transitions within the app.

Q24. How is the app delegate is declared by Xcode project templates?
A. App delegate is declared as a subclass of UIResponder by Xcode project templates.

Q25. What happens if IApplication object does not handle an event?
A. In such case the event will be dispatched to your app delegate for processing.

Q26. Which app specific objects store the app's content?
A. Data model objects are app specific objects and store app’s content. Apps can also use document objects to manage some or all of their data model objects.

Q27. Are document objects required for an application? What does they offer?
A. Document objects are not required but are very useful in grouping data that belongs in a single file or file package.

Q28. Which object manage the presentation of app's content on the screen?
A. View controller objects takes care of the presentation of app's content on the screen. A view controller is used to manage a single view along with the collection of subviews. It makes its views visible by installing them in the app’s window.

Q29. Which is the super class of all view controller objects?
A. UIViewController class. The functionality for loading views, presenting them, rotating them in response to device rotations, and several other standard system behaviors are provided by UIViewController class.

Q30. What is the purpose of UIWindow object?
A. The presentation of one or more views on a screen is coordinated by UIWindow object.

Q31. How do you change the content of your app in order to change the views displayed in the corresponding window?
A. To change the content of your app, you use a view controller to change the views displayed in the corresponding window. Remember, window itself is never replaced.

Q32. Define view object.
A. Views along with controls are used to provide visual representation of the app content. View is an object that draws content in a designated rectangular area and it responds to events within that area.

Q33. You wish to define your custom view. Which class will be subclassed?
A. Custom views can be defined by subclassing UIView.

Q34. Apart from incorporating views and controls, what else an app can incorporate?
A. Apart from incorporating views and controls, an app can also incorporate Core Animation layers into its view and control hierarchies.

Q35. What are layer objects and what do they represent?
A. Layer objects are data objects which represent visual content. Layer objects are used by views to render their content. Custom layer objects can also be added to the interface to implement complex animations and other types of sophisticated visual effects.

THE IMPACT OF ANDROID and IOS DIFFERENCES TO TESTING


ANDROID

The broad expansion of Android and the model under which that expansion happens affects testers. Since there is no strict application design and implementation guidelines, issues can happen more frequently. The fact that each manufacturer can customize the look and feel of the Android firmware produces a large segmentation in the area of GUI design. That means the Usability and the User Experience issues probably occur more often than compared to iOS. Also, the fact that the Kernel of the Android is open source has an impact to testers: a manufacturer can write his own core library in order to provide a customized service to his clients. That means the Functional and Security issues are easier to happen. Don’t forget that, as previously mentioned, each developer can upload his/her app in Google Play without any acceptance process.

On the other hand, because of the great expansion of Android and as consequence of its open nature, a tester has many tools in his/her hands in order to test an Android app. There are application testing frameworks, testing tools and testing commands already included in the Android SDK. You can find a review of some of them in my University course. A tester can use Eclipse with ADT plugin or the new Android Studio, which are complete IDEs, not only for developing but also for testing.

The installation process of a new app in order to be tested in Android is very easy. One can use Google Play to search for and find the app (if the app being tested is already there). After that, a click on “Install” button installs the app on the device. The apps in Android come in .apk file format (which is mainly a zipped folder of all the necessary files of the app) and a tester can use that file in order to install the app in a device without the need to use Google Play. In that case a download (through an email attachment, for example) of the .apk file in the device where the testing will happen and the opening of that file is all what is needed for the installation to start.

IOS

As mentioned before, for an app to be accepted in the App Store, a validation process is necessary. During that process a basic reliability testing and other analysis happens. Apple employs mostly static analysis for their app review process, which means that dynamic code reassembly techniques could defeat the review process. For testers, that means less Functional and Security issues to be expected. Also, since Apple has strict design guidelines, all the developers follow the same design rules and, as a consequence, less User Experience issues are expected as compared to Android.

Like Android, iOS offers a range of testing tools, frameworks and commands. You can find more on that topic in the Introduction to iOS Testing course. The main IDE that a developer of iOS apps uses is the xcode which has included in it debug and testing tools. It is worth mentioning that generating crash logs is a system functionality of iOS that works fine and it’s very easy to use. On the other hand, the installation process of a new app under testing is not so easy, compared to that of Android. A tester must usually follow special instructions in order to achieve that installation and that process is sometimes error-prone.

Tuesday, 5 May 2015

Difference between Android and iOS in Brief


Android   &   iOS

                     

DeveloperGoogle (Android)Apple Inc. (iOS)
Initial releaseSeptember 23, 2008July 29, 2007
Source modelOpen sourceClosed, with open source components.
CustomizabilityA lot. Can change almost anything.Limited unless jailbroken
Easy media transferdepends on modelwith desktop application
Available onMany phones and tablets, including Kindle Fire(modified android), LG, HTC, Samsung, Sony, Motorola, Nexus, and others. Also, Google GlassesiPod Touch, iPhone, iPad, Apple TV (2nd and 3rd generation)
MessagingGoogle HangoutsiMessage
App storeGoogle Play – 1,000,000+ apps. Other app stores like Amazon and Getjar also distribute Android apps. (unconfirmed ".APKs")Apple app store – 1,000,000+ apps
Video chatGoogle HangoutsFacetime
OS familyLinuxOS X, UNIX
Programmed inC, C++JavaC, C++, Objective-C
Dependent on a PC or a MacNoNo
Open sourceKernel, UI, and some standard appsThe iOS kernel is not open source but is based on the open-source Darwin OS.
WidgetsYesNo, except in NotificationCenter
Call features supportedAuto-respondAuto-respond, call-back reminder, do not disturb mode
Internet browsingGoogle Chrome (or Android Browser on older versions; other browsers are available)Mobile Safari (Other browsers are available)
InterfaceTouch screen, SmartwatchTouch screen
Voice commandsGoogle Now (on newer versions)Siri
MapsGoogle MapsApple Maps
Market share81.5% of smartphones globally (2014), 3.7% of tablets in North America (as of Jan'13) and 44.4% of tablets in Japan (as of Jan'13). In the United States in Q1 2013 - 52.3% phones, 47.7% tablets.14.8% of smartphones globally (2014), 22.8% of tablets globally (2014), 87% of tablets in North America (as of Jan'13) and 40.1% of tablets in Japan (as of Jan'13)
Available language(s)32 Languages34 Languages
Latest stable releaseAndroid 5.0.1 (lollipop), (November 2014)8.1 (March 10, 2015)
Device manufacturerGoogle, LG, Samsung, HTC, Sony, ASUS, Motorola, and many moreApple Inc
Upcoming releases/Release datesUnknownUnknown
Working stateCurrentCurrent
Websiteandroid.comapple.com

Friday, 1 May 2015

SQL Sub-Queries What are Sub queries?

SQL Sub queries are the queries which are embedded inside another query. The embedded queries are called as INNER query & container query is called as OUTER query.
The subqueries are the queries which are executed inside of another query. The result SQL query is totally depends on the result of sub query. First the INNER query gets executed & the result of INNER query is passed as input to the outer query.


Three types of sub queries are supported in SQL are – Scalar, Row and Table sub queries.
  • The Scalar subquery result returns only a single row and single column.
  • The Row subquery result returns only a single row with single/multiple column(s).
  • The Table subquery result returns can be return single/multiple row(s) or column(s).
In the Sub query you may use the different operators to filter out the result like [=, >, =, <=, !=, ]. These Sub queries can be used conjunction with INSERT, UPDATE and DELETE queries.
Suppose you want to find the name of the department in which employee_id = 100 is currently working on.

In above Row Sub-Queries, the result of INNER query can is returned only one value.
Let’s take a look at the other Sub query type who returns can be return single/multiple row(s) or column(s) i.e. Table sub-query:
Suppose you want get list of employee’s Name and Phone number who’s working in other than Quality department & date of birth is not registered in Employee tracking system.


Sub-Queries Vs Joins!

The Subqueries are simpler to write & easy to understand. As a result, Sub queries are more frequently used in the beginner’s level. The Joins are complicated but more powerful than Sub queries.
Majorly sub queries run independently and result of the sub query used in the outer query (other than correlated sub query) and in case of JOIN’s, a query only give the result when the joining condition gets satisfied.
In JOIN both the tables should have a common column name but in sub query without having a column name we can execute the query.
If we think in terms of the performance prospective, then the Joins are faster than the Sub queries. Using Joins, it approximately boosts the performance of query by 500 times as compare to Sub queries. So Joins are more popular than the Sub queries & most of the SQL experts are preferred to use Joins instead of SubQueries.

Conclusion on SQL Sub-Queries:

  • Sub queries contain two parts, one is INNER query & other is OUTER query. The result of INNER query is passed to OUTER query as input.
  • Sub queries are simple & easy to understand. It can be easily broken down into logical steps, so it offers more flexibility.
  • The Sub queries are used in conjunction with SELECT, INSERT, UPDATE & DELETE commands.
  • In this article we have learnt about three types of SQL supb queries: scalar, row and table sub queries.
  • In SQL server, The Nested query can be used up to 32 levels.
  • As compare with Joins, the performance of Sub query is low. Joins are 500 times faster than Sub queries.
For performance issues, when it comes to getting data from multiple tables, it is strongly recommended to use JOINs instead of sub queries. Sub queries should only be used with good reason. So in the next article I am covering basics of Joins & what all types of Joins offered in the SQL server.

Difference between TRUNCATE and DELETE statement in SQL Server

What is “Difference between TRUNCATE and DELETE statement in SQL Server” is most common question asked in the interview. I have observed that the answer of this question is varies based on experience and understanding of the SQL server. So in this article I am explaining the significant difference between Delete vs Truncate.



TRUNCATE vs DELETE
TRUNCATEDELETE
TRUNCATE is a DDL commandDELETE is a DML command
TRUNCATE is executed using a table lock and whole table is locked for remove all records.DELETE is executed using a row lock, each row in the table is locked for deletion.
We cannot use Where clause with TRUNCATE.We can use where clause with DELETE to filter & delete specific records.
TRUNCATE removes all rows from a table.The DELETE command is used to remove rows from a table based on WHERE condition.
Minimal logging in transaction log, so it is performance wise faster.It maintain the log, so it slower than TRUNCATE.
TRUNCATE TABLE removes the data by deallocating the data pages used to store the table data and records only the page deallocations in the transaction log.The DELETE statement removes rows one at a time and records an entry in the transaction log for each deleted row
Identify column is reset to its seed value if table contains any identity column.Identity of column keep DELETE retain the identity
To use Truncate on a table you need at least ALTER permission on the table.To use Delete you need DELETE permission on the table.
Truncate uses the less transaction space than Delete statement.Delete uses the more transaction space than Truncate statement.
Truncate cannot be used with indexed viewsDelete can be used with indexed views
Drop all object’s statistics and marks like High Water Mark free extents and leave the object really empty with the first extent. zero pages are left in the tableKeeps object’s statistics and all allocated space. After a DELETE statement is executed, the table can still contain empty pages.
TRUNCATE TABLE can’t activate a trigger because the operation does not log individual row deletions. When we run truncate command to remove all rows of table then it actually doesn’t removes any row, rather it deallocates the data pages. In case of Truncate triggers will not be fired because no modification takes place, we have just deallocated the data pages not deleted any row from table.Delete activates a trigger because the operation are logged individually. When we execute Delete command, DELETE trigger will be initiated if present. Delete is a DML command and it deletes the data on row-by-row basis from a table. Which means delete is modifying the data by deleting it from the table. Triggers are fired when a DML statement executed on a table, so trigger will be fired in case of Delete command execution.

What is database and why do we need them?

Welcome to next post related to Database. Everyone know about the database, it is used to store the data. However the data can be stored in the excel file or in flat files.
Have you think about “What is actually meaning of database and why do we need them?
If you want to understand database then don’t start with the features of database first, rather you should go with other way round. Database are used to solve few problems. Now question in your mind is that what kind of problems? Consider a scenario where you have some data like a data related to customer, employee, banking etc. and you have to save the data in any type of formats like text, images, numbers, dates, amounts, documents, audio or video etc. You can store the data in text or excel spreadsheet. You can also use the folder structure to organize your file. So why do you need the database? Many of the small businesses continue to using Text files or Excel spreadsheets since long time. This setup might works good for few small businesses, because just having data to store does not require database. So only having data is not a problem here.

There are some unique problems if not using the database:

  1. Size of Data: The small amount of data storing into spreadsheet is fine, however it might turns into a large amount of data then Spreadsheet solution will not work. Even if the size of data records goes into millions then storing data in multiple spreadsheet which will create a problem of speed. It will take you long time to find a record from the multiple spreadsheet files.
  2. Ease of Updating Data: Multiple peoples cannot edit the same file on same time. Other peoples must wait until files are available to update which results into wastage of time.
  3. Accuracy: When user doing data entry in files then it might be possible to incorrect data due to no validation present like you can enter wrong spelling, wrong dates, and wrong amount. So the Data accuracy is hard to maintain and accuracy is in question.
  4. Security: You cannot secure the data in the text files and spreadsheet. Anyone can access the file and read any data present in the file. So storing data will not work with banking, healthcare application, payroll department where privacy is difficult to maintain.
  5. Redundancy: The duplication of data can be possible using text files or spreadsheet. Chances of adding multiple copies of data cannot be limited here. This will leads to accuracy issues. Maintaining and updating multiple copies is not an easy task.
  6. Incomplete Data: Some of the data is not considered not important, so such data not entered in the file as no validation in place which leads the data integrity is in question.
To prevent above problem associated with storing data in the text file or spreadsheet the database is required.
 

Advantages of a relational database over flat file:

  1. It will help to avoid data duplication and reduced data redundancy.
  2. Greater data integrity and independence from applications programs.
  3. You can control the security like you can setup the permission on different levels where only specified users can add, update or delete the data.
  4. The cost of data entry, storage, and retrieval is drastically reduced.
  5. Data can be validated based on the business rules.
  6. If the data in database is growing faster than modification of data easy.
  7. Facilitated development of new applications program.
  8. Logging and tracking of user actions can be easily done using database.
  9. Reduced updating errors and increased consistency
  10. Data format of data can be easily change.
  11. Data can be access easily using query language and multiple peoples can edit the data simultaneously.
  12. Due to backup and recovery options database can survive in crashes without corrupting the data.
- See more at: http://www.softwaretestingclass.com/what-is-database-and-why-do-we-need-them/#sthash.qjS7BpHm.dpuf

A Better Sprint Burndown Chart For More Accurate Sprint Planning

In Scrum, A Sprint Burndown Chart demonstrates the real picture of the Sprint progress and what amount of estimated work to be done in a sprint. The Sprint Daily Stand-up and Burndown chart help out Scrum teams to make it a Self-Organization team.
The Burndown chart is one of the greatest visual indicators I have seen which shows the actual progress of the project in the Sprint.  It actually broadcast the Sprint progress to all stakeholders from the beginning of the Sprint. The team members will come to know about how much work is completed till date & can get exact idea about can team able to work done on time or not.
Before starting Sprint along with product owner all team members meet together in Sprint planning meeting. In the Product backlog all list of tasks identified & prioritized by the Product owner in terms of the user stories, during sprint planning meeting the team picks the user stories and break down in to Tasks & sub-tasks with the help of relative sizing/different estimation techniques.
The estimate may be accurate or swag estimates, the team start working with these estimate. Teams need to update the tasks with time remaining in hours to get this Sprint burndown chart scrum. Scrum master analyze the remaining time & Sprint burndown chart updated before Daily Stand-up meeting.


Address the bottlenecks if any to complete the task. Analyze the impediments & get resolve the problems facing the team Proper use of experience team members who are already worked with similar task to stories. Exchange the tasks or reallocate the task if needed If any feature is dependent on other module & it won’t be completed in the current Sprint then de-scope by talking to Product Owner. (It should be last step, because team should explore all possibilities to adhere to sprint goals and commitment)

Compatibility Testing description:

[4] Compatibility Testing:

In Website Testing Checklist, the Compatibility Testing make sure that the web pages are properly rendering different browsers like IE8, IE9, IE10, IE11, Chrome, Firefox, Safari, Opera etc. Also verify if it is working properly on different Operating systems like Windows XP, Windows 7, Vista, Linux, Mac etc on different hardware configurations.
Here is the most typical compatibility tests should be considered while testing your application:
» Check on different browsers and its versions.
» Check on different Operating systems and its versions.
» Check on different hardware configurations
» Check on different network environments.
» Check on different screen resolutions

[5] Web Security Testing:


Security testing is one of the most important types of software testing that make sure that the vulnerabilities or weakness of the software application. The main objective of security testing is to find the vulnerabilities of system & determine that its data and resources are protected from possible intruder. Security testing allows us to identify the confidential data stays confidential or not. This type of testing is also known as Penetration Testing.

Some of the major aspects of web security testing are:
» Penetration Testing
» Password cracking
» Vulnerability
» URL manipulation
» SQL injection
» Cross Site Scripting (XSS)

Checklist for Website Testing 2

[2] Performance Testing:
the performance of system to major the measure, validate or verify quality attributes of the system like responsiveness, Speed, Scalability, Stability under variety of load conditions. The main aim of Performance testing is not to find the defects in the application but to get rid of bottlenecks and find out the amount of load/stress the site is able to sustain. Performance testing is used to understand the scalability of application under test, response time means time required to send request from client machine to time required to reply by the server under different varity of load conditions which mimic the real world use.
Performance testing can be applied to understand the website’s scalability, any loopholes in the load balancing and to test the response time between a request (from the client) and the reply (from the server) and the amount of load/stress the site is able to sustain.

It is a technique implemented in user-centered interaction design to evaluate a product or service by testing it with representative users. On the Web page the usability is a most important and required condition for survival. If the website is difficult to use then peoples will not stay on the page. Also if the content or details of the page are difficult to read or understand then also peoples will not stay on the page. So Usability testing plays an important role which assesses how easy user interfaces is to use.
The Usability testing is categories in different categories – Accessibility, Identity, Navigation and Content. You should keep in mid few points while testing of web application for Usability testing:

A) Accessibility: (Add Bullets)

  • Site Load-time should be reasonable.
  • Site font size and spacing between lines should be easy to read.
  • Carefully use of Flash & Add-ons in website.
  • Proper ALT Tags should be used for all images present in website.
  • If any internal link is broken then website should be presented with 404 error page or Not Found page.

B) Identity:

  • The placement of website logo should be at prominently place like right top side of the page.
  • Proper tagline should be used which clearly states the purpose of the website.
  • Company and Contact Information must be clearly mentioned which helps to identify the company information.

C) Navigation:

  • Main Navigation should be easy to find, read and use. If more than navigations are used then make sure that user should clearly understand why multiple navigations are used.
  • Clear & Concise navigation labels should be used in website.
  • Reasonable use of links and button in website so user will not confuse while navigating the pages.
  • As a common practice the Company Logo should be linked to website Home page.
  • The Site Search facility should be present on the website and make sure that the Site Search button simple and easy to access like top right of the page.

 D) Content:

  • Headings should be clear and descriptive and SEO use of proper heading tags like H1, H2 etc.
  • Make sure that the critical content should be displayed on the first screen in average screen resolution i.e. 1024×768.
  • Use of consistent font styles and colors across the website help user to understand that they’re still on your site.
  • Use of user friendly and meaningful keywords for URLs will help both user and search engines to understand navigation.
  • Meaningful and self explanatory titles (in the <TITLE> tag) should be used for pages. These titles are used by search engines to display in the Search result by search engines. If the improper titles are used then user will skips the your website pages link and proceed further.

Checklist for Website Testing

A) Validation testing:


» In functionality testing the different fields used in the website should be validated like Textboxes, dropdowns, radio options, check boxes, Combo box inputs, links etc.
» Now a day’s most of the website preferred to use CSS means Cascading Style Sheet. In the market many CSS validator tools are available, one of the good tool is W3C CSS validator which will help you to validate the CSS used in your site user test.


B) Links/URL Testing:

This testing is very much interesting and can be helpful for SEO of you r page. Following types of testing should be carried out for Link or URL testing:
  • Internal links: The link which are pointing to the pages of same websites. This testing make sure that the internal links are properly linked to expected pages of your websites link like Home page, Contact Us, About Us etc.
  • External links: The link which are pointing to the pages of external websites. This testing makes sure that the internal links are properly linked to expected pages of external websites.
  • Email links: Such link need to make sure that the if user clicks on the email link then default email client should open with To address should be pre-filled.
  • Broken links: Broken links are also called as Dead links. Such links are not linked to any of the pages either internal or external pages of the website. Such link generated with the spelling mistakes in the link URL or linked page is removed or no more exists. To check broken link you can use online tools to validate the broken links in the website.

C) Web Forms Testing:

In Website Testing Checklist the web forms are the most commonly used in the websites, so it is one of the most important part of the website testing. Consider a scenario where user fills an enquiry form and click on Submit button, now what next or they just fill in the form and do nothing, the details do not get captured correctly and so are lost. While doing forms functional testing make sure that they should be consistent and should contain the required input and output controls. The data should be captured properly.

D) Database Testing:

Now days with the new technologies like android and smart phones computer applications are more complex.
If the front end is more complicated then the back ends are also convoluted. As a result, introduce more complex database schema to support such intricate computer applications. So it’s more important to validate the databases to make sure the quality and website able to handle the data processing effectively.

E) Cookies Testing:

A Cookie is information stored in text file on user’s hard drive (client side) by web server. This information is used later by web browser while accessing the website. Ideally the cookie is used to store the personalized user information or data in encrypted or secured manner. This is small size files which act as unique identifiers and allow websites to remember a particular user for a given time. These files are not harmful for users. Sometimes if the user’s personal information is stored in the cookie and if hackers stolen the cookie then hacker can get the confidential information which leads to security issues. That’s why the testing of Cookie is most important. There are two types of cookies Persistent Cookie and Non-Persistent Cookie.

F) Testing of Error Messages:

In the well developed website the error messages are very much helpful to guide users for success and erroneous conditions. While navigating through application if poorly designed error messages will easily misguide the end users. Many of the websites are used different interesting 

G) Required field and optional field validation:

The proper handling of required and optional fields should be efficiently handled. Ideally the application should not be submitted unless and until all required fields are filled properly. The required error message should be displayed when user proceed with not filling the mandatory fields. It should not restrict you for proceeding further if the optional fields are not filled.

H) Client-side Testing:This type of testing is subset of Security testing. In this testing need to check if the sensitive data is not stored in the temporary internet files or stored in encrypted format like passwords, credit card information, bank number etc.

Performance Testing in software testing

Performance Testing

Performance testing is the testing technique used to determine the performance components of a particular system/ application in a specific situation. It determines how much resources are used and how much product/system is scalable, reliable, responsible, and speedy during test. This testing does not give pass or fail result, used to set the benchmark & standard of the application/system against Concurrency/Throughput, Server response time, Latency, Render response time etc. This testing is the subset of performance engineering and it is used to determine the performance issues come in the design and architecture of software product. It is very extensive, contains: Load Testing, Stress Testing, capacity testing, volume testing, endurance testing, spike testing, scalability testing and reliability testing etc.
For example; to know the web application is working fine or not, we need to test two things,
  • Load in terms of concurrent users or HTTP connections
  • Suitable response time
Constantly, increase the load on the system while looking for bottlenecks. For a web application, these bottlenecks can occur at multiple levels, and to locate them you can use a various tools,
  • At the application level: Profilers can be used by developer to spot inefficiencies in their code.
  • At the database level: Database-specific profilers and query optimizers can be used by developers and DBAs.
  • At the operating system level: Use utilities “top, vmstat, iostat” on Unix-type systems and “PerfMon” on Windows to monitor hardware resources such as CPU, memory, swap, disk I/O.
  • At the network level: Packet sniffers “tcpdump”, network protocol analyzers “ethereal”, and various utilities “netstat, MRTG, ntop, mii-tool” can be used by network engineers.
The activities described above will use a white-box testing approach, where the system is examined and watched “from the inside out” and from various angles. The Jmeter tool is good tool to execute performance testing.

Primary aim of Performance Testing:

The primary aim of performance testing is to determine the benchmark behavior of a system under test. During test, performance testing benchmarks should meet with the industry-defined benchmarks.
Performance testing aim is not to find bugs of the system/application, its aim is to set and test the benchmark of the application. Correctness and close observance of the performance and results of the application during test is the primary characteristic of performance testing.

Load Testing

We have already seen above that load testing is an important part of performance testing. In case of Load testing, we can continuously and steadily increase the load on the system till the time it reaches the threshold limit. Very easily we can test the load of the system by using automation tools like; LoadRunner or any other suitable tool. Load testing is also well-known by the names like volume testing and endurance testing.  In the above example, for a web application, the load is defined in terms of concurrent users or HTTP connections.
Examples of volume testing,
  • Test of a word processor by changing large volume of data
  • Test a printer by transferring heavy data
  • Test a mail server with 1000 of concurrent users
Examples of endurance testing,
  • Test a client-server application by running the client in a loop against the server over an extended period of time
Here we can see, performance testing and load testing looks similar, but their goals are different from each other. In some cases, load testing has been used with performance testing for measurement and bench-marking. And in some cases, load testing works at a predefined load level, usually the highest load that the system accepts.

Aim of Load Testing:

Find out bugs that are not possible with any other such as memory management bugs, memory leaks, buffer overflows, etc.
Make sure that the application meets the performance point recognized during performance testing. It is possible due to regression testing against the application at a specified maximum load.

Stress testing:

During test, Stress testing tries to break the system by crushing or hiding its resources (sometime we called this a negative testing). The purpose of it to ensure that the system fails and recovers gracefully (sometime it is called as recoverability).
In the above example of a Web application, the stress can be applied in various,ways:
  • Double the baseline number for concurrent users/HTTP connections
  • Randomly shut down and restart ports on the network switches/routers that connect the servers (via SNMP commands for example)
  • Restart the offline database
  • Rebuild a RAID array during run time of the system
  • Run method that includes resources (CPU, memory, disk, network) on the Web and database servers

Aim of the Stress Testing:

The aim of the stress testing is to examine post-crash reports to express the performance of application after failure. The major subject is to make sure that the system does not cooperate with the security of complex data after the failure. In a effective stress testing, the system will come back to normality along with all its components, after even the most terrible break down.