Hiển thị các bài đăng có nhãn giáo trình chia sẻ. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn giáo trình chia sẻ. Hiển thị tất cả bài đăng

Thứ Bảy, 5 tháng 1, 2019

MÔ HÌNH PHÁT TRIỂN SẢN PHẨM

Các nhà phát triển phần mềm luôn cập nhật những xu hướng mới để phát triển công nghệ. Trong quy trình phát triển phần mềm có rất nhiều bước để đảm bảo sản phẩm được đưa ra thị trường.

1. Mô hình phát triển sản phẩm truyền thống:

Theo Model phát triển sản phẩm truyền thống cần phải đi qua toàn bộ quy trình thì sản phẩm có thể cho phụ vụ. Có thể mất vài tháng hoặc vài năm:


- Không quản lý được thời gian cho ra đời sản phẩm
- Không đáp ứng nhu cầu người dùng
- Không cạnh tranh trong môi trường công nghệ

Do đó cần sử dụng đến các phương pháp phát triển phần mềm hiện đại nhất như:
1. Phương pháp phát triển Agile
2. Phương pháp phát triển Scrum

Vì sao lại sử dụng 2 mô hình phát triển Scrum/Agile để xây dựng phát triển phần mềm? Bài viết này sẽ chia sẻ chi tiết để các bạn biết phương pháp hiện đại này.


2. Mô hình phát triển sản phẩm Scum:
Scrum là một quy trình quản lý và kiểm soát được áp dụng trong các dự án phát triển phần mềm giúp loại bỏ những công đoạn phức tạp và chỉ tập trung vào những công đoạn cần thiết đáp ứng được nhu cầu của khác hàng đưa ra. Scrum cũng được coi là một bộ tập quán hay một khung làm việc được đưa ra để áp dụng trong phát triển phần mềm.
Scrum ra đời vào khoảng những năm 1990. Cho tới bây giờ nó vẫn được coi như một khung làm việc hiệu quả và được sử dụng rộng rãi trong cả các công ty lớn và nhỏ. Đặc điểm của Scrum là nó đơn giản dễ hiểu và dễ áp dụng. Trong bài viết này tôi sẽ chia sẻ với các bạn những hiểu biết có được khi áp dụng Scrum vào trong thực tế phát triển phần mềm ở một dự án tôi từng là lập trình viên. Trước hết chúng ta cần tìm hiểu một số khái niệm căn bản.

Scrum Team

Scrum team bao gồm những thành phần sau:
  • Product Owner: Nhiệm vụ của Product Owner là đảm bảo việc quản lý các backlog (hay những công việc còn tồn đọng) của việc phát triển sản phẩm phần mềm. Việc này đòi hỏi Product Owner phải liên tục cập nhật thông tin cho các thành viên trong team để họ có thể yểu về yêu cầu hay các tính năng cần có của sản phẩm. Product Owner cũng cần phải hỗ trợ các thành viên trong team để họ hiểu được các tính năng khác nhau của sản phẩm ngay cả khi họ không trực tiếp phát triển tính năng đó.
  • Development Team: Đây chính là những lập trình viên sẽ tham gia vào việc phát triển từng tính năng cụ thể. Trong Scrum thì các thành viên của Development Team đều được coi là developers bất kể chức danh thực sự của họ trong công ty như thế nào. Các developers này có thể sẽ có kỹ năng khác nhau và một số sẽ giỏi về những kỹ năng nhất định, tuy nhiên khi sử dụng Scrum thì tất cả các thành viên của Development Team yêu cầu phải có khả năng làm việc thay thế vị trí của nhau và không ai chỉ chịu trách nhiệm phát triển một (hoặc một số) tính năng nhất định.
  • Scrum Master: Người này sẽ chịu trách nhiệm cho việc lên kế hoạch để phân công công việc, dựa trên kinh nghiệm của mình để sắp xếp thứ tự ưu tiên giải quyết những công việc tồn đọng nào có trong Backlog trước, tổ chức các buổi hop với Product Owner để theo dõi tình hình và nắm thông tin cần thiết.
Tiếp theo sau khi tìm hiểu về Scrum Team chúng ta cần phải hiểu được khái niệm tiếp theo

Sprint

Sprint là khoảng thời gian thường là 1 tháng hoặc có thể ít hơn mà theo đó sản phẩm sẽ được release phiên bản mới. Khi một Sprint kết thúc thì Scrum Master cần phải chuyển trạng thái của nó sang Done. Khi bắt đầu một Sprint thì Scrum Master cần đưa ra mục tiêu của Sprint đó và mục tiêu này không được phép thay đổi cho tới khi Sprint hoàn thành. Tuy nhiên Product Owner vẫn có quyền huỷ một Sprint trước thời hạn kết thúc của nó. Mặc dù để làm điều này thì Product Owner cần sự đồng thuận của Development Team cũng như Scrum Master. Sau khi một Sprint kết thúc thì các bên sẽ dựa trên kết quả của Sprint đó để lên kế hoạch cho Sprint tiếp theo.

Sprint Planning
Đây là bước đầu tiên cần phải thực hiện trước khi một Sprint bắt đầu. Việc lên kế hoạch cho một Sprint thường kéo dài không quá 8 tiếng đồng hồ và phải trả lời được 2 câu hỏi sau:
  • Những công việc nào cần phải được hoàn thành trong Sprint này và
  • Làm sao để có thể hoàn thành những công việc này
Sau khi thống nhất được số lượng công việc thời gian hoành thình thì chúng ta có thể bắt đấu Sprint. Trong khi thực hiện một Sprint chúng ta sẽ phải có những buổi họp được gọi là Daily Sprint hay Daily Meeting.

Daily Sprint

Các buổi họp Daily Sprint thường kéo dài từ 10 cho tới 15 phút trong buổi họp này tất cả các thành viên sẽ lần lượt báo cáo lại:
  • Những gì họ đã làm được ngày hôm qua
  • Những gì họ sẽ làm ngày hôm nay
  • Những khó khăn mà họ mắc phải

Mỗi buổi họp này sẽ giúp việc định dự đoán được kế hoạch đưa ra trong Sprint đang làm sẽ tiến triển như thế nào và liệu có cần phải cập nhật lại bản kế hoạch đã đưa ra hay không. Tuy nhiên cần nhớ rằng việc thay đổi kế hoạch này không bao gồm thay đổi mục tiêu đã đưa ra của Sprint. Ví dụ bạn có thể tăng thêm thời gian để hoàn thành một tính năng và qua đó khiến Sprint phải kéo dài hơn dự kiến. Tuy nhiên mục tiêu của Sprint là cho release phiên bản mới cần được giữ nguyên.

Sprint Review

Là công việc được thực hiện ở cuối mối Sprint nhằm đánh giá lại kết quả thực hiện được từ Sprint mới hoàn thành và qua đó đưa ra những kiến nghị để có thể thực hiện tốt hơn ở Spring sau. Sprint Review thường kéo dài khoảng 4h đồng hồ và có thường được diễn ra với không khí thân mật để giúp các thành viên có thể thoải mái đưa ra ý kiến của mình.
Và cuối cùng một khái niệm quan trọng trong Scrum mà bạn cần phải nắm được đó là

Sprint Restrospective

Sau khi Sprint Review kết thúc thì việc tiếp theo là tổng kết những kiến nghị và đánh giá từ bước Sprint Review ở trên để đưa ra những cải tiến nhằm nâng cao hiệu quả làm việc cũng như sản phẩm.

Lợi ích của Scrum

 

 
Lưu ý về Scrum
- Lập kế hoạch
- Scrum daily
- Rà soát sprint: phản hồi cải tiến nhanh các vấn đề không đúng yêu cầu
- Cải tiesn sprint

Mô Hình Phát Triển Sản Phẩm Scrum


Performance Testing Tools

software testing metrics and reporting
Performance testing tools take a simple automation script and run it through hundreds or thousands of machines to simulate how an application will perform under load.
These tests are typically expensive and are run less frequently than functional automation tests. Performance testing is particularly important for cloud applications and there are two main types to consider: 
  • Pure Play
  • Extension Tools
This list represents both pure play and extension tools, each of which has its pros and cons. Here’s what you need to know about the difference between the two types of tools:

Pure Play Performance Testing Tools

Pros:
  • Typically cheaper
  • Creates less friction during purchase and implementation processes
  • Offers faster development with best of breed tools
  • Supports more integration and open source use
Cons:
  • Requires separate scripts/languages to train and maintain

Extension Performance Testing Tools

Pros:
  • Allows for reuse of past automation scripts
  • Uses familiar languages
  • Offers a single vendor relationship across multiple tools
Cons:
  • Follows slower, less focused development
  • Provides a closed ecosystem that limits access to best of breed tools
  • Typically more expensive and geared toward large organizations

1. Tricentis Flood

Flood by Tricentis logo
Tricentis Flood is a cloud-based, distributed load testing platform that helps teams test how their applications scale with massive load generated from around the world. Flood can generate load using popular open source load testing tools (such as Apache JMeter, Flood Element, Gatling and Chrome) as well as Tricentis Tosca functional testing cases (API and UI).
Flood is easily integrated with CI tools like Jenkins and Bamboo, as well as the most popular APM tools like New Relic, AppDynamics, and Dynatrace. Additionally, Flood can be integrated into your own private hosting account with providers like AWS and Azure.
Flood’s free trial comes with 5 node hours that can be used to jump-start your load testing. Subscriptions come in flexible options to meet your budget, with different options of testing capacity, features, hosting, and term length. Try it free here.

2. Automation Anywhere Testing Anywhere

Summary: Uses robotic process automation to automate any type of testing and offers cross platform support for mobile, web and desktop. Automation Anywhere can convert scripts into load scripts and allows for machine learning and analytics.
automation anywhere testing tool
Features:
  • Offers easy conversion from automation
  • Less expensive but similar to HP
  • Includes a TestLab to control testing devices
Tool Type: ExtensionWhat you really need to know: Automation Anywhere is a lower end competitor to HP that offers some test case management capabilities as well as more robust automation capabilities.For more information: Check out their automation RPA solution.Reviews: Head over to G2Crowd.com or ITCentralStation.com to read a few reviews.

2. BlazeMeter

Summary: Runs open source-based performance tests as well as scalable load testing. BlazeMeter is compatible with Apache JMeter, offers real-time reporting and mobile capture, simulates network conditions and allows developers to create and edit performance tests.

Features:
  • Scalable
  • DevOps ready
  • Uses open source and AWS
  • Offers strong support for APIs and customization
Tool Type: Pure PlayWhat you really need to know: BlazeMeter is a growing player in the cloud performance testing space. Although it has limited use cases and does not offer monitoring or post-production capabilities, it is popular with developers.For more information: Checkout  the BlazeMeter performance testing solution.
Pricing: Free plan available, but paid plans start at $99 per mo with 3 pricing tiers. Visit their pricing page.

3. Borland Silk Performer

Summary: Offers unlimited scalability to simulate any size load as well as a variety of network technologies, including mobile. Silk Performer also provides visual diagnostics and stress testing with pattern detection. As part of Borland’s larger Silk Central platform, Silk Performer also includes a wide variety of supporting capabilities.
silk load and stress performance testing
Features:
  • Offers cross-platform support
  • Mature
  • Well-integrated into Silk Central
  • Integrates with monitoring tools and IDEs
Tool Type: ExtensionWhat you really need to know: Borland is a robust competitor to HP (although it does offer similarly high prices), with strong cross-platform support and cloud load capabilities.For more information: Checkout Silk Performer load and stress performance testing.Reviews: Head over to ITCentralStation.com to read a few reviews.

4. CA Technologies Application Test

Summary: Automates testing and embraces the shift left. The CA Application Test tool allows for functional, regression and user journey testing in addition to performance testing. The tool is workflow-driven and works with mobile devices.
ca tech application testing
Features:
  • Offers robust mainframe support
  • Allows for reuse of LISA test cases and infrastructure
  • Creates a load on an internal network with few resources
Tool Type: ExtensionWhat you really need to know: CA Technologies is mostly focused on competing in the mainframe space and testing desktop applications and complex infrastructure using LISA.For more information: Checkout CA Technologies website.

5. HP LoadRunner, Performance Center & StormRunner

Summary: HP offers a combination of three tools for performance and load testing. LoadRunner provides comprehensive load testing with interactive simulations and root cause analysis capabilities, while Performance Center creates a center of excellence for reusing best practices and resources across testing for multiple applications. Both LoadRunner and Performance Center support continuous and mobile testing. Finally, StormRunner extends testing capabilities to the SaaS world.
hp load runner

Features:

  • Robust and mature tools
  • Supports legacy and newer technologies
  • Cloud enabled
  • Offers record and playback or scripting
  • Allows for reuse of Unified Functional Testing tests
Tool Type: ExtensionWhat you really need to know: With both LoadRunner and Performance Center as well as StormRunner to extend to the cloud, HP is a leader in this space.For more information: Checkout the StormRunner LoadPerformance Center and LoadRunnersites.Reviews: Read LoadRunner reviews hereStormRunner Load here and Performance Center here.
Pricing: LoadRunner/StormRunner Load is priced at $.56 per virtual user per day, but they have a free edition as well. Visit their pricing here.

6. IBM Rational Performance Tester

Summary: Offers code-free testing and real-time reporting as well as root cause analysis tools. IBM Rational Performance Tester also compares test results to SLA targets, integrates with IBM Rational Quality Manager and includes a test recorder.
rational performance tester
Features:
  • Robust and mature tool
  • Supports legacy and newer technologies
  • Cloud enabled
  • Offers record and playback or scripting
  • Allows for reuse of Rational Functional Tester tests
Tool Type: ExtensionWhat you really need to know: IBM Rational Performance Tester is cloud enabled and offers web and desktop support, but its mobile support is extremely weak.For more information: Checkout the Rational performance test automation solution.Reviews: Head over to ITCentralStation.com to read reviews.

7. Neotys NeoLoad

Summary: NeoLoad uses an intuitive GUI for use case creation, target identification and test execution. It allows you to simulate load locally or using the Neotys Cloud Platform, supports web and mobile and monitors all servers during load testing.
neotys neoload
Features:
  • Provides end-to-end testing
  • Offers cross-platform capabilities
  • More affordable pricing than legacy solutions
  • Cloud and on premise enabled
Tool Type: Pure PlayWhat you really need to know: Neotys is a small but fast-growing player with cross-platform support for web and mobile (via NeoLoad) and post-production monitoring capabilities (via NeoSense).For more information: Visit Neotys.com to learn more.Reviews: Visit ITCentralStation.com to read reviews.

8. Parasoft Load Test

Summary: Provides performance, stress and concurrency testing with the ability to simulate various loads and test from different locations. Parasoft Load Test can also enforce Quality of Service metrics and run tests using tests previously created in Parasoft.
parasoft load testing
Features:
  • Supports legacy applications
  • Mature tool
  • Allows for reuse of other tests created with Parasoft
  • Offers performance monitoring capabilities
Tool Type: ExtensionWhat you really need to know: While Parasoft Load Test does allow for reuse of test cases under load and provides performance monitoring and desktop and web support, it does not have any mobile capabilities and is not cloud enabled.For more information: Learn more about Parasoft load testing.Reviews: Visit the Parasoft review page on TrustRaidus.com and ITCentral Station.com

9. Radview WebLOAD

Summary: Simulates a variety of load conditions for an unlimited number of users and distributes the load across any number of machines. Radview WebLOAD can also monitor server performance and offers cross-platform support for web, desktop and mobile (via PerfectoMobile).
radview webload performance testing
Features:
  • Mature tool
  • Some cross-platform support
  • Some open source support (supports Selenium)
Tool Type: Pure PlayWhat you really need to knowRadview is a fledgling player in performance testing that was previously publicly listed but has since been delisted and is not performing very well currently (it has scaled down from 100 employees to about 25).For more information: Checkout Radview performance testingReviews: Visit G2Crowd.com to read Radview reviews.Pricing: Plans start at € 1,990 per license with 3 pricing tiers. Request pricing here.

10. SmartBear LoadComplete

Summary: A desktop tool for load, stress and scalability testing that works with both HTML sites and rich internet applications. SmartBear LoadComplete can generate load from virtual machines, on premise computers or the cloud and offers record and replay capabilities, visual programming, a test cost simulator, distributed load testing, analytics and functional test reuse.
loadcomplete performance testing
Features:
  • Mature tool
  • Offers performance monitoring capabilities
  • Allows for easy deployment of tests both on desktop and in the cloud
  • Lower priced than HP
Tool Type: ExtensionWhat you really need to know: LoadComplete is a core SmartBear product and extension of TestComplete. It offers web support, is cloud enabled and provides monitoring capabilities, but it has no mobile capabilities.For more information: Learn more about LoadComplete performance testing.Pricing: Offers a free version with plans start at $230 per year and 5 pricing tiers. View pricing here.

11. Soasta CloudTest

Summary: Offers continuous load testing at any scale with real-time analytics. Soasta CloudTest also has embedded user monitoring capabilities and allows users to build tests using RUM-based data and application-specific scenarios.
soasta cloudtest load testing
Features:
  • Offers cross-platform support
  • Innovative tool
  • Ties in directly with performance monitoring
  • Enterprise-ready
Tool Type: Pure PlayWhat you really need to know: Soasta is the largest player in the pure play space, with more than $75 million in funding to date. It provides cross-platform support with CloudTest for web and TouchTest for mobile (which also provides mobile automation) and offers post-production performance monitoring with mPulse.For more information: Learn more about Soasta CloudTest load and performance testing.Reviews: Read CloudTest reviews on ITCentralStation.comPricing: Offers a free version with plans start at $2500 per year and 2 pricing tiers. View pricing here.

12. TestPlant eggPlant Performance

Summary: Provides cloud-based, distributed load simulations with dynamic test controls and standard scripting languages. It also provides application-level virtual users for more complete test coverage. TestPlant’s eggPlant Performance tool is part of the larger eggPlant range of testing tools.
eggplant performance testing tool
Features:
  • Offers cross-platform support
  • Allows for reuse of functional tests as performance tests
  • Can traverse various layers of applications including UI, API and command line layers
Tool Type: ExtensionWhat you really need to know: eggPlant Performance can support web, desktop and mobile testing as an extension of eggPlant Functional.For more information: Learn more about TestPlant eggPlant.Pricing: No prices listed, but view licensing and pricing information here.

Performance Testing Tools

 
Học Kinh Nghiệm IT © 2015 - Designed by BBer